pytorch框架学习(1)网络的简单构建

本文介绍了PyTorch与TensorFlow在使用上的差异,指出PyTorch在调试方面更具优势。通过实例展示了PyTorch的基本操作,包括创建矩阵、查看尺寸、与NumPy交互以及利用autograd机制进行反向传播。还提供了简单的模型训练流程,并讲解了模型保存与加载的方法。文章最后强调了模型测试和梯度清零的重要性。
部署运行你感兴趣的模型镜像

PyTorch学习

基本要求&与其他框架比较:

软件:具有dubg功能的IDE(如PyCharm、Eclipse)、Jupyter、anaconda、Pytorch
PyTorch相比,Tensorflow的定义和规则比较多,并且在调试过程中不太方便。
在这里插入图片描述

框架学习方法

不拘泥于具体操作,在实际运用的过程中查找并使用

基本使用方法

创建一个矩阵
x = torch.empty(5,3); x =torch.rand(5.3);
在这里插入图片描述
可见,
pytorch框架 输出后的数据格式是tensor(张量)
TensorFlow框架 输出后的数据格式是ndarray

展示矩阵大小 torch.size()
改变矩阵维度 view(维度)
在这里插入图片描述

Numpy(ndarry)和PyTorch(tensor)交互
tensor-->ndarry
ndarry-->tensor

autograd机制

为什么要用框架呢?因为自己编程太麻烦了,尤其是做反向传播的时候
在反向传播的时候,我们需要 对矩阵进行求导 这是费事费力的,如果框架帮我们做完了,我们就可以专心于模型的搭建了

requires_grad=True
手动定义哪个参数要求导
在这里插入图片描述
注意:如果梯度不清零,梯度会进行累加的!!!
所以,我们在进行梯度计算的时候,基本流程是:

            **清零->梯度计算->反向传播->清零**
例子

创建两个数组x和y:
x_values = [i for i in range]
在这里插入图片描述

建立一个模型:

在这里插入图片描述
制定超参数&损失函数
在这里插入图片描述
训练模型:

目标注解代码
数据格式转换把输入的数据格式转化为tensor格式torch.from_numpy(x_train)
梯度清零避免梯度累加出现错误.zero_grad()
前向传播得到预测的数据
计算损失即预测损失与标签之间的差距
反向传播求梯度loss.backward()
进行参数更新自动根据学习率和梯度对参数进行更新.step()
过程显示要防止显卡爆炸loss.item
预测
模型保存模型保存完是一个字典类型(模型不仅仅是模型,torch.save(model.state_dict(),‘model.pkl’)
模型读取还有可能有模型损失、结果等等都可以放进去)model.load_state_dict(torch.load(“model.pkl”))

在这里插入图片描述
目前最简洁的版本就做完了,有很多问题没有弄(比如我们这个代码里是一个batch就都跑完了,理论上应该是一个Batch一个Batch地跑),先不管,以后再学

现在我们对模型进行测试
测试就是把数据放进训练好的网络,得到的数据肯定还是要转化一下类型的~
在这里插入图片描述
模型的保存
save就是保存,load就是读取,state_dict就是权重参数

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一位不愿透漏姓氏的许先森

你的鼓励是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值