我必须在OpenCV框架(带有C ++的v.4.X)中使用Tensorflow 2.X模型。
为此,我需要一个.pb文件或.pb和.pbtxt文件,而不是像我一样的Tensorflow Saved Model。
所以我的问题是:有没有一种方法可以将保存的模型转换为OpenCV可以读取的格式?可能是咖啡模型?
我尝试了MMdnn,但它给了我一个奇怪的错误:
Traceback (most recent call last):
File "/usr/local/bin/mmconvert", line 8, in <module>
sys.exit(_main())
File "/usr/local/lib/python3.5/dist-packages/mmdnn/conversion/_script/convert.py", line 102, in _main
ret = convertToIR._convert(ir_args)
File "/usr/local/lib/python3.5/dist-packages/mmdnn/conversion/_script/convertToIR.py", line 62, in _convert
from mmdnn.conversion.tensorflow.tensorflow_parser import TensorflowParser
File "/usr/local/lib/python3.5/dist-packages/mmdnn/conversion/tensorflow/tensorflow_parser.py", line 15, in <module>
from tensorflow.tools.graph_transforms import TransformGraph
ImportError: No module named 'tensorflow.tools.graph_transforms'
我想这是因为它是使用Tensorflow 1.X开发和测试的。
编辑:我也有相对的Keras模型(现在它已与Tensorflow 2集成),但它也与OpenCV DNN框架不兼容。尝试使用MMdnn进行转换时出现此错误:
Traceback (most recent call last):
File "/usr/local/bin/mmconvert", line 8, in <module>
sys.exit(_main())
File "/usr/local/lib/python3.5/dist-packages/mmdnn/conversion/_script/convert.py", line 102, in _main
ret = convertToIR._convert(ir_args)
File "/usr/local/lib/python3.5/dist-packages/mmdnn/conversion/_script/convertToIR.py", line 46, in _convert
parser = Keras2Parser(model)
File "/usr/local/lib/python3.5/dist-packages/mmdnn/conversion/keras/keras2_parser.py", line 126, in __init__
model = self._load_model(model[0], model[1])
File "/usr/local/lib/python3.5/dist-packages/mmdnn/conversion/keras/keras2_parser.py", line 78, in _load_model
'DepthwiseConv2D': layers.DepthwiseConv2D})
File "/usr/local/lib/python3.5/dist-packages/keras/engine/saving.py", line 664, in model_from_json
return deserialize(config, custom_objects=custom_objects)
File "/usr/local/lib/python3.5/dist-packages/keras/layers/__init__.py", line 168, in deserialize
printable_module_name='layer')
File "/usr/local/lib/python3.5/dist-packages/keras/utils/generic_utils.py", line 147, in deserialize_keras_object
list(custom_objects.items())))
File "/usr/local/lib/python3.5/dist-packages/keras/engine/network.py", line 1056, in from_config
process_layer(layer_data)
File "/usr/local/lib/python3.5/dist-packages/keras/engine/network.py", line 1042, in process_layer
custom_objects=custom_objects)
File "/usr/local/lib/python3.5/dist-packages/keras/layers/__init__.py", line 168, in deserialize
printable_module_name='layer')
File "/usr/local/lib/python3.5/dist-packages/keras/utils/generic_utils.py", line 149, in deserialize_keras_object
return cls.from_config(config['config'])
File "/usr/local/lib/python3.5/dist-packages/keras/engine/base_layer.py", line 1179, in from_config
return cls(**config)
File "/usr/local/lib/python3.5/dist-packages/keras/legacy/interfaces.py", line 91, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/keras/layers/convolutional.py", line 484, in __init__
**kwargs)
File "/usr/local/lib/python3.5/dist-packages/keras/layers/convolutional.py", line 117, in __init__
self.kernel_initializer = initializers.get(kernel_initializer)
File "/usr/local/lib/python3.5/dist-packages/keras/initializers.py", line 515, in get
return deserialize(identifier)
File "/usr/local/lib/python3.5/dist-packages/keras/initializers.py", line 510, in deserialize
printable_module_name='initializer')
File "/usr/local/lib/python3.5/dist-packages/keras/utils/generic_utils.py", line 140, in deserialize_keras_object
': ' + class_name)
ValueError: Unknown initializer: GlorotUniform
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句