Модель Core ML (.mlmodel) прошла обучение, но я обнаружил, что она может работать только на MacOS. (Но я хочу запустить его на сервере Linux)
Я попытался преобразовать его в формат ONNX, но не получилось.
onnxmltools
и следующий python код был использован для преобразования:
import onnxmltools
import coremltools
# Load a Core ML model
coreml_model = coremltools.utils.load_spec('example.mlmodel')
# Convert the Core ML model into ONNX
onnx_model = onnxmltools.convert_coreml(coreml_model, 'Example Model')
# Save as protobuf
onnxmltools.utils.save_model(onnx_model, 'example.onnx')
Но после запуска программы выше
Traceback (most recent call last):
File "convertToOnnx.py", line 8, in <module>
onnx_model = onnxmltools.convert_coreml(coreml_model, 'Post Rating Model')
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/onnxmltools/convert/main.py", line 18, in convert_coreml
custom_conversion_functions, custom_shape_calculators)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/onnxmltools/convert/coreml/convert.py", line 60, in convert
topology = parse_coreml(spec, initial_types, target_opset, custom_conversion_functions, custom_shape_calculators)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/onnxmltools/convert/coreml/_parse.py", line 467, in parse_coreml
topology.compile()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/onnxconverter_common/topology.py", line 632, in compile
self._infer_all_types()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/onnxconverter_common/topology.py", line 508, in _infer_all_types
operator.infer_types()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/onnxconverter_common/topology.py", line 110, in infer_types
registration.get_shape_calculator(self.type)(self)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/onnxmltools/convert/coreml/shape_calculators/OneHotEncoder.py", line 36, in calculate_one_hot_encoder_output_shapes
raise ValueError('Categorical indexes are missing')
ValueError: Categorical indexes are missing
было показано следующее сообщение об ошибке Как я могу решить ошибку выше? Или как я могу использовать модель Core ML на сервере Linux? (Есть ли другой способ преобразования модели?)