2 回答

TA贡献1877条经验 获得超6个赞
在您的情况下最有效的方法取决于您如何准确设置和训练 SVM,但使用回调至少有两个选项:
您可以使用ModelCheckpoint回调来保存您在每个时期训练的模型的副本,然后加载所有这些模型以获得 LSTM 层的输出。
您还可以通过实现Callback基类来创建自己的回调。在回调中,可以访问模型,您可以使用on_epoch_end它在每个时期结束时提取 LSTM 输出。
编辑:要方便地访问倒数第二层,您可以执行以下操作:
# Create the model with the functional API
inp = Input((train_X.shape[1], train_X.shape[2],))
lstm = LSTM(100, return_sequences=False)(inp)
dense = Dense(train_Y.shape[1], activation='softmax')(lstm)
# Create the full model
model = Model(inputs=inp, outputs=dense)
# Create the model for access to the LSTM layer
access = Model(inputs=inp, outputs=lstm)
然后,您可以access在实例化它时传递给您的回调。最关键的事情,这里要注意的是,model与access共享同样的LSTM层,它们的权重会发生变化时训练model。
添加回答
举报