【问题标题】:TypeError: 'InputLayer' object is not iterable with CoreMLToolsTypeError:“InputLayer”对象不可与 CoreMLTools 迭代
【发布时间】:2020-10-24 09:51:43
【问题描述】:

我正在尝试将 VGG 模型转换为 coremltools。当我运行以下代码来转换模型时:

with CustomObjectScope({'relu6': keras.layers.ReLU,'DepthwiseConv2D': keras.layers.DepthwiseConv2D}):
    from keras.models import load_model
    import coremltools


model_directory = 'KerasModels/VGG-7-3-20_13categories.h5'

keras_model = load_model(model_directory)
input_layer = InputLayer(input_shape=(224, 224, 3), name="input_1")

# Save and convert :
keras_model.layers[0] = input_layer
keras_model.save(model_directory)
print("Changed2")


your_model = coremltools.converters.keras.convert(model_directory, input_names=['image'], output_names=['output'], image_input_names='image')




your_model.save('RecycleNet.mlmodel')

我收到以下错误:

TypeError: 'InputLayer' object is not iterable

我应该如何将此模型转换为 coremltools?谢谢

【问题讨论】:

  • 因为没有这样的层名为 InputLayer 但 Input 有。
  • 我改成 Input 还是一样的错误

标签: swift keras coremltools


【解决方案1】:

我通过切换使用修复了这个错误:

coremltools.converters.keras

到:

coremltools.converters.tensorflow

【讨论】:

    【解决方案2】:

    这行代码为我解决了:

    coremlModel = coremltools.convert(model)
    

    而不是使用这个:

    coremlModel = coremltools.converters.keras.convert(model)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-01
      • 2017-08-27
      • 2018-10-10
      • 2021-12-13
      • 2019-02-20
      • 2020-03-27
      • 2018-12-12
      • 2018-07-16
      相关资源
      最近更新 更多