【发布时间】:2019-03-15 16:09:39
【问题描述】:
我有以下问题:我在 Keras 中有一个脚本,它就像一个魅力。我现在想将此脚本转换为 MXNet。 Keras 中的 CNN 是这样的:
model=Sequential()
model.add(Convolution2D(128, (3, 3), padding='same', activation='relu', name='block1_conv1', input_shape=(80,120,3)))
model.add(MaxPooling2D((2, 2), strides=(2, 2)))
model.add(Convolution2D(256, (3, 3), padding='same', activation='relu', name='block2_conv1'))
model.add(MaxPooling2D((2, 2), strides=(2, 2)))
model.add(Flatten())
model.add(Dense(2, activation = 'softmax', name='final_fully_connected'))
我认为转换到 MXNet 并没有那么困难,我查看了相应的文档并将参数转移到我最了解的情况。
model=gluon.nn.Sequential()
with model.name_scope():
model.add(gluon.nn.Conv2D(channels=128, kernel_size=(3, 3), activation='relu'))
model.add(gluon.nn.MaxPool2D(pool_size=(2, 2), strides=(2, 2)))
model.add(gluon.nn.Conv2D(channels=256, kernel_size=(3, 3), activation='relu'))
model.add(gluon.nn.MaxPool2D(pool_size=(2, 2), strides=(2, 2)))
# The Flatten layer collapses all axis, except the first one, into one axis.
model.add(gluon.nn.Flatten())
model.add(gluon.nn.Dense(2, activation='relu'))
但如果我现在尝试训练模型,我会收到以下错误:
"MXNetError: [17:01:34] C:\ci\libmxnet_1533399150922\work\src\operator\nn\pooling.cc:145:检查失败:param.kernel[1]
我认为这与内核和 MaxPooling2D 层的尺寸有关,但我不明白这个错误,因为我认为我实际上在构建与 Keras 相同的网络。
为了完整性:我的输入变量 X 的维度为 (80, 120, 3)。
非常感谢一些 Keras/MXNet 专家的帮助。
【问题讨论】: