纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

pytorch卷积核权值参数 pytorch 怎样自定义卷积核权值参数

Mr.Jcak   2021-05-27 我要评论
想了解pytorch 怎样自定义卷积核权值参数的相关内容吗,Mr.Jcak在本文为您仔细讲解pytorch卷积核权值参数的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点: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)

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


相关文章

猜您喜欢

  • tensorflow权重文件 基于tensorflow权重文件的解读

    想了解基于tensorflow权重文件的解读的相关内容吗,AI剑客在本文为您仔细讲解tensorflow权重文件的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:tensorflow,权重文件,下面大家一起来学习吧。..
  • visualVM远程监控JVM 使用Java visualVM监控远程JVM的流程分析

    想了解使用Java visualVM监控远程JVM的流程分析的相关内容吗,eyesfree在本文为您仔细讲解visualVM远程监控JVM的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:visualVM远程监控JVM,visualVM监控JVM,下面大家一起来学习吧。..

网友评论

Copyright 2020 www.moon-script.com 【月光下载】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式