我一直在尝试在iphone应用程序中实现Tensorflow's simple audio recognition。经过一些研究后,我发现我需要将Tensorflow的冻结graph.pb文件转换为核心ML模型,然后在iOS应用程序中使用。所以我试着跟随this示例并引用this转换器。但是看起来这个转换器主要是用来转换将图像作为输入。但是我的模型应该能够接受音频.wav文件作为输入。`在
import tfcoreml as tf_converter
tf_converter.convert(tf_model_path = 'my_frozen_graph.pb',
mlmodel_path = 'my_model.mlmodel',
output_feature_names = ['labels_softmax:0'],
class_labels = 'classes.txt'
)
当我尝试使用上面的代码将我的图转换为核心ML模型时,我得到以下错误响应。在
^{pr2}$根据上一条错误消息,我需要输入input wav_data:0
的输入形状。因此,我创建了本教程中提到的冻结图形的文本摘要,并查找了wav_data
输入形状。{cd3>的输入是^。在
我想知道有没有其他方法可以把这个文件转换成核心ML模型?或者有没有办法直接在iosswift应用程序中使用冻结的graph.pb文件?在
Tensorflow实验性Swift框架的文档也很少。如果你们有什么好的资源,请分享。在
Update
根据控制台日志,我降低了keras
和tensorflow
版本,而且根据Matthijs的回答,我添加了input_name_shape_dict = { "import/wav_data:0" : [1, 16, 44100, 1]
现在控制台以不同的方式显示错误
(env3) minimaci73$ python model.py
Loading the TF graph...
Traceback (most recent call last):
File "model.py", line 7, in <module>
class_labels = 'conv_labels.txt'
File "/Users/minimaci73/anaconda3/envs/env3/lib/python3.6/site-packages/tfcoreml/_tf_coreml_converter.py", line 586, in convert
custom_conversion_functions=custom_conversion_functions)
File "/Users/minimaci73/anaconda3/envs/env3/lib/python3.6/site-packages/tfcoreml/_tf_coreml_converter.py", line 153, in _convert_pb_to_mlmodel
tf.import_graph_def(gdef, name='')
File "/Users/minimaci73/anaconda3/envs/env3/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py", line 316, in new_func
return func(*args, **kwargs)
File "/Users/minimaci73/anaconda3/envs/env3/lib/python3.6/site-packages/tensorflow/python/framework/importer.py", line 541, in import_graph_def
raise ValueError('No op named %s in defined operations.' % node.op)
ValueError: No op named DecodeWav in defined operations.
(env3) minimaci73$ python model.py
可以为转换器提供输入形状:
如果数据是一维的,那么高度和宽度应该是1,通道应该是数据的长度。在
您也可能会遇到其他转换错误,但这是第一步。:—)(tfcoreml需要知道输入形状,这样它就可以用一些假数据运行模型。)
相关问题 更多 >
编程相关推荐