Сохранить обученную нейронную сеть Python 3.6 - PullRequest
0 голосов
/ 01 марта 2019

Я изучаю нейронные сети, используя 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")

И я получаю ту же ошибку

Спасибо.

...