【pytorch】Conv2d()里面的参数bias什么时候加,什么时候不加?

代码中会发现有m = nn.Conv2d(16, 33, 3, stride=2,bias=False) ,bias是False,而默认的是True。
因为一般为False的时候,nn.Conv2d()后面通常接nn.BatchNorm2d()。
是因为BN里面有一个关键操作,
在这里插入图片描述

其中x1 = x0 * w0 + b0,而E[x1] = E[x0*w0] + b0, 所以对于分子而言,加没加偏置,没有影响;而对于下面分母而言,因为Var是方差操作,所以也没有影响(为什么没影响,回头问问你的数学老师就知道了)。所以,卷积之后,如果要接BN操作,最好是不设置偏置,因为不起作用,而且占显卡内存。

  • 9
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
PyTorch中,`nn.Conv2d`是用于定义卷积层的类。它有以下参数: * `in_channels`:输入通道的数量。 * `out_channels`:输出通道的数量。 * `kernel_size`:卷积核的大小。可以是一个整数,表示使用一个正方形卷积核,也可以是一个元组,表示使用一个矩形卷积核。 * `stride`:卷积核的步幅大小。可以是一个整数,表示使用相同的步幅大小,也可以是一个元组,表示使用不同的步幅大小。 * `padding`:输入边界周围要填充的零的数量。 * `dilation`:卷积核中元素之间的间隔。 * `groups`:输入和输出的通道被分为的组数。默认值为1,表示没有分组。 * `bias`:是否要添偏置项。默认值为True。 例如,以下代码定义了一个卷积层,它有3个输入通道,64个输出通道,使用3x3的卷积核,步幅为1,没有填充,没有分组和偏置项: ``` import torch.nn as nn conv = nn.Conv2d(in_channels=3, out_channels=64, kernel_size=3, stride=1, padding=0, groups=1, bias=True) ``` 你也可以使用元组来定义不同的参数,例如: ``` conv = nn.Conv2d(3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), dilation=(1, 1), groups=1, bias=True) ``` 这将创建一个具有相同设置的卷积层,但使用了元组来表示`kernel_size`,`stride`和`padding`参数。这些参数中的第一个元素表示行方向上的大小,第二个元素表示列方向上的大小。此外,`dilation`参数也可以使用元组来表示不同的行和列间隔大小。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZGPing@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值