Python Keras MobileNet无法保存以前保存的h5型文件

Python Keras MobileNet无法保存以前保存的h5型文件,python,tensorflow,keras,Python,Tensorflow,Keras,我刚刚用keras训练了一个MobileNet模型(使用tensorflow作为后端)。 培训结束后,我用 # serialize weights to HDF5 model_with_weights = os.path.join(model_dir, "model.h5") model.save(model_with_weights) print("Saved model to disk") 现在我想重新加载相同的模型。。。 所以我尝试了这个(模型在正确的目录中) 但是我得到了这个错误,我不

我刚刚用keras训练了一个MobileNet模型(使用tensorflow作为后端)。 培训结束后,我用

# serialize weights to HDF5
model_with_weights = os.path.join(model_dir, "model.h5")
model.save(model_with_weights)
print("Saved model to disk")
现在我想重新加载相同的模型。。。 所以我尝试了这个(模型在正确的目录中)

但是我得到了这个错误,我不知道该怎么做才能加载以前训练过的模型

File "load_model.py", line 79, in <module>
    'relu6': keras.applications.mobilenet.relu6})
  File "/home/seba/Projects/venv3.5/lib/python3.5/site-packages/tensorflow/python/keras/_impl/keras/engine/saving.py", line 241, in load_model
    model = model_from_config(model_config, custom_objects=custom_objects)
  File "/home/seba/Projects/venv3.5/lib/python3.5/site-packages/tensorflow/python/keras/_impl/keras/engine/saving.py", line 318, in model_from_config
    return deserialize(config, custom_objects=custom_objects)
  File "/home/seba/Projects/venv3.5/lib/python3.5/site-packages/tensorflow/python/keras/_impl/keras/layers/serialization.py", line 64, in deserialize
    printable_module_name='layer')
  File "/home/seba/Projects/venv3.5/lib/python3.5/site-packages/tensorflow/python/keras/_impl/keras/utils/generic_utils.py", line 173, in deserialize_keras_object
    list(custom_objects.items())))
  File "/home/seba/Projects/venv3.5/lib/python3.5/site-packages/tensorflow/python/keras/_impl/keras/engine/network.py", line 1098, in from_config
    process_node(layer, node_data)
  File "/home/seba/Projects/venv3.5/lib/python3.5/site-packages/tensorflow/python/keras/_impl/keras/engine/network.py", line 1056, in process_node
    layer(input_tensors[0], **kwargs)
  File "/home/seba/Projects/venv3.5/lib/python3.5/site-packages/keras/engine/topology.py", line 606, in __call__
    previous_mask = _collect_previous_mask(inputs)
  File "/home/seba/Projects/venv3.5/lib/python3.5/site-packages/keras/engine/topology.py", line 2834, in _collect_previous_mask
    mask = node.output_masks[tensor_index]
AttributeError: 'Node' object has no attribute 'output_masks'
文件“load_model.py”,第79行,在
“relu6”:keras.applications.mobilenet.relu6})
文件“/home/seba/Projects/venv3.5/lib/python3.5/site packages/tensorflow/python/keras/_impl/keras/engine/saving.py”,第241行,在load_模型中
模型=来自配置的模型(模型配置,自定义对象=自定义对象)
文件“/home/seba/Projects/venv3.5/lib/python3.5/site-packages/tensorflow/python/keras/_-impl/keras/engine/saving.py”,第318行,模型中的
返回反序列化(配置,自定义对象=自定义对象)
文件“/home/seba/Projects/venv3.5/lib/python3.5/site packages/tensorflow/python/keras/_impl/keras/layers/serialization.py”,第64行,反序列化
可打印\u模块\u name='layer')
文件“/home/seba/Projects/venv3.5/lib/python3.5/site packages/tensorflow/python/keras/_impl/keras/utils/generic_utils.py”,第173行,反序列化_keras_对象
列表(自定义对象.项())
文件“/home/seba/Projects/venv3.5/lib/python3.5/site packages/tensorflow/python/keras/_impl/keras/engine/network.py”,第1098行,from_config
处理节点(层、节点数据)
文件“/home/seba/Projects/venv3.5/lib/python3.5/site packages/tensorflow/python/keras/_impl/keras/engine/network.py”,第1056行,进程中节点
图层(输入_张量[0],**kwargs)
文件“/home/seba/Projects/venv3.5/lib/python3.5/site packages/keras/engine/topology.py”,第606行,在调用中__
上一个\u掩码=\u收集\u上一个\u掩码(输入)
文件“/home/seba/Projects/venv3.5/lib/python3.5/site packages/keras/engine/topology.py”,第2834行,在“收集”上一个掩码中
掩码=节点。输出掩码[张量索引]
AttributeError:“节点”对象没有“输出\u掩码”属性

有人能给我指出正确的方向吗?

你是想同时使用tensorflow keras和keras吗?我只是。如果可能的话,你能上传你所有的导入内容吗?你能更好地解释一下你的意思吗?我认为只有一个keras。您可以从
tensorflow.python.keras
或直接从
keras
导入与keras相关的api。我不确定你在代码中做了什么。根据堆栈跟踪,您似乎同时拥有
tensorflow/python/keras/\u impl/keras/engine/..
keras/engine/..
。是的,您是对的……我可能混合了两者……我应该使用哪一种?可能是我使用的tensorflow格式,将extimator和tfrecord格式作为输入文件,它们相似但不相同。这就是它可能导致问题的原因。至于现在,我想说试试其中一个,看看这是否能首先解决你的问题。
File "load_model.py", line 79, in <module>
    'relu6': keras.applications.mobilenet.relu6})
  File "/home/seba/Projects/venv3.5/lib/python3.5/site-packages/tensorflow/python/keras/_impl/keras/engine/saving.py", line 241, in load_model
    model = model_from_config(model_config, custom_objects=custom_objects)
  File "/home/seba/Projects/venv3.5/lib/python3.5/site-packages/tensorflow/python/keras/_impl/keras/engine/saving.py", line 318, in model_from_config
    return deserialize(config, custom_objects=custom_objects)
  File "/home/seba/Projects/venv3.5/lib/python3.5/site-packages/tensorflow/python/keras/_impl/keras/layers/serialization.py", line 64, in deserialize
    printable_module_name='layer')
  File "/home/seba/Projects/venv3.5/lib/python3.5/site-packages/tensorflow/python/keras/_impl/keras/utils/generic_utils.py", line 173, in deserialize_keras_object
    list(custom_objects.items())))
  File "/home/seba/Projects/venv3.5/lib/python3.5/site-packages/tensorflow/python/keras/_impl/keras/engine/network.py", line 1098, in from_config
    process_node(layer, node_data)
  File "/home/seba/Projects/venv3.5/lib/python3.5/site-packages/tensorflow/python/keras/_impl/keras/engine/network.py", line 1056, in process_node
    layer(input_tensors[0], **kwargs)
  File "/home/seba/Projects/venv3.5/lib/python3.5/site-packages/keras/engine/topology.py", line 606, in __call__
    previous_mask = _collect_previous_mask(inputs)
  File "/home/seba/Projects/venv3.5/lib/python3.5/site-packages/keras/engine/topology.py", line 2834, in _collect_previous_mask
    mask = node.output_masks[tensor_index]
AttributeError: 'Node' object has no attribute 'output_masks'