只能导出h5格式模型,pb格式无法导出:
导出模型code如下:
tf.saved_model.save(model, outputDir + 'YouTubeNet_model2')
或:
from tensorflow.python.keras.models import Model, load_model, save_model
save_model(model, 'YouTubeNet_model.pb',save_format='tf')
报错如下:
Traceback (most recent call last):
File "F:/python/DeepMatch-master/examples/run_youtubednn.py", line 70, in
tf.saved_model.save(model, outputDir + 'YouTubeNet_model2')
File "D:\Anaconda3\envs\TF2\lib\site-packages\tensorflow\python\saved_model\save.py", line 1033, in save
obj, signatures, options, meta_graph_def)
File "D:\Anaconda3\envs\TF2\lib\site-packages\tensorflow\python\saved_model\save.py", line 1198, in _build_meta_graph
return _build_meta_graph_impl(obj, signatures, options, meta_graph_def)
File "D:\Anaconda3\envs\TF2\lib\site-packages\tensorflow\python\saved_model\save.py", line 1147, in _build_meta_graph_impl
_ = _SaveableView(checkpoint_graph_view, options)
File "D:\Anaconda3\envs\TF2\lib\site-packages\tensorflow\python\saved_model\save.py", line 186, in init
self.checkpoint_view.objects_ids_and_slot_variables())
File "D:\Anaconda3\envs\TF2\lib\site-packages\tensorflow\python\training\tracking\graph_view.py", line 444, in objects_ids_and_slot_variables
trackable_objects, path_to_root = self._breadth_first_traversal()
File "D:\Anaconda3\envs\TF2\lib\site-packages\tensorflow\python\training\tracking\graph_view.py", line 222, in _breadth_first_traversal
for name, dependency in self.list_dependencies(current_trackable):
File "D:\Anaconda3\envs\TF2\lib\site-packages\tensorflow\python\saved_model\save.py", line 120, in list_dependencies
for name, dep in super(_AugmentedGraphView, self).list_dependencies(obj):
File "D:\Anaconda3\envs\TF2\lib\site-packages\tensorflow\python\training\tracking\graph_view.py", line 164, in list_dependencies
dependencies = obj._checkpoint_dependencies
File "D:\Anaconda3\envs\TF2\lib\site-packages\tensorflow\python\training\tracking\data_structures.py", line 510, in _checkpoint_dependencies
"non-trackable object; it will be subsequently ignored." % (self,)))
ValueError: Unable to save the object ListWrapper([<tensorflow.python.keras.layers.core.Activation object at 0x000002D77C1B6940>, <tensorflow.python.keras.layers.core.Activation object at 0x000002D77C1B6E80>]) (a list wrapper constructed to track trackable TensorFlow objects). A list element was replaced (setitem, setslice), deleted (delitem, delslice), or moved (sort). In order to support restoration on object creation, tracking is exclusively for append-only data structures.
If you don't need this list checkpointed, wrap it in a non-trackable object; it will be subsequently ignored.
看issuse已经有5个人提过类似的问题了 目前还没看到有什么可行的解决方案