【问题标题】:Convolution and Pooling in TensorFlow Deep MNISTTensorFlow Deep MNIST 中的卷积和池化
【发布时间】:2016-05-31 13:52:09
【问题描述】:

当我学习Deep MNIST for Experts tutorial时,我遇到了很多困难。 我想知道他们为什么在多层卷积网络中使用卷积和池化

而且我不明白下面两个函数。

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')

我想知道strides=[1,1,1,1]在conv2d函数中的含义。

我们是否应该在 max_pool_2x2 函数中始终使用 ksize=[1, 2, 2, 1]strides=[1, 2, 2, 1]。 p>

padding='SAME'padding='VALID'

有什么区别

【问题讨论】:

标签: machine-learning tensorflow


【解决方案1】:

我会说检查以下answer。它对整个卷积操作有很好的解释。这应该涵盖您对 conv2d 的查询。

对于最大池化,

ksize:基本上是内核大小。它是输入张量每个维度的窗口大小。您可以根据需要进行更改。就像在论文AlexNet 中一样,他们使用了 ksize=[1, 3, 3, 1] 和

stride:过滤器应用于与过滤器大小相同的图像块,并根据 strides 参数进行跨步。 strides = [1, 2, 2, 1] 将过滤器应用于每个维度中的每个其他图像块,等等。

这个post很好地解释了填充的区别。

【讨论】:

    猜你喜欢
    • 2017-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 2017-12-05
    • 2019-09-06
    相关资源
    最近更新 更多