pytorch常用api,数据集加载,手写数字识别的模型的训练和保存,损失函数

api

  1. nn.Module 构造模型
    1. init: 自定义的方法实现的位置,调用super方法,继承父类的属性和方法
    2. forward: 完成一次向前计算的过程,

//实例化模型
model = Lr()
// 传入数据,计算结果
predict = model(x)

  1. optimizer优化器类
    1. torch.optim.SGD/Aadm
      2)流程:
      b梯度置为0, optimizer zero. grad)
      c反向传播,计算梯度: los.ackward()
      d)optimizer.step() ,更新参数

2.损失函数
损失函数对象torch.nn提供
在这里插入图片描述
在这里插入图片描述

b.训练的过程:

1.实例化模型
2. 实例比损失函数
3.实例化优化器类
4.进入循环:
1)梯度置为0
2)调用模型得到预测值
3)调用loss函数, 得到损失
4) loss .backward()进行梯度计算
5)optimizer.step0

注意点

1 model.eval()#把模型置为评估模型
1) model.training = False
2.GPU上运行代码,在GPU上计算结果也为cuda的数据类型,需要转化为numpy或者torch的cpu的tensor类型
1)自定义的tensor.to(device)
2)model.to(device)
在这里插入图片描述
在这里插入图片描述

优化算法:

1.梯度下降:把所有的数据传入模型,计算平均梯度,更新参数,缺点:慢
2.随机梯度下降:选一条数据进行参数的更新。缺点:容易受到噪声数据的影响
3.小批梯度下降:每次选择一波数据进行参数的更新。
缺点:梯度的变化幅度可能会很大,在最小值附件徘徊
4.动量法:把历史的梯度考虑进去。更新参数时候使用梯度=历史梯度的指数加权平均
5.adagrad:更新参数的时候,使用自适应的学习率,等于学习率/历史梯度的平方
6.rmsprop:使用自适应的学习率,=学习率/历史梯度的平方的指数加权平均
7.adam:动量法和RMSprop的结合版本,既考虑梯度(使用梯度的指数加权平均),又考
虑学习率(让学习率除以历史梯度的平方的指数加权平均)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值