pytorch 如何自定义卷积核权值参数

作者:Mr.Jcak

这篇文章主要介绍了pytorch 自定义卷积核权值参数的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

pytorch中构建卷积层一般使用nn.Conv2d方法,有些情况下我们需要自定义卷积核的权值weight,而nn.Conv2d中的卷积参数是不允许自定义的,此时可以使用torch.nn.functional.conv2d简称F.conv2d

torch.nn.functional.conv2d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1)

F.conv2d可以自己输入且也必须要求自己输入卷积权值weight和偏置bias。因此,构建自己想要的卷积核参数,再输入F.conv2d即可。

下面是一个用F.conv2d构建卷积层的例子

这里为了网络模型需要写成了一个类:

class CNN(nn.Module): def __init__(self): super(CNN, self).__init__() self.weight = nn.Parameter(torch.randn(16, 1, 5, 5)) # 自定义的权值 self.bias = nn.Parameter(torch.randn(16)) # 自定义的偏置 def forward(self, x): x = x.view(x.size(0), -1) out = F.conv2d(x, self.weight, self.bias, stride=1, padding=0) return out

值得注意的是,pytorch中各层需要训练的权重的数据类型设为nn.Parameter,而不是Tensor或者Variable。parameter的require_grad默认设置为true,而Varaible默认设置为False。

补充:pytorch中卷积参数的理解

kernel_size代表着卷积核,例如kernel_size=3或kernel_size=(3,7);

stride :表明卷积核在像素级图像上行走的步长,如图2,步长为1;

padding :为上下左右填充的大小,例如padding=0/1/(1,1)/(1,3),

padding=0 不填充;

padding=1/(1,1) 上下左右分别填充1个格;

padding=(1,3) 高(上下)填充2个格,宽(左右)填充6个格;

torch.nn.Conv2d(512,512,kernel_size=(3,7),stride=2,padding=1)

指定输出形状的上采样

def upsample_add(self,x,y): _,_,H,W = y.size() return F.interpolate(x, size=(H,W), mode='bilinear', align_corners=False) + y

反卷积上采样

output_shape_w=kernel_size_w+(output_w-1)(kernel_size_w-1)+2padding self.upscore2 = nn.ConvTranspose2d( 512, 1, kernel_size=3, stride=2,padding=0, bias=False)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
  • Python 时间操作time详情
    Python 时间操作time详情
    2021-11-11
  • Python全栈之for循环
    Python全栈之for循环
    2021-11-11
  • 关于python selenium 运行时弹出窗口问题
    关于python selenium 运行时弹出窗口问题
    2021-11-11
  • Python变量的作用域详解
    Python变量的作用域详解
    2021-12-12
  • Python Pyqt5多线程更新UI代码实例(防止界面卡死)
    Python Pyqt5多线程更新UI代码实例(防止界面卡死)
    2021-12-12
  • 详解Python函数中的几种参数
    详解Python函数中的几种参数
    2021-12-12
  • Python解压可迭代对象赋值给多个变量详解
    Python解压可迭代对象赋值给多个变量详解
    2021-12-12
  • Python爬虫采集微博视频数据
    Python爬虫采集微博视频数据
    2021-12-12
  • 美国设下计谋,用娘炮文化重塑日本,已影响至中国
    美国设下计谋,用娘炮文化重塑日本,已影响至中国
    2021-11-19
  • 时空伴随者是什么意思?时空伴随者介绍
    时空伴随者是什么意思?时空伴随者介绍
    2021-11-09
  • 工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    2021-11-05
  • 2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2021-10-26
  • 电脑版 - 返回首页

    2006-2023 脚本之家 JB51.Net , All Rights Reserved.
    苏ICP备14036222号