python - PyTorch 中的自定义权重初始化
问题描述
在 中实现custom weight initialization
方法的正确方法是PyTorch
什么?
我相信我不能直接向“torch.nn.init”添加任何方法,但希望用我自己的专有方法初始化模型的权重。
解决方案
您可以定义一个方法来根据每一层初始化权重:
def weights_init(m):
classname = m.__class__.__name__
if classname.find('Conv2d') != -1:
m.weight.data.normal_(0.0, 0.02)
elif classname.find('BatchNorm') != -1:
m.weight.data.normal_(1.0, 0.02)
m.bias.data.fill_(0)
然后将其应用于您的网络:
model = create_your_model()
model.apply(weights_init)
推荐阅读
- angular - Angular 6 cache.addAll() 不适用于 zonejs
- javascript - 反应本机时错误不受支持的顶级事件类型“topTouchStart”
- ocaml - 通过返回一些东西来停止函数
- aem - 如何在 AEM RTE 组件中使用外部样式表
- python - pytqt图形线的鼠标坐标
- spring - SpringBeanAutowiringSupport VS SpringBeanFacesELResolver
- r - R中的log2:如何计算指数和尾数
- javascript - 为 Microsoft Dynamics 365 定制项目服务自动化 (PSA)
- python - 使用 Pandas 进行多索引切片
- c# - 在用数据库中的数据填充组合框时,我创建了 SqlDataReader。我希望检索带有产品名称的列