在Python3.7中运行"tensorflowjs_converter“时。它报告了错误:
TypeError: JSON内容被要求是一个dict,但是找到了类‘’list‘。
我想将json的文件转换为keras_save_model:
tensorflowjs_converter --input_format tfjs_layers_model --output_format keras_saved_model tiny_face_js/tiny_face_detector_model-weights_manifest.json tiny_face_h5
但是失败了,我查看了json文件。
[{“权重”:[{“名称”:“卷积0/过滤器”,“形状”:3,3,3,16,"dtype":"float32",“量化”:{“dtype”:“uint8”,“比例尺”:0.009007044399485869,“min”:-1.2069439495311063},{“名称”:“卷积0/偏向”,“形状”:16,"dtype":"float32",“量化”:{“dtype”:“uint8”,"scale":0.005263455241334205,“min”:-0.9211046672334858},{“名称”:“卷积1/深度筛选器”,“形状”:3,3,16,1,"dtype":"float32",“量化”:{“uint8”,“缩放”:0.004001977630690033,“min”:-0.5042491814669441},{“名称”:“卷积1/切入点过滤器”,“形状”:1,1,16,32,"dtype":"float32",“dtype”:{“dtype”:{“dtype”:“uint8”,“缩放”:0.013836609615999109,“最小”:-1.411334180831909},{“名称”:“卷积1/偏向”,“形状”:32,"dtype":"float32",“量化”:{“dtype”:“uint8”,“比例尺”:0.0015159862590771096,“min”:-0.30926119685173037},{“名称”:“卷积2/深度筛选器”,“形状”:3,3,32,1,"dtype":"float32",“dtype”:{“dtype”:“uint8”,“缩放”:0.002666276225856706,“最小”:-0.317286870876948},{“名称”:“卷积2/点态滤波器”,“形状”:1,1,32,64,"dtype":"float32",“量化”:{“dtype”:“uint8”,"scale":0.015265831292844286,"min":-1.6792414422128714}},{“name”:“卷积2/偏向”,"shape":64,"dtype":"float32",“float32”,“uint8”,“缩放”:0.0020280554598453,“最小”:-0.37113414915168985},{“名称”:“卷积3/深度过滤器”,“形状”:3,3,64,1,"dtype":"float32",“量化”:{“dtype”:“uint8”,"scale":0.006100742489683862,"min":-0.8907084034938438}},{“name”:“卷积3/pointwise_filter”,"shape":1,1,64,128,"dtype":"float32",“量化”:{“dtype”:“uint8”,“比例尺”:0.016276211832083907,“min”:-2.0508026908425725},{“名称”:“卷积3/偏向”,“形状”:128,"dtype":"float32",“量化”:{“dtype”:“uint8”,"scale":0.003394414279975143,“min”:-0.7637432129944072},{“name”:“卷积4/深处筛选器”,"shape":3,3,128,1,"dtype":"float32",“量化”:{“dtype”:“uint8”,"scale":0.006716050119961009,“min”:-0.8059260143953211},{“name”:“conv4 4/pointwise_filter”,“bias”:1,128,256,"dtype":"float32",“float32”:{“dtype”:“uint8”,"scale":0.021875603993733724,“min”:-2.8875797271728514},{“name”:“卷积4/偏向”,“bias”:256,"dtype":"float32",“量化”:{“d类型”:“uint8”,“缩放”:0.0041141652009066415,“最小”:-0.8187188749804216},{“名称”:“卷积5/深度筛选器”,“形状”:3,256,1,"dtype":"float32",“量化”:{“dtype”:“uint8”,“比例尺”:0.008423839597141042,“min”:-0.9013508368940915},{“name”:“conv5 5/pointwise_filter”,“形状”:1,1,256,512,“d类型”:“float32”,“量化”:{“dtype”:“uint8”,“缩放”:0.030007277283014035,“min”:-3.8709387695088107},{“名称”:“卷积5/偏向”,“形状”:512,“d类型”:“float32”,“量化”:{“dtype”:“uint8”,“比例尺”:0.008402082966823203,“min”:-1.4871686851277068},{“name”:“卷积8/filters”,“形状”:1,1,512,25,“float32”:“uint8”,“量化”:{“dtype”:“uint8”,“比例尺”:0.028336129469030042,“min”:-4.675461362389957},{“名称”:“卷积8/偏差”,“形状”:25,"dtype":"float32",“量化”:{“dtype”:“uint8”,“比例尺”:0.002268134028303857,“min”:-0.41053225912299807}],“路径”:“微脸检测器模型-shard1 1”}]。
我试图删除"[]",它报告说:
追溯(最近一次调用):文件"e:\users\admin\anaconda3\envs\ai_python3.7\lib\runpy.py",第193行,在_run_module_as_main "main“中,mod_spec中的文件"e:\users\admin\anaconda3\envs\ai_python3.7\lib\runpy.py",行85,在_run_code exec中(代码,文件"C:\Users\admin\AppData\Roaming\Python\Python37\Scripts\tensorflowjs_converter.exe__main__.py",第7行,文件"C:\Users\admin\AppData\Roaming\Python\Python37\site-packages\tensorflowjs\converters\converter.py",第638行,在"C:\Users\admin\AppData\Roaming\Python\Python37\site-packages\tensorflowjs\converters\converter.py",main([‘'.join(sys.argv1:)]) pip_main第642行中,在主转换(argv.split(’'))文件"C:\Users\admin\AppData\Roaming\Python\Python37\site-packages\tensorflowjs\converters\converter.py",第605行中,在“转换文件”( "C:\Users\admin\AppData\Roaming\Python\Python37\site-packages\tensorflowjs\converters\converter.py",)第257行中,在“dispatch_tensorflowjs_to_keras_saved_model_conversion model = keras_tfjs_loader.load_keras_model(config_json_path) "C:\Users\admin\AppData\Roaming\Python\Python37\site-packages\tensorflowjs\converters\keras_tfjs_loader.py",”行中,在load_keras_model _check_config_json(config_json) File KeyError第96行中,在_check_config_json Field(‘Field“modelTopology是缺少JSON内容’)中。KeyError: JSON内容中缺少"modelTopology“字段。有什么办法解决这个问题吗?
谢谢和问候!君燕
发布于 2019-12-13 03:09:16
当您指定tfjs_layers_model
作为输入格式时,输入应该是由tfjs-转换器预先生成的model.json
。格式如下。
{
"format": "layers-model",
"generatedBy": "1.13.1",
"convertedBy": "TensorFlow.js Converter v1.4.0",
"userDefinedMetadata": {
//...
}
}
需要注意的是,tfjs_layers_model
仅由keras
或keras_saved_model
创建,而层模型不支持tf_saved_model
。创建层模型的命令可能如下所示。
$ tensorflowjs_converter \
--input_format=keras \
--output_format=tfjs_layers_model \
/path/to/keras_model \
/path/to/tfjs_model
然后你就可以像这样重建角星模型了。
$ tensorflowjs_converter \
--input_format tfjs_layers_model \
--output_format keras_saved_model \
/path/to/tfjs_model/model.json \
/path/to/tiny_face_h5
有关详细信息,请参阅:将TensorFlow SavedModel、TensorFlow集线器模块、Keras HDF5或tf.keras SavedModel转换为web友好格式。
https://stackoverflow.com/questions/59189181
复制相似问题