2017-06-22 473 views
0

我无法保存以h5py格式训练过的神经网络。它显示以下错误:使用keras无法保存训练过的神经网络

ImportError        Traceback (most recent call last) 
<ipython-input-64-0185b568b480> in <module>() 
     1 from keras.models import load_model 
----> 2 model.save("MNISTclassifier.h5") 

/usr/local/lib/python3.5/dist-packages/keras/engine/topology.py in save(self, filepath, overwrite, include_optimizer) 
    2470   """ 
    2471   from ..models import save_model 
-> 2472   save_model(self, filepath, overwrite, include_optimizer) 
    2473 
    2474  def save_weights(self, filepath, overwrite=True): 

/usr/local/lib/python3.5/dist-packages/keras/models.py in save_model(model, filepath, overwrite, include_optimizer) 
    53 
    54  if h5py is None: 
---> 55   raise ImportError('`save_model` requires h5py.') 
    56 
    57  def get_json_type(obj): 

ImportError: `save_model` requires h5py. 

即使我已经使用pip安装h5py并导入它。 源代码在这里: https://github.com/tanmay-edgelord/HandwrittenDigitRecognition/blob/master/MNIST%20.ipynb

+1

请问修复建议[这里](https://github.com/fchollet/keras/issues/3426)解决问题了吗? – dhinckley

+0

重新启动电脑解决了我的问题。我甚至没有改变我的代码。就像我甚至没有添加评论。 –

回答

1

您可以使用model.save(filepath)保存Keras模型成一个单一的HDF5文件,该文件将包含:

  1. 模型的架构,允许重新创建模型
  2. 模型
  3. 培训配置(损耗,优化器)
  4. 优化的状态,允许恢复训练的权重正是你离开的地方。

然后,您可以使用keras.models.load_model(filepath)重新实例化您的模型。 load_model也将负责使用保存的训练配置编译模型(除非模型从未编译过)。

例子:

from keras.models import load_model 
model.save('my_model.h5') # creates a HDF5 file 'my_model.h5' 
+0

我想通了,但无论如何感谢。 –

+0

听起来不错。继续在机器学习方面做得很好。 –