Python 迁移学习,添加Keras LSTM层(热狗,而不是使用二进制交叉熵的热狗)
训练特征shape(1032,5,5122880)进入LSTM层。这会产生“ValueError:输入0与层lstm_16不兼容:预期ndim=3,发现ndim=2” 1032是训练样本数 5x5x122880是培训样本的瓶颈功能Python 迁移学习,添加Keras LSTM层(热狗,而不是使用二进制交叉熵的热狗),python,deep-learning,keras,lstm,Python,Deep Learning,Keras,Lstm,训练特征shape(1032,5,5122880)进入LSTM层。这会产生“ValueError:输入0与层lstm_16不兼容:预期ndim=3,发现ndim=2” 1032是训练样本数 5x5x122880是培训样本的瓶颈功能 model = Sequential() model.add(CuDNNLSTM(2048,input_shape=train_final_model.shape[:1)) model.add(Dense(2, activation='sigmoid'))
model = Sequential()
model.add(CuDNNLSTM(2048,input_shape=train_final_model.shape[:1))
model.add(Dense(2, activation='sigmoid'))
似乎Keras ValueError告诉我,在通过LSTM层运行之前,我应该重塑训练瓶颈特性。但这样做:
training_bottlenecked_features = np.reshape(train_final_model, (1032,25,122880))
print(training_bottlenecked_features.shape)
final_model.add(LSTM(2,input_shape=training_bottlenecked_features.shape[:1]))
结果如下:
(1032122880)
ValueError:输入0与层lstm_23不兼容:预期ndim=3,发现ndim=2
我已经在其他几个组合中使用了输入,所以我觉得我可能遗漏了Keras LSTM文档中的一些基本内容:感谢您提供的任何见解。事实证明,LSTM和RNN依赖于使用Keras.layers.TimeDistributed。这需要最低限度地重新构造培训和验证标签尺寸(例如,使用np.expand_dims() 如果使用TimeDistributed来包装整个顺序流,则可能还需要重塑培训和验证数据 此处的对话框有助于回顾反复出现的网络体系结构差异: 回想起来,我希望我能在这里开始阅读: