首页 文章

如何理解tensorflow中的卷积参数?

提问于
浏览
1

当我在tensorflow教程中阅读“Deep MNIST for expert”一章时 .

下面给出了第一层重量的功能 . 我不明白为什么补丁大小是5 * 5,为什么功能号码是32,它们是你可以选择任何人的随机数,还是必须遵循一些规则?功能号码“32”是否是“卷积内核”?

W_conv1 = weight_variable([5,5,1,32])第一卷积层我们现在可以实现我们的第一层 . 它将包含卷积,然后是最大池 . 卷积将为每个5x5补丁计算32个特征 . 它的重量张量将具有[5,5,1,32]的形状 . 前两个维度是补丁大小,下一个是输入通道的数量,最后一个是输出通道的数量 . 我们还将为每个输出通道提供一个带有组件的偏置向量 .

2 回答

  • 0

    补丁大小和功能数量是网络超参数,因此完全是任意的 .

    顺便说一句,遵循规则来定义工作和执行网络 . 内核大小应该很小,因为多个小内核的应用程序和较少数量的大内核之间存在等价关系('s an image processing topic and it'在VGG paper中有很好的解释) . 另外,使用小型过滤器的操作可以更快地执行 .

    要提取的要素数量(在您的示例中为32)完全是任意的,找到正确的数字在某种程度上是一门艺术 .

  • 1

    是的,它们都是超参数,在本教程中大部分都是随机选择的 . 目前已经做了很多努力来找到适当的内核大小,但是对于本教程来说并不重要 .

    tutorial告诉:

    卷积将为每个5x5补丁计算32个特征 . 它的重量张量将具有[5,5,1,32]的形状

    tf.nn.conv2d()告诉第二个参数代表您的过滤器,由 [filter_height, filter_width, in_channels, out_channels] 组成 . 所以 [5, 5, 1, 32] 意味着你的 in_channels 是1:你有一个灰度图像,所以这里没什么意外 .

    32意味着在我们的学习阶段,网络将尝试学习将在预测期间使用的32个不同的内核 . 您可以将此数字更改为任何其他数字,因为它是您可以调整的超参数 .

相关问题