2017-06-22 475 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

聽起來不錯。繼續在機器學習方面做得很好。 –