神经网络核心组件
神经网络核心组件
构建神经网络的主要工具
nn.Module
①继承自Module类,可自动提取可学习的参数。
②适用于卷积层、全连接层、dropout层。
➢nn.functional
①更像是纯函数。
②适用于激活函数、池化层。
构建神经网络的主要工具-nn.module
构建神经网络的主要工具-nn.functional
nn.Module,写法一般为nn.Xxx,如nn.Linear、nn.Conv2d、nn.CrossEntropyLoss等。
➢nn.functional中的函数,写法一般为nn.funtional.xxx,如nn.funtional.linear、nn.funtional.conv2d、nn.funtional.cross_entropy等。
构建神经网络的主要工具-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方式
构建模型
继承nn.Module基类构建模型。
➢使用nn.Sequential按层顺序构建模型。
➢继承nn.Module基类构建模型,又使用相关模型容器
继承nn.module积类构建模型
继承nn.module积类并应用模型容器构建模型
1.使用nn.Sequential模型容器
运行结果
2.使用nn.module list模型容器
运行结果
3.使用nn.moduledict模型容器
运行结果
自定义网络模块
训练模型
1.加载预处理数据集
2.定义损失函数
3.定义优化方法
4.循环训练模型
5.循环测试或验证模型
6.可视化结果