这里随机记录一些torch的常用知识点,比较随意,主要记录的是自己读书过程中发现的一些有意思的知识点。
1.@和*
@是矩阵乘法,*是逐元素相乘。
说到这里,说一下矩阵乘法,矩阵乘法和点乘是一回事,只不过点乘更常用的是数组之间的乘法。逐元素相乘我们叫element-wise。
2.pytorch模型持久化
pytorch的持久化比较简单,所有Moudle都有state_dict()的方法,和save结合保存即可,下次调用直接load_state_dict()即可,但要和load结合使用。
3.Conv2d的偏置
如果后边接BN,一般不接bias,即bias设置为False,因为计算时没用,设置也没用,还占内存,后边要是不接BN,你还是加上偏置吧。
4.BatchNorm1d和BatchNorm2d
首先说一下batchnorm是干啥的,批次标准化对批次输入的数据进行归一化处理,主要是防止过拟合的。
这其实是一系列的问题,就是1d,2d都什么时候用。首先说这个1d是对二维或者三维数据进行归一化处理,2d是对4维数据进行归一化处理,四维数据是这样的(batchsize,channelsize,length,width)。
5.Conv2d
nn.Conv2d(self, in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True))
in_channels/out_channels,输入/输出通道数,注意是输入和输出通道数。
kernelsize,如果是3就是3×3维度
padding填充
其他不常用
网友评论