首页 > 解决方案 > CoreML:异常 Espresso 异常:“无效状态”:空输出 blob

问题描述

我使用CoreML在我的 iOS 应用程序中运行 keras 模型,但我无法完全理解这个问题,但我认为它与应用程序无关,而是与 Keras 模型有关。我使用的是 48x48 图像,CoreML 是否支持这种尺寸?

[Espresso::handle_ex_plan] exception=Espresso 异常:“无效状态”:空输出 blob [第 5 层异常:sequential/conv2d_3/BiasAdd]

2020-12-15 01:06:31.245711+0100 TSD[41213:1753543] [coreml] 计算 NN 输出时出错 -1

2020-12-15 01:06:31.245849+0100 TSD[41213:1753543] [coreml] -executePlan:error: 失败。计算 NN 输出时出错。

def cnn_model():
model = Sequential()
model.add(Conv2D(32, (3, 3), padding='same',
                 activation='relu'))
model.add(Conv2D(32, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.2))

model.add(Conv2D(64, (3, 3), padding='same', activation='relu'))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.2))

model.add(Conv2D(128, (3, 3), padding='same', activation='relu'))
model.add(Conv2D(128, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.2))

model.add(Flatten())
model.add(keras.layers.InputLayer(input_shape=(X.shape[1],)))
model.add(Dense(512, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(CLASSNAME_SIZE, activation='softmax'))
return model

编辑 1

根据错误描述(conv2d_3/biasadd),这是有问题的层

在此处输入图像描述

标签: ioskerascoremlcoremltools

解决方案


我会删除这条线,

model.add(keras.layers.InputLayer(input_shape=(X.shape[1])))

从您的 Keras 模型中再试一次。其他一切似乎都很好,但在模型转换为 Core ML 期间,这条线可能会搞砸。


推荐阅读