Deep learning 《凯拉斯·西亚诺》中负向维度的含义是什么

Deep learning 《凯拉斯·西亚诺》中负向维度的含义是什么,deep-learning,keras,theano,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实际上可能是一

我已经尝试定义一个简单的体系结构来在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实际上可能是一个未知的大小,但Keras层不是这样工作的。Keras中的未知批量是
None
维度

对于卷积,Keras使用
通道\u last
作为数据格式,因此您应该将数据塑造为
(28,28,1)
,即(imageSide1,imageSide2,通道)

通过将数据整形为(1,28,28),卷积将认为第一个图像边是1像素。并通过该操作移除2个像素,结果为-1。因此,将其形状设置为(28,28,1),以获得(None,26,26,32)的输出


或者,您可以将卷积层中的
data\u format
参数设置为
channels\u first
,甚至可以将
keras.json
文件更改为默认设置为
channels\u first

尽管直接使用张量时,a-1实际上可能是一个未知的大小,但Keras层并不是这样工作的。Keras中的未知批量是
None
维度

对于卷积,Keras使用
通道\u last
作为数据格式,因此您应该将数据塑造为
(28,28,1)
,即(imageSide1,imageSide2,通道)

通过将数据整形为(1,28,28),卷积将认为第一个图像边是1像素。并通过该操作移除2个像素,结果为-1。因此,将其形状设置为(28,28,1),以获得(None,26,26,32)的输出


或者,您可以将卷积层中的
data\u format
参数设置为
channels\u first
,甚至可以将
keras.json
文件更改为默认设置为
channels\u first

它意味着未知维度。它在当前上下文中是未知的,但将在运行中推断或学习,例如在提供批次大小后。它表示未知维度。在当前上下文中它是未知的,但是它将在运行中被推断或学习,例如在提供批量大小之后。您是如何学习这些内容的:D?你能为我介绍一些有用的资源吗?我不得不打电话给“Daniel.fit(与Keras一起训练,预期成绩,历代=很多)”。我发现很难写出好的、简短的、有用的教程。他们都说得太多,解释的理论比实际使用的多。一些资源:如果你不是从零开始,这是非常有用的。为了理解维度,你是如何学习这些东西的:D?你能为我介绍一些有用的资源吗?我不得不打电话给“Daniel.fit(与Keras一起训练,预期成绩,历代=很多)”。我发现很难写出好的、简短的、有用的教程。他们都说得太多,解释的理论比实际使用的多。一些资源:如果你不是从零开始,这是非常有用的。为了理解维度。