gpt4 book ai didi

python - Tensorflow 卷积网络——维度(形状)是如何计算的?

转载 作者:行者123 更新时间:2023-11-28 22:33:01 26 4
gpt4 key购买 nike

我不确定tensorflow中的卷积中性网络如何计算这个tutorial中的维度.

  1. 图像有 28*28 像素 (x_image = tf.reshape(x, [-1,28,28,1]))
  2. 补丁大小为 5x5 (W_conv1 = weight_variable([5, 5, 1, 32])
  3. 第一个卷积层通过以下方式完成:(h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1))
  4. 第一层的形状是:h_pool1.get_shape()TensorShape([Dimension(10), Dimension(14), Dimension(14), Dimension(32)] )

Q1:为什么第一维是10?

Q2:为什么 5x5 的 patch 尺寸会降低到 14x14 的尺寸?如果我有一个 28x28 的图像,并且我对所有像素应用 5x5 的补丁,我希望超过 14x14。

Q3:-1x_image的代码中做了什么?

最佳答案

形状是(batch_size, height, width, channel)。

Q1. 10 是您的批量大小。我猜你有这样一行:

x = tf.placeholder(tf.float32, shape=[10, 784])

在教程中,行是:

x = tf.placeholder(tf.float32, shape=[None, 784])

这样,您将拥有批量大小“Dimension(None)”而不是“Dimension(10)”。

第二季度。Layer1 包括一个卷积层和一个最大池化层。卷积层 "SAME" padding将输出相同大小的东西。尺寸减小来自带有“SAME”填充的 2x2 最大池化,它输出 (h/2, w/2)。

def conv2d(x, W):
return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')

def max_pool_2x2(x):
return tf.nn.max_pool(x, ksize=[1, 2, 2, 1],
strides=[1, 2, 2, 1], padding='SAME')

h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)
h_pool1 = max_pool_2x2(h_conv1)

第 3 季度。 tf.reshape() with a single dimension "-1"保留程序自动计算的尺寸,以便总尺寸保持不变。

关于python - Tensorflow 卷积网络——维度(形状)是如何计算的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40353197/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com