如何解决Keras 到 CoreML 的转换失败:“InputLayer”对象不可迭代
Keras 到 CoreML 的转换不起作用,它说“InputLayer”不是可迭代对象。一切正常,但我无法使其正常工作。
我试过这个选项
coremltools.convert(model,input_names = 'image',image_input_names = 'image',input_name_shape_dict={'input_1:0': [3,48,1]},image_scale=1.0/255.0)
但它在 xCode 中编译时结束抛出错误。为什么?因为它可能将模型视为张量流模型并结束应用奇怪的重塑。所以问题是我必须使用 coremltools.converters.keras.convert 但它最终会在 python 中抛出这个错误
'InputLayer' 对象不可迭代
for dense_layer in dense_layers:
for layer_size in layer_sizes:
for conv_layer in conv_layers:
NAME = "{}-conv-{}-nodes-{}-dense-{}".format(conv_layer,layer_size,dense_layer,int(time.time()))
print(NAME)
i = i + 1
print(i)
model = Sequential()
model.add(Conv2D(8,(5,5),padding='same',activation='relu',input_shape=X.shape[1:]))
model.add(MaxPooling2D(pool_size=(2,2),strides=(2,padding='same'))
model.add(Dropout(0.2))
model.add(Conv2D(layer_size,(3,3),activation='relu'))
model.add(MaxPooling2D(pool_size=(2,padding='same'))
model.add(Dropout(0.2))
for l in range(conv_layer-1):
model.add(Conv2D(layer_size,activation='relu'))
model.add(MaxPooling2D(pool_size=(2,padding='same'))
model.add(Dropout(0.2))
model.add(Flatten())
for _ in range(dense_layer):
model.add(Dense(layer_size))
model.add(Activation('relu'))
model.add(Dense(CLASSNAME_SIZE))
model.add(Activation('softmax'))
tensorboard = TensorBoard(log_dir="logs/{}".format(NAME))
model.compile(loss='sparse_categorical_crossentropy',optimizer='sgd',metrics=['accuracy'])
model.fit(X,Y,batch_size=32,epochs=1,validation_data=(X_val,Y_val),shuffle=True,callbacks=[tensorboard])
model.save('traffic_signsv8.model')
model.save('traffic_signsv8.h5')
model = load_model('traffic_signsv8.h5')
coremlModel = coremltools.converters.keras.convert(model,image_scale=1.0/255.0)
coremlModel.save('traffic_signsv8.mlmodel')
spec = coremltools.utils.load_spec("traffic_signsv8.mlmodel")
input = spec.description.input[0]
input.type.imageType.colorSpace = ft.ImageFeatureType.RGB
input.type.imageType.height = 48
input.type.imageType.width = 48
coremltools.utils.save_spec(spec,"Ciao.mlmodel")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。