卷积网络中的权重?

我目前正在按照TensorFlow的多层卷积网络教程进行学习。

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

  • 第一卷积层:

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

所以我对我们如何知道上述权重变量的形状?产生了疑问

是否有数学方法来确定它们的形状?


回答:

答案在同一页面上进行了解释:

卷积将为每个5×5的区域计算32个特征。其权重张量的形状将是[5, 5, 1, 32]

并没有涉及复杂的数学计算,但这些术语需要解释

  1. 卷积核的大小是5X5。这意味着有一个5X5的矩阵通过在输入图像上移动来与图像进行卷积。查看这个链接,了解一个小的5X5矩阵如何在一个28X28的图像上移动,并与图像矩阵的不同单元格相乘。这给出了[5, 5, 1, 32]的前两个维度
  2. 输入通道的数量是1。这些是黑白图像,因此只有一个输入通道。大多数彩色图像有3个通道,所以在其他处理图像的卷积网络中可能会看到3。确实,对于第二层,W_conv2,输入通道的数量是32,与第一层的输出通道数量相同。
  3. 权重矩阵的最后一个维度可能是最难想象的。想象你的5X5矩阵,并复制它32次!这32个东西被称为通道。为了完成讨论,这32个5X5矩阵中的每一个都用随机权重初始化,并在网络的前向/后向传播过程中独立训练。更多的通道可以学习图像的不同方面,从而为你的网络提供额外的能力。

如果你总结这三点,你会得到第一层的所需维度。后续层是扩展 – 前两个维度是卷积核的大小(在本例中为5X5)。第三个维度等于输入通道的尺寸,等于前一层的输出通道尺寸(32,因为我们声明第一层的输出通道为32)。最后一个维度是当前层的输出通道尺寸(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个通道 – 池化不会影响它们。因此,我们得到最终的全连接输入7X7X64。然后我们创建1024个全连接隐藏层,并为10个数字添加10个输出类别。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注