pytorch常用函数总结(二)
卷积层nn.Conv2d()
torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros')
nn.Conv2d()是PyTorch中的卷积模块,参数如下:
in_channels:输入数据体的深度。
out_channels:输出数据体的深度。
kernel_size:滤波器(卷积核)的大小。表示相同高宽的滤波器 kernel_size=3;表示不同高宽的滤波器 kernel_size=(3, 2)。
stride:步长,默认为1。
padding:是否对周围进行零填充。默认为0,表示不填充。如果设置padding=1,则表示对四周进行1个像素点的零填充(padding_mode=‘zeros’)。
dilation:卷积对于输入数据体的空间间隔,默认为1。
groups:表示输出数据体深度上和输入数据体深度上的联系,默认为1,也就是所有的输出和输入都是相关联的;如果groups=2,则表示输入的深度被分割成22份,输出的深度也被分割成2份,他们之间分别对应起来。所以要求输出和输入都必须要能被groups整除。
bias:默认为True,表示使用偏置。
池化层
torch.nn.MaxPool2d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False)
kernel_size、stride、padding、dilation的参数含义和卷积层的一样。
其他参数(一般情况下下面这两个参数都不会设置):
return_indices:表示是否返回最大值所处的下标。默认为False。
ceil_mode:表示使用一些方格代替层结构,默认为False。
PyTorch也提供了其他的池化层,在官方文档里面可以找到。
扁平化操作(view函数)
view()函数的功能是把原先tensor中的数据按照行优先的顺序排成一个一维的数据(这里应该是因为要求地址是连续存储的),然后按照参数组合成其他维度的tensor。
推荐阅读:(18条消息) Pytorch-view函数_哗啦呼啦嘿的博客-CSDN博客_view函数pytorch
我的总结:相当于numpy中resize()的功能。如果某一个参数为-1,则会自动计算。与permute函数比较。
squeeze函数,permute函数
x = x.squeeze() # 去掉 (batch, 1, 28, 28) 中的 1,变成 (batch, 28, 28) x = x.permute(2, 0, 1) # 将最后一维放到第一维,变成 (28, batch, 28)
squeeze函数用来去掉维数为1的部分;permute函数用于便于维度的位置。例如x = x.permute(2, 0, 1)将第三维放到第一维,第一维放到第二维,第二维放到第三维。
————————————————
版权声明:本文为CSDN博主「喵木木」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Jenny_oxaza/article/details/105677146