我正在尝试将以下模型定义从Torch移植到Keras。
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
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激活。我该怎么办才能传递这个错误?谢谢。