PyTorch学习笔记之torch.nn

这里主要概括性地讲解一下torch.nn中的几个函数的含义。

nn.Flatten() - 顾名思义,就是将张量的几个维度变成一维的,有点类似于matlab中的reshape函数。该函数一般后跟一个nn.Linear()即全连接层。

nn.Linear() - 用于构造一个全连接层,第三个参数bias默认为True,表示会学习一个附加的偏置。

nn.Conv2d() - 表示2维卷积,参数依次为输入通道,输出通道,卷积核尺寸,步长,填充。卷积前后会发生通道和特征尺度的改变。

nn.ReLU() - 一种激活函数,其他的激活函数还有sigmoid,tanh,softmax

nn.MaxPool2d() - 一种下采样的方法,此外还有nn.AvgPool2d,nn.AdaptiveAvgPool2d

nn.Dropout() - 用于给到全连接层之前的数据处理,目的在于防止过拟合。比如参数设置为0.5,是指该层(layer)的神经元在每次迭代训练时会随机有 50% 的可能性被丢弃(失活),不参与训练

nn.BatchNorm2d() - 进行数据的归一化处理,一般用于卷积之后,使一批(Batch)feature map满足均值为0,方差为1的分布规律。这使得数据在进行Relu之前不会因为数据过大而导致网络性能的不稳定,不仅数据分布一致,而且避免发生梯度消失。

(to be continued ...)

参考:

【PyTorch】详解pytorch中nn模块的BatchNorm2d()函数_颜丑文良777的博客-CSDN博客_nn.batchnorm2d

你可能感兴趣的:(算法及人工智能,torch.nn)