目前,我试图通过Tensorflow MNIST卷积网络教程和我可能需要一些帮助,以理解的尺寸的加法张量。
所以我们有28x28像素大小的图像。
卷积将计算每5x5个补丁的32个特征。
现在,让我们接受这一点,稍后再问自己,为什么有32个特性,为什么是5x5补丁。
它的重量张量将具有
[5, 5, 1, 32]的形状。前两个维度是补丁大小,其次是输入通道的数量,最后是输出通道的数量。W_conv1 = weight_variable([5, 5, 1, 32])b_conv1 = bias_variable([32])
如果你这么说..。
为了应用这一层,我们首先将x整形为4d张量,第二和第三维对应于图像的宽度和高度,最后的维数对应于彩色通道的数目。
x_image = tf.reshape(x, [-1,28,28,1])
好吧,现在我迷路了。
从最后一次整形判断,我们有“很多”的“28x28x1”块的像素,这是我们的图像。
我想这是有道理的,因为图像是灰度的。
然而,如果这是排序,那么我们的权重张量实质上是一个由五个5x1x32值“块”组成的集合。
我想,如果我们想要推断每个补丁的x32特性,那么这个32就有意义了。
其余的,我不太相信。
为什么重量张量看起来像它明显的样子?
(为了完整性:我们使用它们
h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)
h_pool1 = max_pool_2x2(h_conv1)哪里
def conv2d(x,W):
'''
2D convolution, expects 4D input x and filter matrix W
'''
return tf.nn.conv2d(x,W,strides=[1,1,1,1],padding ='SAME')
def max_pool_2x2(x):
'''
max-pooling, using 2x2 patches
'''
return tf.nn.max_pool(x,ksize=[1,2,2,1], strides=[1,2,2,1],padding='SAME'))
发布于 2017-05-05 18:57:16
你的输入张量的形状是[-1,28,28,1]。正如您提到的,最后一个维度是1,因为图像是灰度的。第一个索引是批大小。卷积将独立处理批中的每一幅图像,因此批量大小对卷积-权重-张量维没有影响,或者实际上对网络中的任何权-张量维没有影响。这就是批量大小可以是任意的原因(-1表示tensorflow中的任意大小)。
现在到重量张量,你没有5的5x1x32,-blocks,而是32的5x5x1,-blocks。每一个都代表一个特性。1是补丁的深度,1是由于灰度(对于彩色图像是5x5x3x32 )。5x5是修补程序的大小。
数据张量的维数排序与卷积权张量的维数排序不同。
发布于 2017-05-06 08:11:33
除了另一个答案,我还想补充几点,
现在,让我们接受这一点,稍后再问自己,为什么有32个特性,为什么是5x5补丁。
没有具体的原因我们选择5x5补丁或32个特性,所有这些参数都经历过(在某些情况下除外),您可以使用3x3补丁或更大的特性大小。
我说‘除了在某些情况下’,因为我们可以使用3x3补丁从图像中获取更多细节信息,或者使用更大的特征大小来学习每个图像的更多细节(“更大”和“更多细节”是本例中的相对术语)。
但是,如果这是排序,那么我们的权重张量实质上是由五个5x1x32“块”值组成的集合。
不完全正确,但权重张量不是集合,它只是一个具有大小5x5和输入通道1和输出特性(通道) 32的过滤器。
为什么重量张量看起来像它明显的样子?
权重张量weight_variable([5, 5, 1, 32])告诉我要在图像上应用5x5补丁大小,我有1输入特性(因为图像是灰度的)和32输出特性(通道)。
详细信息:
因此,这一行tf.nn.conv2d(x,W,strides=[1,1,1,1],padding ='SAME')将输入x作为[-1,28,28,1],-1意味着您可以在这个维度中输入任意大小(批次大小),28,28显示输入大小,并且必须精确地为28x82,最后一个1显示输入通道的数量,因为mnist图像是灰度图像,所以是1,更详细地说,输入图像是一个28x28 2D矩阵,每个矩阵单元格都显示一个表示灰度强度的值。如果输入图像为RGB,则应该用3通道代替1,而3通道表示输入图像是28x28x3 3D矩阵,3第一维的单元格显示红色的强度,3的第二维表示绿色的强度,另一种是蓝色的。
现在,tf.nn.conv2d(x,W,strides=[1,1,1,1],padding ='SAME')取x并应用W(这是一个3x3补丁,并在步长为1的28x28图像上应用whis补丁),并再次以28x28大小给出结果图像,因为我们使用padding='SAME'。
https://stackoverflow.com/questions/43805860
复制相似问题