当前位置: 首页 > news >正文

pytorch学习笔记一:作用、安装和基本使用方法、自动求导机制、自制线性回归模型、常见tensor格式、hub模块介绍

文章目录

    • 一、安装
    • 二、基本使用方法
      • ①创建一个矩阵
      • ②获得随机值
      • ③初始化全零矩阵
      • ④直接传入数据
      • ⑤构建矩阵,然后随机元素值
      • ⑥展示矩阵大小
      • ⑦矩阵计算
      • 8、取索引
      • 9、view操作:改变矩阵维度
      • 10、与numpy的协同操作
    • 三、自动求导机制
      • 1)定义tensor成可求导的
      • 2)演示框架进行反向传播流程
      • 3)反向传播计算(由z对其他求导)
    • 四、做一个线性回归模型
      • ①输入数据并转成矩阵格式(注意这里的格式不是tensor而是np.array)
      • ②输入y,这里y=2x+1
      • ③导入torch
      • ④线性回归模型代码
      • ⑤执行好参数和损失函数
      • ⑥开始训练模型
      • ⑦测试模型预测结果
      • ⑧模型的保存于读取
      • ⑨用gpu进行训练
    • 五、常见tensor格式
      • 1)scalar介绍
      • 2)vector:特征,比如身高、体重、年龄,形成一种人的特征(多个值)
      • 3)Matrix:矩阵,一般都是多维
      • 4)n-dimensional tensor
    • 六、Hub模块介绍
      • 1)通用github介绍使用地址

pytorch作用:能在GPU中做矩阵运算

一、安装

①cpu和gpu版本的pytorch安装
在这里插入图片描述

  • 输入查看pytorch版本
import torch
torch.__version__
  • 输出
'1.3.0+cpu'

②安装cuda tookit(记得cuda版本和pytorch对应上)
在这里插入图片描述

二、基本使用方法

①创建一个矩阵

x = torch.empty(5,3)
x

在这里插入图片描述

②获得随机值

x = torch.rand(5,3) #5行3列矩阵
x

在这里插入图片描述

③初始化全零矩阵

x = torch.zeros(5,3,dtype=torch.long)
x

在这里插入图片描述

④直接传入数据

x = torch.tensor{[5.5,3]}
x

在这里插入图片描述

⑤构建矩阵,然后随机元素值

在这里插入图片描述

⑥展示矩阵大小

x.size()

在这里插入图片描述

⑦矩阵计算

y = torch.rand(5,3)
x + y 或 torch.add(x,y)

在这里插入图片描述

8、取索引

x[:,1]

在这里插入图片描述
这里x是这个
在这里插入图片描述

9、view操作:改变矩阵维度

x = torch.randn(4,4)
y = x.view(16)
z = x.view(-1,8)  #-1表示自动取计算

在这里插入图片描述

10、与numpy的协同操作

  • tensor转换成numpy的支持格式
a = torch.ones(5)
b = a.numpy()
b

在这里插入图片描述

  • numpy转tensor的操作
import numpy as np
a = np.ones(5)
b = torch.from_numpy(a)
b

在这里插入图片描述

三、自动求导机制

1)定义tensor成可求导的

x = torch.randn(3,4,requires_grad=True)
x
或
x = torch.randn(3,4)
x.requires_grad=True
x

在这里插入图片描述

2)演示框架进行反向传播流程

①先相加计算,并调用sum接口
在这里插入图片描述

②开始反向传播

y.backward()
b.grad

在这里插入图片描述
可以看到对b求导就得1
③看requires_grad是true还是false(前面backward用到来求导就为true)
在这里插入图片描述
在这里插入图片描述
计算流程
在这里插入图片描述
查看叶子
在这里插入图片描述

3)反向传播计算(由z对其他求导)

注意:
不清零梯度默认累加,可以看到对z对b求导可以一直累加1
在这里插入图片描述

四、做一个线性回归模型

①输入数据并转成矩阵格式(注意这里的格式不是tensor而是np.array)

在这里插入图片描述

②输入y,这里y=2x+1

在这里插入图片描述

③导入torch

import torch
import torch.nn as nn

④线性回归模型代码

写出类和构造函数,这里继承nn.module模块类
在这里插入图片描述

构建输入和输出参数
在这里插入图片描述

⑤执行好参数和损失函数

1、按照1000次一个batch来训练
2、指定学习率.0.01
3、指定优化器SGD
4、指定优化器优化参数,也就是model.parameters()
5、指定损失函数MSELoss(计算真实值和预测值之间的误差)

⑥开始训练模型

1、把numpy格式转为tensor格式
2、梯度要清零每次迭代
3、前向转播
4、计算损失
5、反向传播(把梯度求出来但是没进行权重参数更新)
6、更新权重参数(每隔50次打印下损失值)
在这里插入图片描述
在这里插入图片描述

⑦测试模型预测结果

得出结果再转为numpy
在这里插入图片描述

⑧模型的保存于读取

torch.save(model.state_dict(), 'xxx')
model.load_state_dict(torch.laod('model.pkl'))

在这里插入图片描述

⑨用gpu进行训练

这里圈出来的是,如果cuda版本合适用GPU跑,不然用cpu跑
在这里插入图片描述
传到gpu设备训练
在这里插入图片描述

五、常见tensor格式

1)scalar:一个数值
2)vector:向量
3)matrix:矩阵
4)n-dimensional tensor 高纬度数据

1)scalar介绍

在这里插入图片描述

2)vector:特征,比如身高、体重、年龄,形成一种人的特征(多个值)

词向量:用多维的向量数值表达一个词的意思
在这里插入图片描述

3)Matrix:矩阵,一般都是多维

在这里插入图片描述

4)n-dimensional tensor

在这里插入图片描述

六、Hub模块介绍

  • 介绍
    调用别人训练好的模型
  • 举例
    ①比如说选择对象识别的模型
    在这里插入图片描述
    ②点开实验环境
    在这里插入图片描述

③会有怎么使用的介绍
在这里插入图片描述

1)通用github介绍使用地址

在这里插入图片描述

在这里插入图片描述

有很多模型使用说明

在这里插入图片描述


http://www.mrgr.cn/news/30619.html

相关文章:

  • 【go从零单排】实现枚举类型(Enum)
  • C语言入门案例练习1——冒泡法排序
  • OpenCV C++ 计算两幅图像之间的多尺度结构相似性(MSSIM)
  • 2024最新AI绘画系统软件(Midjourney)+GPT4文档分析总结,多模态识图理解,AI文生图/图生图/混图生图(图像混合)
  • 【SpringMVC】记录一次Bug——mvc:resources设置静态资源不过滤导致WEB-INF下的资源无法访问
  • Spring 中的 BeanWrapper
  • Python中,你可以使用`scipy.stats`库中的`entropy`函数来计算两个连续变量之间的KL散度
  • 打不开Qtcreator(This application fail to start...........)
  • 速盾:高防cdn效果怎么看出来?
  • 24岁大专—程序员历险记;
  • FlexNet Licensing: not running 问题
  • C++ Primer Plus笔记: 2024.09.20
  • Linux 信号的产生
  • CS61C 2020计算机组成原理Lab03
  • Linux 进程2
  • kubernetes存储之GlusterFS(GlusterFS for Kubernetes Storage)
  • 代码随想录算法训练营第51天 | 岛屿数量、岛屿的最大面积
  • index嵌入vue.js, 包括了vue.js的下载地址
  • iotop 命令:磁盘IO监控和诊断
  • 前缀和与差分(一维)
  • Springboot请求响应案例
  • Deutsch intensiv C1 Schreiben
  • Maven 和 gradle JavaFX 项目的休眠行为差异
  • 2024java面试-软实力篇
  • VMware Workstation Pro 17下载及安装教程
  • 828华为云征文|华为Flexus云服务器打造 mediacms 线上影院