Pytorch卷积层手动初始化权值

您所在的位置:网站首页 卷积层参数设置 Pytorch卷积层手动初始化权值

Pytorch卷积层手动初始化权值

2023-09-06 12:27| 来源: 网络整理| 查看: 265

由于研究关系需要自己手动给卷积层初始化权值,但是好像博客上提到的相关文章比较少(大部分都只提到使用nn.init里的按照一定分布初始化方法),自己参考了下Pytorch的官方文档,发现有两种方法吧。所以mark下。

import torch import torch.nn as nn import torch.optim as optim import numpy as np # 第一一个卷积层,我们可以看到它的权值是随机初始化的 w=torch.nn.Conv2d(2,2,3,padding=1) print(w.weight) # 第一种方法 print("1.使用另一个Conv层的权值") q=torch.nn.Conv2d(2,2,3,padding=1) # 假设q代表一个训练好的卷积层 print(q.weight) # 可以看到q的权重和w是不同的 w.weight=q.weight # 把一个Conv层的权重赋值给另一个Conv层 print(w.weight) # 第二种方法 print("2.使用来自Tensor的权值") ones=torch.Tensor(np.ones([2,2,3,3])) # 先创建一个自定义权值的Tensor,这里为了方便将所有权值设为1 w.weight=torch.nn.Parameter(ones) # 把Tensor的值作为权值赋值给Conv层,这里需要先转为torch.nn.Parameter类型,否则将报错 print(w.weight)

效果预览 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3