文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

【PyTorch】nn.Conv2d函数详解

2023-09-01 16:12

关注

文章目录

CONV2D官方链接

torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros', device=None, dtype=None)

在这段函数中,输入为 ( N , C i n , H , W ) (N,C_{in},H,W) (N,Cin,H,W),输出为 ( N , C o u t , H o u t , W o u t ) (N,C_{out},H_{out},W_{out}) (N,Cout,Hout,Wout),它们的关系为:
out⁡ ( N i , C out  j ) =bias⁡ ( C out  j ) + ∑ k = 0 C i n − 1 weight⁡ ( C out  j , k ) ⋆input⁡ ( N i , k ) \operatorname{out}\left(N_i, C_{\text {out }_j}\right)=\operatorname{bias}\left(C_{\text {out }_j}\right)+\sum_{k=0}^{C_{\mathrm{in}}-1} \operatorname{weight}\left(C_{\text {out }_j}, k\right) \star \operatorname{input}\left(N_i, k\right) out(Ni,Cout j)=bias(Cout j)+k=0Cin1weight(Cout j,k)input(Ni,k)
其中 N 为 batch size,C 为输入通道数,H 为图像高,W 为图像宽。

输入可以为: ( N , C i n , H i n , W i n ) (N,C_{in},H_{in},W_{in}) (N,Cin,Hin,Win) ( C i n , H i n , W i n ) (C_{in},H_{in},W_{in}) (Cin,Hin,Win)
输出可以为: ( N , C o u t , H o u t , W o u t ) (N,C_{out},H_{out},W_{out}) (N,Cout,Hout,Wout) ( C o u t , H o u t , W o u t ) (C_{out},H_{out},W_{out}) (Cout,Hout,Wout)

它们之间的关系为:
H o u t = ⌊ H i n + 2 × p a d d i n g [ 0 ] − d i l a t i o n [ 0 ] × ( k e r n e l _ s i z e [ 0 ] − 1 ) − 1 s t r i d e [ 0 ] + 1 ⌋ H_{out}=\left\lfloor\frac{H_{in}+2 \times padding[0]-dilation[0] \times(kernel\_size[0]-1)-1}{ stride [0]}+1\right\rfloor Hout=stride[0]Hin+2×padding[0]dilation[0]×(kernel_size[0]1)1+1

W o u t = ⌊ W i n + 2 × p a d d i n g [ 1 ] − d i l a t i o n [ 1 ] × ( k e r n e l _ s i z e [ 1 ] − 1 ) − 1 s t r i d e [ 1 ] + 1 ⌋ W_{out}=\left\lfloor\frac{W_{in}+2 \times padding[1]-dilation[1] \times(kernel\_size[1]-1)-1}{ stride [1]}+1\right\rfloor Wout=stride[1]Win+2×padding[1]dilation[1]×(kernel_size[1]1)1+1

# With square kernels and equal stridem = nn.Conv2d(16, 33, 3, stride=2)# non-square kernels and unequal stride and with paddingm = nn.Conv2d(16, 33, (3, 5), stride=(2, 1), padding=(4, 2))# non-square kernels and unequal stride and with padding and dilationm = nn.Conv2d(16, 33, (3, 5), stride=(2, 1), padding=(4, 2), dilation=(3, 1))input = torch.randn(20, 16, 50, 100)output = m(input)

官网链接

区别

torch.nn.Conv2dtorch.nn.functional.conv2d,在 pytorch 构建模型中,都可以作为二维卷积的引入,但前者为类模块,后者为函数,在使用上存在不同。

使用

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

来源地址:https://blog.csdn.net/See_Star/article/details/127560160

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯