我的编程空间,编程开发者的网络收藏夹
学习永远不晚

F.conv2d pytorch卷积计算方式是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

F.conv2d pytorch卷积计算方式是什么

这篇文章主要讲解了“F.conv2d pytorch卷积计算方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“F.conv2d pytorch卷积计算方式是什么”吧!

    F.conv2d pytorch卷积计算

    Pytorch里一般小写的都是函数式的接口,相应的大写的是类式接口。

    函数式的更加low-level一些,如果不需要做特别复杂的配置只需要用类式接口就够了。

    可以这样理解

    nn.Conved是2D卷积层,而F.conv2d是2D卷积操作。

    import torchfrom torch.nn import functional as F """手动定义卷积核(weight)和偏置"""w = torch.rand(16, 3, 5, 5)  # 16种3通道的5乘5卷积核b = torch.rand(16)  # 和卷积核种类数保持一致(不同通道共用一个bias) """定义输入样本"""x = torch.randn(1, 3, 28, 28)  # 1张3通道的28乘28的图像 """2D卷积得到输出"""out = F.conv2d(x, w, b, stride=1, padding=1)  # 步长为1,外加1圈padding,即上下左右各补了1圈的0,print(out.shape) out = F.conv2d(x, w, b, stride=2, padding=2)  # 步长为2,外加2圈paddingprint(out.shape)out = F.conv2d(x, w)  # 步长为1,默认不padding, 不够的舍弃,所以对于28*28的图片来说,算完之后变成了24*24print(out.shape)

    在DSSINet发现又用到了空洞卷积dilated convolution

    mu1 = F.conv2d(img1, window , padding=padd, dilation=dilation, groups=channel)

    Dilated/Atrous convolution或者是convolution with holes从字面上就很好理解,是在标准的convolution map里注入空洞,以此来增加感受野reception field。

    相比原来的正常卷积,空洞卷积多了一个超参数dilation rate,指的是kernel的间隔数量(正常的卷积是dilation rate=1)

    正常图像的卷积为

    F.conv2d pytorch卷积计算方式是什么

    空洞卷积为

    F.conv2d pytorch卷积计算方式是什么

    现在我们再来看下卷积本身,并了解他背后的设计直觉,以下主要探讨空洞卷积在语义分割(semantic segmentation)的应用。

    卷积的主要问题

    up-sampling/pooling layer(e.g. bilinear interpolation) is deterministic(not learnable)

    内部数据结构丢失,空间层级化信息丢失。

    小物体信息无法重建(假设有4个pooling layer,则任何小于2^4=16 pixel的物体信息将理论上无法重建)

    在这样问题的存在下,语义分割问题一直处于瓶颈期无法再明显提高精度,而dilated convolution 的设计就良好的避免了这些问题。

    对于dilated convolution,我们已经可以发现他的优点,即内部数据结构的保留和避免使用down_sampling这样的特性。但是完全基于dilated convolution的结构如何设计则是一个新的问题。

    pytorch中空洞卷积分为两类,一类是正常图像的卷积,另一类是池化时候。

    空洞卷积的目的是为了在扩大感受野的同时,不降低图片分辨率和不引入额外参数及计算量(一般在CNN中扩大感受野都需要使用S》1的conv或者pooling,导致分辨率降低,不利于segmentation,如果使用大卷积核,确实可以达到增大感受野,但是会引入额外的参数及计算量)。

    F.Conv2d和nn.Conv2d

    import torchimport torch.nn.functional as F# 小括号里面有几个[]就代表是几维数据input = torch.tensor([[1,2,0,3,1],                      [0,1,2,3,1],                      [1,2,1,0,0],                      [5,2,3,1,1],                      [2,1,0,1,1]])kernel = torch.tensor([[1,2,1],                       [0,1,0],                       [2,1,0]])input = torch.reshape(input,(1,1,5,5))kernel = torch.reshape(kernel,(1,1,3,3))# stride代表的是步长的意思,即每次卷积核向左或者向下移动多少步进行相乘#  因为conv2d的input和weight对应的tensor是[batch,channel,h,w],所以上述才将它们进行reshapeoutput = F.conv2d(input,kernel,stride=1)print(output)output = F.conv2d(input,kernel,stride=2)print(output)# padding代表的是向上下左右填充的行列数,里面数字填写0output3 = F.conv2d(input,kernel,stride=1,padding=1)print(output3)
    import torchimport torchvisionfrom torch.utils.data import DataLoaderfrom torch import nnfrom torch.nn import Conv2dfrom torch.utils.tensorboard import SummaryWriterdataset = torchvision.datasets.CIFAR10('./torchvision_dataset', train=False, download=False,                                       transform=torchvision.transforms.ToTensor())# 准备好数据集就放在dataloader中进行加载dataloader = DataLoader(dataset, batch_size=64)# 开始定义一个卷积类class Zkl(nn.Module):    def __init__(self):        super(Zkl, self).__init__()        self.conv1 = Conv2d(in_channels=3, out_channels=6, kernel_size=3, stride=1, padding=0)    def forward(self,x):        x = self.conv1(x)        return xwriter = SummaryWriter("nn_conv2d")zkl = Zkl()# print(zkl)step = 0for data in dataloader:    imgs,target = data    output = zkl(imgs)    #print(imgs.shape)    #print(output.shape)    writer.add_images('nn_conv2d_input',imgs,step)    #因为输出是6个通道,tensorboard无法解析,所以需要reshape三个通道    output = torch.reshape(output,(-1,3,30,30))    writer.add_images('nn_conv2d_output',output,step)    step+=1writer.close()

    感谢各位的阅读,以上就是“F.conv2d pytorch卷积计算方式是什么”的内容了,经过本文的学习后,相信大家对F.conv2d pytorch卷积计算方式是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    F.conv2d pytorch卷积计算方式是什么

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    F.conv2d pytorch卷积计算方式是什么

    这篇文章主要讲解了“F.conv2d pytorch卷积计算方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“F.conv2d pytorch卷积计算方式是什么”吧!F.conv2d
    2023-07-05

    F.conv2d pytorch卷积计算方式

    这篇文章主要介绍了F.conv2d pytorch卷积计算方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-21

    matlab积分计算的方法是什么

    在MATLAB中,可以使用多种方法计算积分,其中包括:1. 符号积分:MATLAB可以进行符号计算,使用符号计算工具箱可以进行符号积分。通过声明符号变量和使用符号积分函数,可以直接计算符号表达式的积分。2. 数值积分:数值积分是一种数值方法
    2023-09-14

    pytorch tensor计算三通道均值方式是什么

    这篇文章主要介绍“pytorch tensor计算三通道均值方式是什么”,在日常操作中,相信很多人在pytorch tensor计算三通道均值方式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”pytor
    2023-07-02

    Pytorch卷积神经网络迁移的目标及好处是什么

    本文小编为大家详细介绍“Pytorch卷积神经网络迁移的目标及好处是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Pytorch卷积神经网络迁移的目标及好处是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧
    2023-06-30

    PyTorch动态计算图的概念是什么

    PyTorch动态计算图是指在PyTorch中,计算图是动态构建的,即在每次前向传播过程中都会重新构建计算图。这意味着用户可以在运行时动态地定义、修改和调整计算图,而不需要预先定义静态计算图。这种动态计算图的特性使得PyTorch在实现一些
    PyTorch动态计算图的概念是什么
    2024-03-05

    TensorFlow卷积神经网络MNIST数据集实现方法是什么

    本篇内容主要讲解“TensorFlow卷积神经网络MNIST数据集实现方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“TensorFlow卷积神经网络MNIST数据集实现方法是什么”吧!
    2023-06-25

    什么是分布式计算?

    分布式计算将大型计算任务分解为较小任务,并在多个计算机上同时执行,实现并行处理、可扩展性和容错性。它广泛应用于科学计算、金融建模、机器学习、数据分析和渲染等领域。虽然分布式计算面临通信开销、数据一致性和负载平衡等挑战,但云计算和边缘计算技术的兴起有望为其未来发展提供更广阔的资源和灵活性。
    什么是分布式计算?
    2024-04-02

    PyTorch的模型部署方式是什么

    PyTorch模型的部署方式通常有以下几种:部署到本地计算机:可以在本地计算机上使用PyTorch的预训练模型或自己训练的模型进行推理或应用。部署到服务器:将PyTorch模型部署到服务器上,可以通过REST API或其他方式提供服务给客户
    PyTorch的模型部署方式是什么
    2024-03-14

    php中几次方的计算公式是什么

    PHP中几次方的计算公式是“$x=pow(底数,指数);”,变量x的值就是次方计算的结果。pow()函数能够计算并返回指定数的指定次方结果,第一个参数规定指数表达式的底,第二个参数规定指数表达式的次方数,如果无法计算,返回的结果是NAN。
    2017-11-24

    CIDR计算方法是什么

    CIDR(Classless Inter-Domain Routing)是一种用于将IP地址划分为不同的子网的方法,它不依赖于传统的IP地址类别划分(A、B、C类)。CIDR计算方法主要涉及以下几个步骤:确定原始IP地址和子网掩码:获取一
    2023-10-23

    返回最大值的index pytorch方式是什么

    这篇文章主要讲解了“返回最大值的index pytorch方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“返回最大值的index pytorch方式是什么”吧!返回最大值的index
    2023-07-02

    分布式计算Hadoop指的是什么

    这篇文章给大家介绍分布式计算Hadoop指的是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Hadoop是什么:Hadoop是一个开发和运行处理大规模数据的软件平台,是Appach的一个用java语言实现开源软件框
    2023-06-16

    云服务器ecs实例类型计算方式是什么

    云服务器ECS实例类型是按照CSP的方式计算的,即按照CPU、内存、存储资源的使用情况进行分配。这种分配方式通常用于存储大容量内容的网站,如社交网络、视频流媒体等,需要对服务器性能进行充分的考虑。以下是云服务器ECS实例类型计算方式的简单说明:CPU使用情况:计算该实例的内存使用量。可以使用内存计算器或者内存分析器来分析实例的内存使用情况。内存使用情况:计算该实例的I/O请求量,即每秒钟向服务器发送多少次...
    2023-10-27

    计算机中旋转图片的快捷方式是什么

    小编给大家分享一下计算机中旋转图片的快捷方式是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!旋转图片的快捷方式是:1、从左向右顺时针旋转的快捷键是“Ctrl+
    2023-06-20

    计算机的体积、存储容量、输入输出能力是什么

    本篇内容主要讲解“计算机的体积、存储容量、输入输出能力是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“计算机的体积、存储容量、输入输出能力是什么”吧!计算机的体积、存储容量、输入输出能力属于
    2023-06-26

    大数据文本并行计算实现方式是什么

    本篇文章为大家展示了大数据文本并行计算实现方式是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。对于大数据文件的处理,可以充分利用现代计算机的多核CPU,实施多线程并行计算,从而达到提速的目的。然
    2023-06-03

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录