我正在学习使用 Keras 和 CoreML 进行机器学习的教程,当我开始运行以下代码并将 Keras 模型转换为 CoreML 时。我得到:
AttributeError: 'module' 对象没有属性 'SeparableConv1D'
我应该在哪里更改以解决此问题?
这是我运行的代码:
output_labels = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
coreml_mnist = coremltools.converters.keras.convert(
'best_model.09-0.03.h5', input_names=['image'], output_names=['output'],
class_labels=output_labels, image_input_names='image')
这是我得到的详细信息:
AttributeError Traceback (most recent call last)
<ipython-input-73-8fa50f6bbeb9> in <module>()
10 coreml_mnist = coremltools.converters.keras.convert(
11 'best_model.08-0.03.h5', input_names=['image'], output_names=['output'],
---> 12 class_labels=output_labels, image_input_names='image')
/usr/local/lib/python2.7/dist-packages/coremltools/converters/keras/_keras_converter.pyc in convert(model, input_names, output_names, image_input_names, input_name_shape_dict, is_bgr, red_bias, green_bias, blue_bias, gray_bias, image_scale, class_labels, predicted_feature_name, model_precision, predicted_probabilities_output, add_custom_layers, custom_conversion_functions)
758 predicted_probabilities_output,
759 add_custom_layers,
--> 760 custom_conversion_functions=custom_conversion_functions)
761
762 return _MLModel(spec)
/usr/local/lib/python2.7/dist-packages/coremltools/converters/keras/_keras_converter.pyc in convertToSpec(model, input_names, output_names, image_input_names, input_name_shape_dict, is_bgr, red_bias, green_bias, blue_bias, gray_bias, image_scale, class_labels, predicted_feature_name, model_precision, predicted_probabilities_output, add_custom_layers, custom_conversion_functions, custom_objects)
554 add_custom_layers=add_custom_layers,
555 custom_conversion_functions=custom_conversion_functions,
--> 556 custom_objects=custom_objects)
557 else:
558 raise RuntimeError(
/usr/local/lib/python2.7/dist-packages/coremltools/converters/keras/_keras2_converter.pyc in _convert(model, input_names, output_names, image_input_names, input_name_shape_dict, is_bgr, red_bias, green_bias, blue_bias, gray_bias, image_scale, class_labels, predicted_feature_name, predicted_probabilities_output, add_custom_layers, custom_conversion_functions, custom_objects)
207 # Build network graph to represent Keras model
208 graph = _topology2.NetGraph(model)
--> 209 graph.build()
210
211 # The graph should be finalized before executing this
/usr/local/lib/python2.7/dist-packages/coremltools/converters/keras/_topology2.pyc in build(self, is_top_level)
748 self.insert_1d_permute_layers()
749 self.insert_permute_for_spatial_bn()
--> 750 self.defuse_activation()
751 self.remove_internal_input_layers()
752
/usr/local/lib/python2.7/dist-packages/coremltools/converters/keras/_topology2.pyc in defuse_activation(self)
508 isinstance(k_layer, _keras.layers.Conv1D) or
509 isinstance(k_layer, _keras.layers.SeparableConv2D) or
--> 510 isinstance(k_layer, _keras.layers.SeparableConv1D) or
511 isinstance(k_layer, _keras.layers.Dense)):
512
AttributeError: 'module' object has no attribute 'SeparableConv1D'
好像你正在使用的版本keras
是不支持通过coremltools
,作为SeparableConv1D
比keras 2.0.6以后添加,你应该升级keras到最新版本为这个工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句