当前位置:网站首页>pytorch框架学习(1)网络的简单构建
pytorch框架学习(1)网络的简单构建
2022-08-10 05:29:00 【Time.Xu】
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)交互

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

注意:如果梯度不清零,梯度会进行累加的!!!
所以,我们在进行梯度计算的时候,基本流程是:
**清零->梯度计算->反向传播->清零**
例子
创建两个数组x和y:![x_values = [i for i in range]](/img/81/00dc00a2230fde221de394a61470b7.png)

建立一个模型:

制定超参数&损失函数
训练模型:
| 目标 | 注解 | 代码 |
|---|---|---|
| 数据格式转换 | 把输入的数据格式转化为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地跑),先不管,以后再学
现在我们对模型进行测试
测试就是把数据放进训练好的网络,得到的数据肯定还是要转化一下类型的~
模型的保存
边栏推荐
- 基于Servlet的验证码登陆demo
- aliases node analysis
- FPGA工程师面试试题集锦11~20
- 实战小技巧19:List转Map List的几种姿势
- Transforming into a product, is it reliable to take the NPDP test?
- The time for flinkcdc to read pgsql is enlarged. Does anyone know what happened? gmt_create':1
- 如何用Apifox 的智能Mock功能?
- What are the common commands of mysql
- flex 相关
- MySQL使用简单教程
猜你喜欢

基于Qiskit——《量子计算编程实战》读书笔记(六)

Pony语言学习(九)——泛型与模式匹配(终章)

8.STM32F407之HAL库——PWM笔记

OAuth2的使用场景、常见误区、使用案例

Pony语言学习(七)——表达式(Expressions)语法(单篇向)

Error when installing oracle rac 11g and executing root.sh

Advanced Feature Selection Techniques in Linear Models - Based on R

几种绘制时间线图的方法

How cursors work in Pulsar

Stacks and Queues | Valid parentheses, delete all adjacent elements in a string, reverse Polish expression evaluation, maximum sliding window, top K high frequency elements | leecode brush questions
随机推荐
FPGA工程师面试试题集锦41~50
基于Servlet的验证码登陆demo
通过一个案例轻松入门OAuth协议
从GET切换为POST提交数据的方法
SQL Server查询优化
应用在智能触摸遥控器中的触摸芯片
SQL database field to append to main table
如何用Apifox 的智能Mock功能?
看了几十篇轻量化目标检测论文扫盲做的摘抄笔记
`id` bigint(20) unsigned NOT NULL COMMENT 'Database primary key',
Conda creates a virtual environment method and pqi uses a domestic mirror source to install a third-party library method tutorial
顺序表的删除,插入和查找操作
GtkD开发之路
OAuth2 usage scenarios, common misunderstandings, use cases
Shell编程三剑客之awk
aliases node analysis
Joomla vulnerability reproduced
AVL tree insertion--rotation notes
大咖说·对话生态|当Confluent遇见云:实时流动的数据更有价值
conda创建虚拟环境方法和pqi使用国内镜像源安装第三方库的方法教程