gpt4 book ai didi

python - 卷积网络中的权重?

转载 作者:太空狗 更新时间:2023-10-30 00:39:26 25 4
gpt4 key购买 nike

我目前正在关注 TensorFlow 的 Multilayer Convolutional Network教程。

在各个层中,权重初始化如下:

  • 第一个卷积层:

    W_conv1 = weight_variable([5, 5, 1, 32])
  • 第二个卷积层:

    W_conv2 = weight_variable([5, 5, 32, 64])
  • 密集连接层:

    W_fc1 = weight_variable([7 * 7 * 64, 1024])
  • 读出层:

    W_fc2 = weight_variable([1024, 10])

所以我怀疑我们如何知道上述权重变量的形状?

他们是否使用任何数学来为他们找到形状?

最佳答案

答案在同一页上解释:

The convolutional will compute 32 features for each 5x5 patch. Its weight tensor will have a shape of [5, 5, 1, 32]

没有涉及到数学方面的说法,但这些术语需要解释

  1. 卷积核的大小是5X5。这意味着有一个 5X5 矩阵,它通过在图像周围移动来与输入图像卷积。检查this link用于解释小型 5X5 矩阵如何在 28X28 图像上移动并将图像矩阵的不同单元与其自身相乘。这给了我们 [5, 5, 1, 32]
  2. 的前两个维度
  3. 输入 channel 的大小是1。这些是 BW 图像,因此是一个输入 channel 。大多数彩色图像有 3 个 channel ,因此在处理图像的其他一些卷积网络中期望 3。实际上,对于第二层 W_conv2,输入 channel 数为 32,与第一层的输出 channel 数相同。
  4. 权重矩阵的最后一个维度可能是最难可视化的。想象一下您的 5X5 矩阵,并将其复制 32 次!。这 32 个事物中的每一个都称为 channels。为了完成讨论,这 32 个 5X5 矩阵中的每一个都使用随机权重进行初始化,并在网络的前向/反向传播期间独立训练。更多 channel 学习图像的不同方面,从而为您的网络提供额外的力量。

如果总结这 3 点,您将获得第 1 层所需的维度。后续层是扩展 - 在这种情况下,前两个维度是内核大小 (5X5)。第三维等于输入 channel 的大小,等于前一层输出 channel 的大小。 (32,因为我们声明了第 1 层的 32 个输出 channel )。最终维度是当前层输出 channel 的大小(64,第二层甚至更大!。同样,保持大量独立的 5X5 内核有帮助!)。

最后,最后两层:最后的致密层是唯一涉及一些计算的东西:

  1. 对于每个卷积层,最终尺寸=初始尺寸
  2. 对于大小为 kXk 的池化层,最终大小 = 初始大小/k

所以,

  1. 对于 conv1,大小保持为 28 X 28
  2. pool1 将大小减小到 14 X 14
  3. 对于 conv2,大小保持为 14 X 14
  4. pool2 将大小减小到 7 X 7

当然,由于 conv2,我们有 64 个 channel ——池化不会影响它们。因此,我们得到了 7X7X64 的最终密集输入。然后我们创建完全连接的 1024 隐藏层并为 10 数字添加 10 输出类。

关于python - 卷积网络中的权重?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34745196/

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