【发布时间】:2018-11-07 18:20:29
【问题描述】:
当在 keras API 中将模型(之前处理过的)加载到 LSTM 网络中时,它会在网络中(显式地)包含训练数据吗?
如果不是,这将如何(加载模型)帮助预测时间序列中的模式。
【问题讨论】:
标签: keras deep-learning lstm
当在 keras API 中将模型(之前处理过的)加载到 LSTM 网络中时,它会在网络中(显式地)包含训练数据吗?
如果不是,这将如何(加载模型)帮助预测时间序列中的模式。
【问题讨论】:
标签: keras deep-learning lstm
from keras.models import Sequential
from keras_contrib.losses import import crf_loss
from keras_contrib.metrics import crf_viterbi_accuracy
# To save model
model.save('my_model_01.hdf5')
# To load the model
custom_objects={'CRF' : CRF,
'crf_loss' : crf_loss,
'crf_viterbi_accuracy': crf_viterbi_accuracy}
# To load a persisted model that uses the CRF layer
model1 = load_model("/home/abc/my_model_01.hdf5", custom_objects = custom_objects)
【讨论】:
将模型(之前处理过的)加载到 LSTM 网络中时 keras API 是否会在网络中(显式)包含训练数据?
否 model.save() 旨在排除已保存文件中的训练数据。
大多数情况下,您会在进行预测训练后保存模型。在预测情况下,您不再需要原始数据,因为模型根据与模型一起保存的训练权重进行预测,这基本上是定义模型的层列表。 model.summary()描述keras对模型的信息很好。
如果不是,这将如何(加载模型)帮助预测模式 在时间序列中。
model.save()基本上省了两件事:
模型的权重是您训练的产物,是您的模型在训练期间获得的“知识”,这是预测新样本所必需的。
【讨论】:
因为任何神经网络(CNN、LSTM 或其他)的目标都是从训练数据中学习(计算重量)并泛化到任何数据(相同问题的)。所以你只需要加载网络的架构和重量。
在 keras 中,简单的方法是保存/加载架构和重量:
model.save('my_model.hdf5')
model.load('my_model.hdf5')
【讨论】: