【发布时间】:2019-05-15 06:51:40
【问题描述】:
我训练了以下模型
model = Sequential()
model.add(Embedding(10000, 100, input_length = 10, weights=[embedding_matrix], trainable = False))
model.add(Bidirectional(LSTM(64, return_sequences = True)))
model.add(Dense(512, activation='relu'))
model.add(Dense(2 activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam')
model.fit(x, y, epochs=10)
但是,我在预测时得到了长度为 100 的输入。 所以,我想知道我是否可以在预测时根据输入的长度更改 input_length 的值?
如果是,那么这将如何影响模型,或者我应该使用编码器和解码器模型吗?
【问题讨论】:
-
你用什么后端?
-
我在 tensorflow 上使用 keras
-
您可以手动取出权重并用 1 步构建新图。
-
还要考虑共享层:keras.io/getting-started/functional-api-guide/#shared-layers。然后用
input_length=100重用嵌入层。另一种选择是将测试输入分成 10 个批次,然后将结果连接起来。 -
这也是一个很好的例子:keras.io/examples/lstm_seq2seq
标签: python keras deep-learning transfer-learning