【发布时间】:2021-04-24 10:20:21
【问题描述】:
我一直在尝试将 Keras 模型转换为核心 mlmodel。但是,在这样做的同时,我得到了多个输入和输出。我只想将以下内容作为输入和输出。
name: "input"
type {
imageType {
width: 256
height: 64
colorSpace: GRAYSCALE }
}
name: "output"
type {
dictionaryType {
stringKeyType {
}
}
}
我得到的当前模型。
type {
imageType {
width: 256
height: 64
colorSpace: GRAYSCALE
}
}
, name: "lstm1_h_in"
type {
multiArrayType {
shape: 256
dataType: DOUBLE
}
isOptional: true
}
, name: "lstm1_c_in"
type {
multiArrayType {
shape: 256
dataType: DOUBLE
}
isOptional: true
}
, name: "lstm1_h_in_rev"
type {
multiArrayType {
shape: 256
dataType: DOUBLE
}
isOptional: true
}
, name: "lstm1_c_in_rev"
type {
multiArrayType {
shape: 256
dataType: DOUBLE
}
isOptional: true
}
, name: "lstm2_h_in"
type {
multiArrayType {
shape: 256
dataType: DOUBLE
}
isOptional: true
}
, name: "lstm2_c_in"
type {
multiArrayType {
shape: 256
dataType: DOUBLE
}
isOptional: true
}
, name: "lstm2_h_in_rev"
type {
multiArrayType {
shape: 256
dataType: DOUBLE
}
isOptional: true
}
, name: "lstm2_c_in_rev"
type {
multiArrayType {
shape: 256
dataType: DOUBLE
}
isOptional: true
}
]
[name: "output"
type {
dictionaryType {
stringKeyType {
}
}
}
, name: "lstm1_h_out"
type {
multiArrayType {
shape: 256
dataType: DOUBLE
}
}
, name: "lstm1_c_out"
type {
multiArrayType {
shape: 256
dataType: DOUBLE
}
}
, name: "lstm1_h_out_rev"
type {
multiArrayType {
shape: 256
dataType: DOUBLE
}
}
, name: "lstm1_c_out_rev"
type {
multiArrayType {
shape: 256
dataType: DOUBLE
}
}
, name: "lstm2_h_out"
type {
multiArrayType {
shape: 256
dataType: DOUBLE
}
}
, name: "lstm2_c_out"
type {
multiArrayType {
shape: 256
dataType: DOUBLE
}
}
, name: "lstm2_h_out_rev"
type {
multiArrayType {
shape: 256
dataType: DOUBLE
}
}
, name: "lstm2_c_out_rev"
type {
multiArrayType {
shape: 256
dataType: DOUBLE
}
}
, name: "classLabel"
type {
stringType {
}
}
]
我正在使用此代码进行转换:
from keras.models import load_model
import coremltools as ct
class_labels = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K",
"L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f",
"g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "-"]
tf_keras_model = load_model("HTRAdam.h5")
mlmodel = ct.converters.keras.convert('HTRAdam.h5', input_names=['image'], output_names=['output'],
class_labels=class_labels, image_input_names='image')
mlmodel.save('HTR.mlmodel')
当我在其中输入图像时,我没有得到任何输出。我的意思是图像输出为零。 我进入调试模式,但在模型预测中找不到任何错误。
我猜测问题可能出在编译模型上,但我不知道如何解决它。 感谢您的帮助。
【问题讨论】:
标签: machine-learning keras tf.keras coreml coremltools