我设置了一个 X 形状为 (batch_size, 50) 和 Y 形状为 (batch_size, 10(sequence length), 10(output vector)) 的训练集。
LSTM 单元的 Keras 文档说,需要 3D 输入,但 Sequence 2 Sequence 模型可以正常工作并执行此操作。是否有另一种通用方法来解决此任务?
model = Sequential()
model.add(LSTM(50, input_shape=(50,)))
model.add(TimeDistributed(Dense(10, activation='softmax')))
我收到错误:“ValueError:输入 0 与层 lstm_1 不兼容:预期 ndim=3,发现 ndim=2”
最佳答案
这只返回序列的最后一步,你应该设置参数: return_sequences=True
对于以下模型:
model = Sequential()
model.add(LSTM(50, input_shape=(1, 50), return_sequences=True))
model.add(TimeDistributed(Dense(10, activation='softmax')))
我有:
Layer (type) Output Shape Param #
=================================================================
lstm_3 (LSTM) (None, 1, 50) 20200
_________________________________________________________________
time_distributed_2 (TimeDist (None, 1, 10) 510
=================================================================
Total params: 20,710
Trainable params: 20,710
Non-trainable params: 0
_________________________________________________________________
关于python - 如何为序列生成设置一个只有一个输入且时间为 0 的 LSTM 网络?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55782849/