Pytorch神经网络工具箱

Pytorch神经网络工具箱

神经网络核心组件

层 神经网络的基本结构,将输入张量转换为输出张量。

模型

损失函数

优化器

构建神经网络的主要工具

nn.Module

①继承自Module类,可自动提取可学习的参数。

②适用于卷积层、全连接层、dropout层。

 

nn.functional

② 更像是纯函数。

②适用于激活函数、池化层。

构建神经网络的主要工具-nn.Module

构建神经网络的主要工具-nn.functional

构建神经网络的主要工具-nn.functional

两者的主要区别如下。

nn.Xxx继承于nn.Module,nn.Xxx 需要先实例化并传入参数,然后以函数调用的方式调用实例化的对象并传入输入数据。它能够很好的与nn.Sequential结合使用,而nn.functional.xxx无法与nn.Sequential结合使用。

nn.Xxx不需要自己定义和管理weight、bias参数;而nn.functional.xxx需要你自己定义weight、bias,每次调用的时候都需要手动传入weight、bias等参数, 不利于代码复用。

dropout操作在训练和测试阶段是有区别的,使用nn.Xxx方式定义dropout,在调用model.eval()之后,自动实现状态的转换,而使用nn.functional.xxx却无此功能。

构建模型

继承nn.Module基类构建模型。

使用nn.Sequential按层顺序构建模型。

继承nn.Module基类构建模型,又使用相关模型容器(nn.Sequential,nn.ModuleList,nn.ModuleDict等)进行封装。

继承nn.Module基类构建模型

继承nn.Module基类构建模型

使用nn.Sequential按层顺序构建模型

继承nn.Module基类并应用模型容器构建模型

继承nn.Module基类并应用模型容器构建模型

自定义网络模块

·残差块有两种,一种是正常的模块方式,将输入与输出相加,然后应用激活函数ReLU

自定义网络模块

另一种是为使输入与输出形状一致,需添加通过1×1卷积调整通道和分辨率。

·组合这两个模块得到现代经典RetNet18网络结构

训练模型

1.加载预处理数据集

2.定义损失函数

3.定义优化方法

4.循环训练模型

5.循环测试或验证模型

6.可视化结果

你可能感兴趣的:(人工智能,神经网络,神经网络,pytorch)