首页 > 解决方案 > pytorch卷积层中的第一个初始化权重是什么

问题描述

关于最后一段,我在Udacity PyTorch 自学

学习

在您使用的代码中,您一直在明确设置过滤器权重的值,但神经网络实际上会在训练一组图像数据时学习最佳过滤器权重。您将在本节后面部分了解有关这种类型的神经网络的所有信息,但要知道高通和低通滤波器是定义此类网络行为的要素,并且您知道如何从头开始编写这些代码!

在实践中,您还会发现许多神经网络学会检测图像的边缘,因为对象的边缘包含有关对象形状的有价值信息。

我已经学习了最后的第 44 节。但我无法回答以下问题

  1. 我这样做时的初始化重量是torch.nn.Conv2d多少?以及如何自己定义?
  2. 如何PyTorch更新卷积层中的权重?

标签: pythonneural-networkconv-neural-networkpytorch

解决方案


当您声明nn.Conv2d通过此代码初始化权重时。

特别是,如果你给出偏差,它会使用 Kaiming 等人提出的初始化。bound=\sqrt{6/((1+a^2)fan_in)}它初始化为 (-bound, bound) where (See here )之间的均匀分布。

您也可以手动初始化权重。这已在其他地方得到解答(请参阅此处),我不会重复。

当您调用optimizer.step并且优化器注册了卷积过滤器的参数时,它们会更新。


推荐阅读