我正在为文本分类训练RNN。我想用批处理大小X
训练模型。但是,对于每个批次,我想在word_padding_length = maximum string length in each batch - current_word_length
处创建零填充。我尝试搜索,但找不到与此相关的任何内容。当我拟合模型时应该会发生这种情况。
您不能在训练过程中更改输入张量形状。您的情况是:每个步骤(batch_size, len1, num_features) -> (batch_size, len2, num_features)
。
您可能有类似的东西:
from keras.models import Model
from keras.layers import Input, LSTM
x = Input(shape=(None,128))
hidden = LSTM(32)(x)
model = Model(x, hidden)
for batch in batch_lst:
model.train_on_batch(batch)
注意,Input
具有(None,128)的形状,这意味着可变批处理大小,可变时间步长和固定num_feature = 128
此外,您可能考虑使用masking layer忽略所有填充值,以便在整个模型集不受填充影响的情况下,可以为整个训练集使用一个张量输入。