从火炬到凯拉斯的港口模型

时间:2016-10-04 10:13:33

标签: deep-learning keras torch

我正在尝试将以下模型定义从Torch移植到Keras。

  • Torch lua script
local model = nn.Sequential();
-- input 3x12x12
model:add(nn.SpatialConvolution(3, 16, 3, 3))
-- outputs 16x10x10
model:add(nn.SpatialMaxPooling(3, 3, 2, 2))
model:add(nn.ReLU())
-- outputs 16x4x4
model:add(nn.SpatialConvolution(16, 16, 4, 4))
model:add(nn.ReLU())
-- outputs 16x1x1
model:add(nn.SpatialConvolution(16, 2, 1, 1))
-- outputs 2x1x1
model:add(nn.SpatialSoftMax())

https://github.com/IggyShone/fast_face_detector/blob/master/12net.lua

  • Ported Keras - Python脚本
model = Sequential()
model.add(Convolution2D(16, 4, 4, input_shape=(3, 12, 12), border_mode='valid', subsample=(1, 1)))
model.add(MaxPooling2D(pool_size=(3, 3), strides=(2, 2)))
model.add(Activation('relu'))
model.add(Convolution2D(16, 4, 4, input_shape=(16, 4, 4), border_mode='valid', subsample=(1, 1), activation='relu'))
model.add(Convolution2D(2, 1, 1, input_shape=(16, 1, 1), border_mode='valid', subsample=(1, 1), activation='softmax'))

但是当我运行移植的脚本时,发生了以下错误。

Exception: Cannot apply softmax to a tensor that is not 2D or 3D. Here, ndim=4

似乎keras不允许对卷积层应用softmax激活。我该怎么办才能传递这个错误?谢谢。

0 个答案:

没有答案