Tensorflow 卷积网络中的输入维度重塑
input dimension reshape in Tensorflow conolutional network
在tensorflow网站的专家mnist教程中,有这样的内容:
x_image = tf.reshape(x, [-1,28,28,1])
我知道整形就像
tf.reshape(input,[batch_size,width,height,channel])
Q1 : 为什么 batch_size 等于 -1? -1 是什么意思?
当我深入了解代码时,还有一件事我无法理解
W_fc1 = weight_variable([7 * 7 * 64, 1024])
Q2:image_size * 64 是什么意思?
当您在 tf.reshape
中将 -1 作为维度传递时,它会保留现有维度。来自文档:
If one component of shape is the special value -1, the size of that
dimension is computed so that the total size remains constant. In
particular, a shape of [-1] flattens into 1-D. At most one component
of shape can be -1.
提到7 x 7 x 64是因为在这个例子之前应用的卷积层已经将图像缩小为[7,7,64]的形状,并且下一个全连接层的输入需要是单一维度,所以在示例的下一行中,张量从 [7,7,64] 重塑为 [7*7*64] 因此它可以连接到 FC 层。
有关卷积和最大池如何工作的更多信息,the wikipedia page 有一些有用的图形:
例如网络架构:
和池化:
Q1 : why is the batch_size equals -1? What does the -1 means?
-1 表示 "figure this part out for me"。例如,如果我 运行:
reshape([1, 2, 3, 4, 5, 6, 7, 8], [-1, 2])
它创建了两列,以及需要多少行才能使所有内容都适合:
array([[1, 2],
[3, 4],
[5, 6],
[7, 8]])
Q2:What does the image_size * 64 means?
它是特定过滤器激活中的过滤器数量。转换层中过滤器的形状遵循 [height, width, # of input channels (number of filters in the previous layer), # of filters]
.
格式
在tensorflow网站的专家mnist教程中,有这样的内容:
x_image = tf.reshape(x, [-1,28,28,1])
我知道整形就像
tf.reshape(input,[batch_size,width,height,channel])
Q1 : 为什么 batch_size 等于 -1? -1 是什么意思?
当我深入了解代码时,还有一件事我无法理解
W_fc1 = weight_variable([7 * 7 * 64, 1024])
Q2:image_size * 64 是什么意思?
当您在 tf.reshape
中将 -1 作为维度传递时,它会保留现有维度。来自文档:
If one component of shape is the special value -1, the size of that dimension is computed so that the total size remains constant. In particular, a shape of [-1] flattens into 1-D. At most one component of shape can be -1.
提到7 x 7 x 64是因为在这个例子之前应用的卷积层已经将图像缩小为[7,7,64]的形状,并且下一个全连接层的输入需要是单一维度,所以在示例的下一行中,张量从 [7,7,64] 重塑为 [7*7*64] 因此它可以连接到 FC 层。
有关卷积和最大池如何工作的更多信息,the wikipedia page 有一些有用的图形:
例如网络架构:
和池化:
Q1 : why is the batch_size equals -1? What does the -1 means?
-1 表示 "figure this part out for me"。例如,如果我 运行:
reshape([1, 2, 3, 4, 5, 6, 7, 8], [-1, 2])
它创建了两列,以及需要多少行才能使所有内容都适合:
array([[1, 2],
[3, 4],
[5, 6],
[7, 8]])
Q2:What does the image_size * 64 means?
它是特定过滤器激活中的过滤器数量。转换层中过滤器的形状遵循 [height, width, # of input channels (number of filters in the previous layer), # of filters]
.