tensorflow - 频谱图数据的 LSTM 输入形状
问题描述
我有一个 numpy 数组,其形状类似于n x t x f
其中 n 是频谱图的数量,t 是时间样本,f 是频率样本。
这是代码:
print(train.shape) # this would print (4431,399,101)
inputs = Input(shape=(399, 101))
encoded = LSTM(50,
activation="relu",
return_sequences=True)(inputs)
encoded = LSTM(25,
activation="relu",
return_sequences=False)(encoded)
decoded = RepeatVector(399)(encoded)
decoded = LSTM(50,
activation="relu",
return_sequences=True)(decoded)
decoded = LSTM(25,
return_sequences=True)(decoded)
autoencoder = Model(inputs, decoded)
encoder = Model(inputs, encoded)
autoencoder.compile(optimizer='adam',
loss='mse',
metrics=['acc'])
autoencoder.fit(train, train_labels, epochs=20, batch_size=32)
它提出:
InvalidArgumentError:不兼容的形状:[32,399,101] 与 [32,1]
[[node gradient_tape/mean_squared_error/BroadcastGradientArgs(定义于:1)]] [Op:__inference_train_function_7304]
我想错误出在输入形状中,但我不明白原因。
解决方案
您的模型输入需要二维数组,而您的输入数组反映了三个维度。我猜。
推荐阅读
- python - numpy - why Y*=2 is faster than Y+=Y?
- python - 无法使用 GPU(暗网)执行对象检测
- javascript - href won't apply CSS
- visual-studio-code - Why Visual Studio Code cant install extensions
- javascript - Implement an audio loop in javascript
- flutter - Flutter Tabbar builds/rebuilds the middle tab when switching between first and last tab
- c++ - C++ 许多类相互引用
- django - 无法将视图导入 django 3.1.4 中的 url
- node.js - 如何在 mongoDB 的对象中进行嵌套查询?
- reactjs - 如何从 redux-thunk 中的获取操作中访问状态?