如何理解tensorflow中的卷积参数?
How to understand the convolution parameters in tensorflow?
当我阅读 tensorflow 教程中的“Deep MNIST for expert”一章时。
第一层的权重函数如下。我不明白为什么补丁大小是 5*5,为什么特征数是 32,它们是你可以选择任何人的随机数还是必须遵循一些规则?特征编号“32”是否为“卷积核”?
W_conv1 = weight_variable([5, 5, 1, 32])
First Convolutional Layer
We can now implement our first layer. It will consist of convolution,
followed by max pooling. The convolutional will compute 32 features
for each 5x5 patch. Its weight tensor will have a shape of [5, 5, 1,
32]. The first two dimensions are the patch size, the next is the
number of input channels, and the last is the number of output
channels. We will also have a bias vector with a component for each
output channel.
补丁大小和特征数量是网络超参数,因此完全是任意的。
顺便说一下,为了定义一个工作和执行的网络,需要遵循一些经验法则。
由于多个小内核的应用与较少数量的大内核之间的等价性,内核大小应该很小(这是一个图像处理主题,在 VGG paper 中有很好的解释)。上瘾时,使用小过滤器的操作执行起来要快得多。
要提取的特征数量(在您的示例中为 32)完全是任意的,找到正确的数量在某种程度上是一门艺术。
是的,它们都是超参数,在本教程中大多是任意选择的。目前已经做了很多努力来找到合适的内核大小,但对于本教程来说这并不重要。
tutorial 告诉:
The convolutional will compute 32 features for each 5x5 patch. Its weight tensor will have a shape of [5, 5, 1, 32]
tf.nn.conv2d() 表示第二个参数代表您的过滤器,由 [filter_height, filter_width, in_channels, out_channels]
组成。所以 [5, 5, 1, 32]
意味着你的 in_channels
是 1:你有一个灰度图像,所以这里没有惊喜。
32 表示在我们的学习阶段,网络将尝试学习 32 个不同的内核,这些内核将在预测期间使用。您可以将此数字更改为任何其他数字,因为它是您可以调整的超参数。
当我阅读 tensorflow 教程中的“Deep MNIST for expert”一章时。
第一层的权重函数如下。我不明白为什么补丁大小是 5*5,为什么特征数是 32,它们是你可以选择任何人的随机数还是必须遵循一些规则?特征编号“32”是否为“卷积核”?
W_conv1 = weight_variable([5, 5, 1, 32])
First Convolutional Layer
We can now implement our first layer. It will consist of convolution, followed by max pooling. The convolutional will compute 32 features for each 5x5 patch. Its weight tensor will have a shape of [5, 5, 1, 32]. The first two dimensions are the patch size, the next is the number of input channels, and the last is the number of output channels. We will also have a bias vector with a component for each output channel.
补丁大小和特征数量是网络超参数,因此完全是任意的。
顺便说一下,为了定义一个工作和执行的网络,需要遵循一些经验法则。 由于多个小内核的应用与较少数量的大内核之间的等价性,内核大小应该很小(这是一个图像处理主题,在 VGG paper 中有很好的解释)。上瘾时,使用小过滤器的操作执行起来要快得多。
要提取的特征数量(在您的示例中为 32)完全是任意的,找到正确的数量在某种程度上是一门艺术。
是的,它们都是超参数,在本教程中大多是任意选择的。目前已经做了很多努力来找到合适的内核大小,但对于本教程来说这并不重要。
tutorial 告诉:
The convolutional will compute 32 features for each 5x5 patch. Its weight tensor will have a shape of [5, 5, 1, 32]
tf.nn.conv2d() 表示第二个参数代表您的过滤器,由 [filter_height, filter_width, in_channels, out_channels]
组成。所以 [5, 5, 1, 32]
意味着你的 in_channels
是 1:你有一个灰度图像,所以这里没有惊喜。
32 表示在我们的学习阶段,网络将尝试学习 32 个不同的内核,这些内核将在预测期间使用。您可以将此数字更改为任何其他数字,因为它是您可以调整的超参数。