python - Coremltools:传递给优化器的意外关键字参数:learning_rate
问题描述
我正在使用以下代码将 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 299, in _deserialize_model
custom_objects=custom_objects)
File "/Users/admin/PycharmProjects/TSR37/venv/lib/python3.7/site-packages/keras/optimizers.py", line 768, in deserialize
printable_module_name='optimizer')
File "/Users/admin/PycharmProjects/TSR37/venv/lib/python3.7/site-packages/keras/utils/generic_utils.py", line 147, in deserialize_keras_object
return cls.from_config(config['config'])
File "/Users/admin/PycharmProjects/TSR37/venv/lib/python3.7/site-packages/keras/optimizers.py", line 154, in from_config
return cls(**config)
File "/Users/admin/PycharmProjects/TSR37/venv/lib/python3.7/site-packages/keras/optimizers.py", line 460, in __init__
super(Adam, self).__init__(**kwargs)
File "/Users/admin/PycharmProjects/TSR37/venv/lib/python3.7/site-packages/keras/optimizers.py", line 79, in __init__
'passed to optimizer: ' + str(k))
TypeError: Unexpected keyword argument passed to optimizer: learning_rate
Process finished with exit code 1
为什么会这样,我怎样才能让它工作?我尝试更新 keras 和/或 tensorflow,但 coremltools 似乎仅适用于 keras 2.2.4 和 tensorflow 1.15.0
解决方案
这可以通过在创建模型的环境和转换模型的环境中使用相同版本的 keras 和 tensorflow 来解决。
推荐阅读
- r - 绘制具有不同基本总体的 R 中的百分比
- javascript - 未捕获的类型错误:无法读取未定义的属性“螺旋桨”
- instagram - 如何在 reactnative 应用程序中将 instagram 与 aws amplify 一起使用?
- angular - 如何为在构造函数中使用 @Inject() 的 Angular 7 服务准备测试
- mongodb - 复合索引 MongoDB
- flutter - How to create infinity PageView in Flutter
- javascript - Angular SCSS 颜色变量在 IE11 中不起作用
- android - 如何修复发布 apk 断言在颤振中失败?
- java - Restfb - 为什么当我获取我的管理组时,应用程序会抛出 OAuthException:(#200)权限错误(代码 200,子代码为空)
- c++ - 我可以使用 try catch 语句来捕获任何错误而不是具体的吗?