keras theano中负面维度的含义是什么?

时间:2017-05-18 15:57:44

标签: deep-learning keras theano

我尝试定义一个在MNIST数据集上使用的简单架构,我开始定义我的架构如下:

model = Sequential()

model.add(Convolution2D(32,(3,3),activation='relu',input_shape = (1,28,28)));

在这一步中,我检查了我的网络:

model.output_shape

它给了我这个:

(None, -1, 26, 32)

有人可以向我解释负面维度(-1)的含义是什么?

1 个答案:

答案 0 :(得分:2)

虽然直接使用张量时-1实际上可能是未知大小,但Keras图层不能像那样工作。 Keras中的未知批量大小为None维度。

对于卷积,Keras使用channels_last作为数据格式,因此您应将数据整形为(28,28,1),即(imageSide1,imageSide2,channels)

通过将数据整形为(1,28,28),卷积将认为第一个图像面是1个像素。通过操作删除2个像素,将导致-1。因此,将其塑造为(28,28,1)以获得(无,26,26,32)的输出。

或者,您可以将卷积层中的data_format参数设置为channels_first,或者甚至将keras.json文件更改为channels_first作为默认值。