我想使用一个批量大小训练Keras LSTM。 在这种情况下,到目前为止,我不需要零填充。零填充的必要性来自均衡批量的大小,对吗?
事实证明这并不像我想象的那么容易。
我的网络如下:
model = Sequential()
model.add(Embedding(output_dim=embeddings.shape[1],
input_dim=embeddings.shape[0],
weights=[embeddings],
trainable=False))
model.add(Dropout(0.2))
model.add(Bidirectional(LSTM(100,
return_sequences=True,
activation="tanh",kernel_initializer="glorot_uniform")))
model.add(TimeDistributed(Dense(maxLabel)))
model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy',
optimizer='sgd',
metrics=['accuracy'])
model.fit(x_train, y_train, epochs=20, batch_size=1, shuffle=True)
我天真地将我的训练数据和训练标签提供为具有此形状属性的简单numpy数组: X:(2161,) Y:(2161,)
我现在得到ValueError: Error when checking target: expected activation_1 to have 3 dimensions, but got array with shape (2161, 1)
我不确定如何在没有零填充的情况下满足这个3-D属性,这是我在使用批量大小时要避免的。
有人看到我做错了吗?