keras->;mlmodel:coreml对象没有属性';转换为';
我正在尝试使用coreml将我的keras模型转换为mlmodel。然而,这意味着coremltools模块没有“convert”属性keras->;mlmodel:coreml对象没有属性';转换为';,keras,coreml,Keras,Coreml,我正在尝试使用coreml将我的keras模型转换为mlmodel。然而,这意味着coremltools模块没有“convert”属性 AttributeError: 'module' object has no attribute 'convert' 我的coremltools、keras、tensorflow(tensorflow gpu)模块都是最新的。 我也在使用python 2.7.10 我用过windows和mac,但都不起作用。但是,caffe.convert正在使用caffe模
AttributeError: 'module' object has no attribute 'convert'
我的coremltools、keras、tensorflow(tensorflow gpu)模块都是最新的。
我也在使用python 2.7.10
我用过windows和mac,但都不起作用。但是,caffe.convert正在使用caffe模型工作
代码:
根据文档,我希望converters.keras.convert方法在coremltools中可用。
文件:
请帮忙,提前谢谢
编辑:
解决方案是使用virtualenv。请按照以下说明操作: 装置 我们建议使用virtualenv来使用、安装或构建coremltools。是 确保使用系统pip安装virtualenv
pip安装virtualenv
安装coremltools的方法如下所示
.
要创建名为pythonenv
的Python虚拟环境,请执行以下步骤:
# Active your virtual environment
source coremltools/bin/activate
# Install coremltools in the new virtual environment, pythonenv
pip install --upgrade pip
pip install -U coremltools==3.0b5
#为virtualenv创建一个文件夹
mkdir虚拟人
cd虚拟人
#为核心ML项目创建Python虚拟环境
虚拟coremltools
要激活新虚拟环境并在此环境中安装coremltools
,请执行以下步骤:
# Active your virtual environment
source coremltools/bin/activate
# Install coremltools in the new virtual environment, pythonenv
pip install --upgrade pip
pip install -U coremltools==3.0b5
安装keras和tensorflow
现在确保它能工作。激活coremltools环境后,运行
python
Python 3.7.4(v3.7.4:e09359112e,2019年9月5日,14:54:52)
>>>导入coremltools
>>>coremltools.converts.keras.convert()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:convert()缺少1个必需的位置参数:“model”
这个家伙问题的功劳是:共产主义黑客的答案不适用于我当前的设置:
- tensorflow 2.4.1
- coremltools 4.1
- Python 3.8.7
keras
来修复它,现在调用可以工作了:
import coremltools
coreml_model = coremltools.converters.convert(model,
input_names="inputname",
output_names="outputname")
运行上述命令现在会在我的Jupyter笔记本中产生以下结果:
Running TensorFlow Graph Passes: 100%|██████████| 5/5 [00:00<00:00, 37.53 passes/s]
Converting Frontend ==> MIL Ops: 100%|██████████| 6/6 [00:00<00:00, 5764.05 ops/s]
Running MIL optimization passes: 100%|██████████| 17/17 [00:00<00:00, 5633.05 passes/s]
Translating MIL ==> MLModel Ops: 100%|██████████| 3/3 [00:00<00:00, 6864.65 ops/s]
运行TensorFlow图通过率:100%|██████████| 5/5[00:00 MIL运行:100%|██████████| 6/6[00:00你确定你的方法名包含keras这个词吗,也就是说,你没有调用类似coremltools.converts.convert(…)
?@MatthijsHollemans您好,谢谢您的回复。我确信它包括Keras。因此,该方法在您的机器上工作?我可以知道您使用的coremltools版本是什么吗?我已经使用不同版本的coremltools(Python 2和Python 3)转换了许多Keras模型。也许您可以粘贴用于转换的实际代码?您好这是我用来进行转换的实际代码。同样的问题仍然存在于我的windows上,但在我的mac上,现在它说有一个AttributeError:“function”对象没有属性“relu6”。非常感谢!我没有在windows上使用coremltools,所以我不能说任何有用的东西。relu6错误是因为您使用的是Keras tha的版本t与coremltools不兼容。(暂时)将Keras降级到2.1.6或coremltools想要的任何版本。
>>> python
Python 3.7.4 (v3.7.4:e09359112e, Sep 5 2019, 14:54:52)
>>> import coremltools
>>> coremltools.converters.keras.convert()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: convert() missing 1 required positional argument: 'model'
import coremltools
coreml_model = coremltools.converters.convert(model,
input_names="inputname",
output_names="outputname")
Running TensorFlow Graph Passes: 100%|██████████| 5/5 [00:00<00:00, 37.53 passes/s]
Converting Frontend ==> MIL Ops: 100%|██████████| 6/6 [00:00<00:00, 5764.05 ops/s]
Running MIL optimization passes: 100%|██████████| 17/17 [00:00<00:00, 5633.05 passes/s]
Translating MIL ==> MLModel Ops: 100%|██████████| 3/3 [00:00<00:00, 6864.65 ops/s]