在keras中加载模型

时间:2018-05-29 07:19:30

标签: keras deep-learning lstm

在keras API中将模型(先前已处理)加载到LSTM网络时,它是否会在网络中包含训练数据(显式)?

如果没有,那么(加载模型)如何帮助预测时间序列中的模式。

3 个答案:

答案 0 :(得分:2)

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)

答案 1 :(得分:0)

因为任何神经网络(CNN,LSTM或其他)的目标是从火车数据(计算轮数)中学习并推广到任何数据(同一问题)。所以你只需要加载网络和轮廓的架构。

在keras中,简单的方法是使用以下方式保存/加载架构和轮次:

model.save('my_model.hdf5')

model.load('my_model.hdf5') 

答案 2 :(得分:0)

  

将模型(先前已处理)加载到LSTM网络中   keras API会在网络中包含训练数据(显式)吗?

model.save()旨在排除已保存文件中的培训数据。 大多数情况下,在训练预测后保存模型。在预测案例中,您不再需要原始数据,因为模型基于训练的权重进行预测,这些权重与模型一起保存,这基本上是定义模型的图层列表。 model.summary()描述了keras对模型的了解非常好。

  

如果没有,这将如何(负载模型)有助于预测模式   在时间序列中。

model.save()基本保存两件事:

  1. 您的模型(基本上是图层对象及其关系)
  2. 属于模型中每个图层的权重。
  3. 模型的权重是您的培训的产物,是"知识"您的模型在培训期间实现,这是预测新样本所必需的。