Python 转换时Coremltools错误:“0”';str';对象没有属性';解码'&引用;

Python 转换时Coremltools错误:“0”';str';对象没有属性';解码'&引用;,python,keras,coremltools,Python,Keras,Coremltools,我正在尝试使用coremltools将keras模型转换为mlmodel。 我得到以下代码: import coremltools import keras output_labels = list(range(1, 43)) your_model = coremltools.converters.keras.convert('my_model.h5', input_names=['image'], output_names=['output'],

我正在尝试使用coremltools将keras模型转换为mlmodel。 我得到以下代码:

import coremltools
import keras




output_labels = list(range(1, 43))
your_model = coremltools.converters.keras.convert('my_model.h5', input_names=['image'], output_names=['output'],
                                                   class_labels=output_labels, image_input_names='image')

#your_model.author = 'your name'
#your_model.short_description = 'Digit Recognition with MNIST'
#your_model.input_description['image'] = 'Takes as input an image'
#your_model.output_description['output'] = 'Prediction of Digit

your_model.save('your_model_name.mlmodel')
这给了我以下错误:

Users/admin/PycharmProjects/TSR37/venv/bin/python /Users/admin/PycharmProjects/TSR37/coremlconverter.py
Traceback (most recent call last):
  File "/Users/admin/PycharmProjects/TSR37/coremlconverter.py", line 9, in <module>
    class_labels=output_labels, image_input_names='image')
  File "/Users/admin/PycharmProjects/TSR37/venv/lib/python3.7/site-packages/coremltools/converters/keras/_keras_converter.py", line 830, in convert
    use_float_arraytype=use_float_arraytype,
  File "/Users/admin/PycharmProjects/TSR37/venv/lib/python3.7/site-packages/coremltools/converters/keras/_keras_converter.py", line 607, in _convert_to_spec
    use_float_arraytype=use_float_arraytype,
  File "/Users/admin/PycharmProjects/TSR37/venv/lib/python3.7/site-packages/coremltools/converters/keras/_keras2_converter.py", line 353, in _convert
    model = _keras.models.load_model(model, custom_objects=custom_objects)
  File "/Users/admin/PycharmProjects/TSR37/venv/lib/python3.7/site-packages/keras/engine/saving.py", line 419, in load_model
    model = _deserialize_model(f, custom_objects, compile)
  File "/Users/admin/PycharmProjects/TSR37/venv/lib/python3.7/site-packages/keras/engine/saving.py", line 224, in _deserialize_model
    model_config = json.loads(model_config.decode('utf-8'))
AttributeError: 'str' object has no attribute 'decode'

Process finished with exit code 1
Users/admin/PycharmProjects/TSR37/venv/bin/python/Users/admin/PycharmProjects/TSR37/coremlconverter.py
回溯(最近一次呼叫最后一次):
文件“/Users/admin/PycharmProjects/TSR37/coremlconverter.py”,第9行,在
类\标签=输出\标签,图像\输入\名称='图像')
文件“/Users/admin/PycharmProjects/TSR37/venv/lib/python3.7/site packages/coremltools/converters/keras/_keras_converter.py”,第830行,转换格式
use\u float\u arraytype=use\u float\u arraytype,
文件“/Users/admin/PycharmProjects/TSR37/venv/lib/python3.7/site packages/coremltools/converters/keras/_keras_converter.py”,第607行,在转换为规范中
use\u float\u arraytype=use\u float\u arraytype,
文件“/Users/admin/PycharmProjects/TSR37/venv/lib/python3.7/site packages/coremltools/converters/keras/_keras2_converter.py”,第353行,在转换中
model=\u keras.models.load\u model(模型,自定义对象=自定义对象)
文件“/Users/admin/PycharmProjects/TSR37/venv/lib/python3.7/site packages/keras/engine/saving.py”,第419行,加载模式
model=\反序列化\模型(f,自定义\对象,编译)
文件“/Users/admin/PycharmProjects/TSR37/venv/lib/python3.7/site packages/keras/engine/saving.py”,第224行,反序列化模型
model_config=json.load(model_config.decode('utf-8'))
AttributeError:“str”对象没有属性“decode”
进程已完成,退出代码为1
有什么问题吗?根据错误消息,问题在于keras代码,而不是我的代码,但我不知道。 我正在使用coremltools 4.0和python 3.7.9


谢谢

这似乎是一个与h5yp版本3.0.0的最新版本相关的问题,因此您可以使用以前版本的h5yp(
pip install tensorflow h5py谢谢你的回答。你怎么知道问题出在hdf5_format.py中?日志说是saving.py,因为这是一个自10天前h5py发布以来就一直在讨论的问题。这里:我不得不说我没有尝试这样做,只是在github上看到了这个替代方案forum@D阿拉尼兰德勒,是吗工作?是的,我还有一个问题,也许是无关的问题,我将提出一个新问题