首页 > 解决方案 > 在python中组合两个不同维度的数组

问题描述

我正在研究一个使用音频和文本对情绪进行分类的项目。我将音频和文本传递给 1D CNN 并得到以下输出数组:

audio_features_shape = (396, 63, 64)
text_features_shape = (52, 1, 64)

现在我想将这两个不同维度的数组堆叠成一个,这样我就可以将一个数组传递给 LSTM。我想要的形状为:

expected_array_shape = (448, 64, 128)

我尝试了以下方法,但没有人给出我想要的输出。

x = np.column_stack((audio_features, text_features))
x = np.concatenate((audio_features,text_features), axis=2)
x = np.append(audio_features, text_features)
x = np.transpose([np.tile(audio_features, len(text_features)), np.repeat(text_features, len(audio_features))])
x = np.array([np.append(text_features,x) for x in audio_features])

任何帮助,将不胜感激。谢谢!

标签: pythonnumpytensorflownumpy-ndarray

解决方案


2 个数组的值应该如何分布在结果中?

audio_features_shape = (396, 63, 64)
text_features_shape = (52, 1, 64)

text_features应该“扩展”到 (52,63,64),方法是在中轴上重复值 63 次,或者将此数组放入 0 的目标数组中。无论哪种情况,它都会大 63 倍。

一旦数组在除第一个维度之外的所有维度上匹配,它们就可以连接起来。

但真正的问题是,LSTM 的使用有什么意义?


推荐阅读