Pytorch神经网络

Pytorch

 神经网络核心组件

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

模型 层构成的网络。

损失函数 参数学习的目标函数,通过最小化损失函数来学习各种参数。

优化器 如何是损失函数最小,这就涉及到优化器。

先进行正常传播输入x,卷积盒的权重,多感知机的权重,进行数据变换,预测值接近真实值才是我们要求的目的,损失函数越小越好,越能达到预期值,再到下一步优化器来进行误差反传进行参数更改

构建神经网络的主要工具

nn.Module

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

②适用于卷积层、全连接层、dropout层。dropout层随机丢失神经元,防止过拟合

nn.functional

①更像是纯函数。

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

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

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.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基类构建模型

用Module来构建模型 , flatten代表拉平成一维向量,linear代表全连接层,BatchNorm1d是批量归一,防止剃度爆炸,softmax代表输出,是分类问题,先进行变量定义,再进行构建,最后给变量说明并赋值

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

 用Sequential进行封装模型,Sequential相当于一个容器,左边是定义变量,右边是对参数构建

通过add_module 方法进行命名和函数构建,括号中用双引号进行命名,用逗号隔开调用的函数

 OrderedDict方法也可以进行命名和函数构建

,括号中双引号进行命名,用逗号隔开调用的函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值