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.xdnf.cn/news/144095.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

介绍一下常用的激活函数?

常用的激活函数 Sigmoid函数Tanh函数ReLU函数Leaky ReLU函数Softmax函数 Sigmoid函数 特点: 将任意实数映射到(0,1)区间内,输出值可以作为概率来解释。 函数平滑且易于求导,但其导数在两端趋近于0,即存在梯度消失问题。 输出值不…

算法训练——day18 两数之和三数之和

1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。 你可以按任意顺序返回…

【Java版】云HIS系统源码

云HIS系统介绍 云HIS系统是一款满足基层医疗机构各类业务需要的健康云产品。该产品能帮助基层医疗机构完成日常各类业务,提供病患挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查询、医生站和护士站等一系列常规功能,还能与公卫、PACS等各类…

【有啥问啥】深入解析:机器学习中的过拟合与欠拟合

深入解析:机器学习中的过拟合与欠拟合 在机器学习中,过拟合(overfitting)和欠拟合(underfitting)是模型性能中常见的两大挑战。它们反映了模型的学习能力与泛化能力的不平衡,直接影响模型在训练…

mac m1 electron生产环境使用prisma,sqlite

最近在用electron开发一个适合自己的小应用,技术选型中使用prisma和sqlite在进行数据存储,写这篇文章的目的就是用来记录下遇到的一些问题。 开发环境使用prisma 1、开发环境使用prisma非常的简单,只需要按照教程安装prisma,然后…

修复 blender 中文输入 BUG (linux/wayland/GNOME/ibus)

blender 是一个很好的 开源 3D 建模/动画/渲染 软件, 功能很强大, 跨平台 (GNU/Linux, Windows 等系统都支持). 然而, 窝突然发现, blender 居然不支持中文输入 (linux) ! 这怎么能忍 ? 再一查, 不得了, 这居然是个 3 年前一直未解决的陈年老 BUG. 不行, 这绝对忍不了, 这个 …

【Azure Redis 缓存】Azure Redis出现了超时问题后,记录一步一步的排查出异常的客户端连接和所执行命令的步骤

问题描述 Azure Redis在使用的过程中,多次无规律的出现超时问题。抓取到客户端的异常错误后,想进一步的分析是何原因导致了如下异常呢? Timeout awaiting response (outbound0KiB, inbound0KiB, 5984ms elapsed, timeout is 5000ms), command…

杰理ac696x使用pwm点亮一个灯

timer_pwm_init(JL_TIMER0, 10000, 10000, IO_PORTA_05, 0);

幂函数的积分型函数

数学上,把形如的函数称为幂函数。幂函数的规律在博文[1]中已作说明。简单地说,前提下,当时幂函数下凸递增,时线性递增,时上凸递增,时为常值函数,时递减,与坐标系的轴和轴的正方向无限…

巨人网络参展云栖大会,两款“游戏+AI”自研大模型应用首发

9月19日,2024云栖大会在杭州开幕,巨人网络携多项“游戏AI”新成果首次参展,两款自研大模型GiantGPT、BaiLing-TTS应用首发,巨人摹境、AI数字人等AI新技术亮相,全方位展示其作为中国“游戏AI”先行者在人工智能领域的前…

代码随想录Day50|图论Part01,leetcode题目:98. 所有可达路径

提示:DDU,供自己复习使用。欢迎大家前来讨论~ 文章目录 图论理论基础Part01图的基本概念图的种类 连通性连通图强连通图连通分量强连通分量 图的构造邻接矩阵邻接表 图的遍历方式 深度优先搜索理论基础DFS 与 BFS 区别dfs 搜索过程代码框架深搜三部曲为…

Android下反调试与反反调试

版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 反调试检测 反调试检测的几种方式。 1. TrackerId 首先,通过 IDA Pro 的调试器附加到当前 app 进程 关于IDA Pro调试android app的详细教程可以…

CS61C 2020计算机组成原理Lecture 04

1. C Memory Layout 1.1 Where Do the Variables Go? 1.2 The Stack 1.2.1 Stack misuse example gpt4解释: 在C语言中,从函数返回指向本地变量的指针是不安全的,原因在于局部变量(本地变量)的生命周期。当一个函数被…

全网最适合入门的面向对象编程教程:50 Python函数方法与接口-接口和抽象基类

全网最适合入门的面向对象编程教程:50 Python 函数方法与接口-接口和抽象基类 摘要: 在 Python 中,接口和抽象基类(Abstract Base Classes, ABCs)都用于定义类的结构和强制子类实现特定的方法,Python 没有…

5.10 创建内核目录

首先是 创建内核的目录。 修改 cmake 然后是 创建 cmake , kernel 目录下的init 目录, init 目录下的start.s 文件,再init目录下 创建init.c init.h 文件。 然后是修改cmake 然后是 start.S 的编写 然后是 创建 init.c init.h 文件。 然后是 修改 img…

如何在WordPress中添加事件Schema(分步指南)

如果你正在举办一个在线活动,那么你可能正在寻找通过网络宣传的方法。此时,模式标记可以帮助你在搜索引擎结果中提高活动的可见性。 活动模式将帮助谷歌和其他搜索引擎更好地理解你的活动详情,使它们能够在活动列表、丰富摘要和谷歌知识面板…

通过markdown表格批量生成格式化的word教学单元设计表格

素材: 模板: 代码: import pandas as pd from python_docx_replace import docx_replace,docx_get_keys from docx import Document from docxcompose.composer import Composerdef parse_markdown_tables(file_path):with open(file_path,…

华为昇腾智算中心-智算中心测试方案与标准

本方案是企业内训课程《华为昇腾智算中心深度技术研修》的一部分授课课件的样例。方案内容中详细阐述了华为昇腾环境下智算中心的测试方案和标准,以确保硬件和软件系统在实际部署和运行中的高效性和稳定性。主要内容包括集群硬件清单、节点拓扑配置以及环境配置。硬…

MySQL数据库迁移与备份实录

这里写目录标题 事情起因的概述查看磁盘空间使用情况为了进一步的明确宕机原因,查看MySQL日志信息进一步排查 如何针对磁盘空间不足进行挂载区域的修改以及数据的迁移与备份分析与梳理如何修改MySQL数据卷的挂载位置停止MySQL服务备份 MySQL 配置文件迁移 MySQL 数据…

info 命令:查看命令手册

一、命令简介 在 Linux 系统中,可以使用 man​ 查看普通的帮助手册。还可以使用 info​ 命令阅读 Info 格式的文档。 ​info​ 文档的特点:大量使用超链接,通过方向键将光标移动到链接的文字,按下回车键,就可以切换到…