Pytorch - nn
各个层实际使用
- 卷积层 ———— 标量
- 卷积层 ———— 2维图像
- 最大池化层 ———— 即其卷积中的最大值
- 非线性激活层 ———— 做非线性变化
- 线性层
- 损失函数 ———— 求和,求平均 | 均方差 | 交叉熵
- 序列容器 ———— 构建CIFAR-10 模型
- 损失函数 ———— CIFAR-10 模型
- 优化器 ———— 通过梯度下降,每次的Loss都是递减的
- 参考网站
概念
在 PyTorch 中,torch.nn 是一个重要的模块,它包含了构建神经网络所需的各种组件。这些组件包括但不限于层(Layers)、激活函数(Activation Functions)、损失函数(Loss Functions)等。以下是一些常用的 nn 模块下的内容:
Module:
nn.Module是 PyTorch 中所有神经网络模块的基类。通过继承nn.Module并实现forward方法,可以定义自己的网络结构。Layers(层):
- 基础层如全连接层(
nn.Linear)、卷积层(nn.Conv2d,nn.Conv3d)、循环层(nn.LSTM,nn.GRU)等。 - 正则化层例如 Dropout (
nn.Dropout) 用于防止过拟合。 - 归一化层如 Batch Normalization (
nn.BatchNorm2d)、Layer Normalization (nn.LayerNorm) 等。
- 基础层如全连接层(
Activation Functions(激活函数):
- 用于在网络中引入非线性因素,帮助模型学习更复杂的模式。包括 ReLU (
nn.ReLU)、Sigmoid (nn.Sigmoid)、Tanh (nn.Tanh) 等,它们被应用于层之间以引入非线性因素。
- 用于在网络中引入非线性因素,帮助模型学习更复杂的模式。包括 ReLU (
Loss Function(损失函数):
- 用来评估模型预测值与真实值之间的误差大小。常用的损失函数有均方误差损失(
nn.MSELoss)、交叉熵损失(nn.CrossEntropyLoss)等。
- 用来评估模型预测值与真实值之间的误差大小。常用的损失函数有均方误差损失(
Optimizer(优化器):
- 虽然优化器不属于
nn模块,但它们是训练过程中的重要部分。PyTorch 提供了多种优化算法的实现,例如 SGD (torch.optim.SGD)、Adam (torch.optim.Adam) 等。
- 虽然优化器不属于
Containers(容器):
nn.Sequential: 一个顺序容器,按照顺序将不同的层串联起来,简化网络定义过程。nn.ModuleList和nn.ModuleDict: 分别用于存储子模块列表和字典,提供更灵活的网络结构定义方式。
