我有一个使用Keras(使用MXNet作为后端)制作的CNN模型。我能够轻松创建,训练和导出模型。但是,当我尝试将此模型加载到DeepLens时,出现以下错误:
ValueError: [91mYou created Module with Module(..., data_names=['data']) but input with name 'data' is not found in symbol.list_arguments(). Did you mean one of:
/conv2d_1_input1
conv2d_1/kernel1
conv2d_1/bias1
conv2d_2/kernel1
conv2d_2/bias1
conv2d_3/kernel1
conv2d_3/bias1
dense_1/kernel1
dense_1/bias1
dense_2/kernel1
dense_2/bias1
dense_3/kernel1
dense_3/bias1[0m
我从未为名为data
的符号做过参数。所有其他符号都有意义,因为它们是从我的模型派生的。我在下面添加了与Keras CNN创建相关的所有代码。
model = Sequential()
model.add(Conv2D(8, (1,1), input_shape=inputShape))
model.add(Dropout(0.5))
model.add(Activation('relu'))
model.add(Conv2D(16, (1,1), padding='same'))
model.add(Dropout(0.5))
model.add(Activation('relu'))
model.add(Conv2D(32, (1,1), padding='same'))
model.add(Dropout(0.5))
model.add(Activation('relu'))
model.add(Flatten())
model.add(Dense(240))
model.add(Activation('relu'))
model.add(Dense(120))
model.add(Dense(2))
model.add(Activation('sigmoid'))
是否存在解决方法或使用Keras(以MXNet作为后端)使用此方法的方法?我是否必须在Amazon Deeplens上运行命令?我必须在模型中添加一些内容吗?
答案 0 :(得分:0)
实际上,问题是MXNet中输入符号的默认名称为data
。在Keras中,似乎用于输入符号的默认名称是/conv2d_1_input1
。
您可以做两件事:
/conv2d_1_input1
文件中的-symbol.json
符号重命名为data
。 Module(..., data_names=['data'])
像下面的tutorial那样用Module(..., data_names=['/conv2d_1_input1'])
代替