【发布时间】:2019-07-23 14:24:44
【问题描述】:
我正在学习使用 Pthong 3.6 和 Jupyter 的神经网络。和每个人一样(我认为),我开始使用我在网上找到的示例,但我不知道为什么我不能保存经过训练的神经网络。我正在使用此代码:
fashion_model.save("fashion_model.h5py")
但我得到这个错误:
TypeError Traceback (most recent call last)
<ipython-input-72-11379a0dd354> in <module>
1 #FALLA NO SE POR QUE
2 from keras.models import save_model
----> 3 fashion_model.save("fashion_model.h5py")
C:\Users\Javi\Anaconda3\lib\site-packages\keras\engine\network.py in save(self, filepath, overwrite, include_optimizer)
1088 raise NotImplementedError
1089 from ..models import save_model
-> 1090 save_model(self, filepath, overwrite, include_optimizer)
1091
1092 def save_weights(self, filepath, overwrite=True):
C:\Users\Javi\Anaconda3\lib\site-packages\keras\engine\saving.py in save_model(model, filepath, overwrite, include_optimizer)
380
381 try:
--> 382 _serialize_model(model, f, include_optimizer)
383 finally:
384 if opened_new_file:
C:\Users\Javi\Anaconda3\lib\site-packages\keras\engine\saving.py in _serialize_model(model, f, include_optimizer)
112 layer_group['weight_names'] = weight_names
113 for name, val in zip(weight_names, weight_values):
--> 114 layer_group[name] = val
115 if include_optimizer and model.optimizer:
116 if isinstance(model.optimizer, optimizers.TFOptimizer):
C:\Users\Javi\Anaconda3\lib\site-packages\keras\utils\io_utils.py in __setitem__(self, attr, val)
216 'Group with name "{}" exists.'.format(attr))
217 if is_np:
--> 218 dataset = self.data.create_dataset(attr, val.shape, dtype=val.dtype)
219 if not val.shape:
220 # scalar
C:\Users\Javi\Anaconda3\lib\site-packages\h5py\_hl\group.py in create_dataset(self, name, shape, dtype, data, **kwds)
114 """
115 with phil:
--> 116 dsid = dataset.make_new_dset(self, shape, dtype, data, **kwds)
117 dset = dataset.Dataset(dsid)
118 if name is not None:
C:\Users\Javi\Anaconda3\lib\site-packages\h5py\_hl\dataset.py in make_new_dset(parent, shape, dtype, data, chunks, compression, shuffle, fletcher32, maxshape, compression_opts, fillvalue, scaleoffset, track_times)
97 dtype = data.dtype
98 else:
---> 99 dtype = numpy.dtype(dtype)
100 tid = h5t.py_create(dtype, logical=1)
101
TypeError: data type not understood
有人知道怎么解决吗?我希望能够保存模型以及训练后的权重,以便将来能够打开它而无需重新训练它。
我也尝试使用此代码,但相同,在第二部分保存权重失败。
model_json = fashion_model.to_json()
with open("model.json", "w") as json_file:
json_file.write(model_json)
# serialize weights to HDF5
fashion_model.save_weights("model.h5")
print("Saved model to disk")
我得到同样的错误
谢谢。
【问题讨论】:
-
如果您想添加一些信息,请编辑您的问题。
-
问题可能出在您的模型定义中,我们需要更多信息。
-
从字面上看,我复制了这段代码,所以我不知道为什么它不起作用:datacamp.com/community/tutorials/…
标签: python tensorflow keras neural-network conv-neural-network