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

news2024/9/20 6:19:55

文章目录

    • 一、安装
    • 二、基本使用方法
      • ①创建一个矩阵
      • ②获得随机值
      • ③初始化全零矩阵
      • ④直接传入数据
      • ⑤构建矩阵,然后随机元素值
      • ⑥展示矩阵大小
      • ⑦矩阵计算
      • 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.coloradmin.cn/o/2148230.html

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

相关文章

【error】The minimum required version for Powerlevel10k is 5.1

文章目录 一、背景二、原因三、解决1、安装 ZSH 最新版本2、效果3、下载了还是显示 ZSH 版本为 5.0.2 怎么办 一、背景 安装 ZSH 主题 Powerlevel10k 时报错: You are using ZSH version 5.0.2. The minimum required version for Powerlevel10k is 5.1. Type ‘ec…

ppt一键生成免费版软件有哪些?如何高效生成论文答辩?

答辩经验丰富的人都知道,制作论文答辩ppt是一项既繁琐又耗时的工作。 我们需要从数万字的论文中提炼关键点,梳理内容的逻辑关系,然后进行细致的排版和美化,最后还要进行反复的检查和试讲。整个过程不仅耗费时间,而且需…

MVP 最简可行产品

MVP(最小可行产品)是一种产品开发策略,其主要目的是用最少的时间和资源,开发一个包含最基本必要功能的产品。这样做的目的是能够以最小的成本进入市场,获取用户反馈,再根据反馈逐步优化产品。 MVP是什么 …

1网络安全的基本概念

文章目录 网络安全的基本概念可以总结为以下几个方面: 网络安全的需求: 信息安全的重要性:信息安全是计算机、通信、物理、数学等领域的交叉学科,对于社会的发展至关重要。信息安全的目标:主要包括保密性、完整性、可用…

C/S架构与B/S架构的适用场景分析

C/S架构(客户端/服务器架构)与B/S架构(浏览器/服务器架构)在适用场景上各有特点,主要取决于应用的具体需求、用户群体、系统维护成本、跨平台需求等因素。 一、C/S架构的适用场景 1、高性能与交互性要求高的应用&…

闯关leetcode——58. Length of Last Word

大纲 题目地址内容 解题代码地址 题目 地址 https://leetcode.com/problems/length-of-last-word/description/ 内容 Given a string s consisting of words and spaces, return the length of the last word in the string. A word is a maximal substring consisting of…

docker从容器提取镜像并上传至dockerhub

一、使用commit从容器中提取镜像 例如 //docker commit 容器名 想要创建的镜像名:版本号 docker commit epsilon_planner epsilon_planner:latest导出完成后镜像如图所示 二、登陆dockerhub并创建仓库 登陆dockerhub,点击Create repository创建仓库&#xff0c…

小程序体验版无法正常请求接口,开启 调试可以正常请求

在本地开发工具可以正常访问小程序,上传代码后打开体验版,界面无法请求接口,手机小程序打开调试模式可以正常访问。这可以查看下小程序后台是否设置了服务器域名以及业务域名 然后查看小程序开发工具 - 详情 - 项目配置 重新上传代码&#xf…

北斗盒子TD20——水上作业的安全防线,落水报警守护生命

在广阔的水域上,水上作业人员面临着多变的环境和潜在的风险。近年来,随着海洋经济的快速发展,海上作业活动日益频繁,人员安全问题也日益凸显。传统的海上救援手段存在诸多不足,如救援响应时间长、定位不准确等。 水上…

SpringBoot教程(三十) | SpringBoot集成Shiro(权限框架)

SpringBoot教程(三十) | SpringBoot集成Shiro(权限框架) 一、 什么是Shiro二、Shiro 组件核心组件其他组件 三、流程说明shiro的运行流程 四、SpringBoot 集成 Shiro1. 添加 Shiro 相关 maven2. 添加 其他 maven3. 设计数据库表4.…

JSONC:为JSON注入注释的力量

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于Web开发、配置文件和数据存储等领域。 其简洁的语法和易于解析的特点,使得JSON成为了现代编程中不可或缺的一部分。然而,JSON的一个显著缺点是…

波分技术基础 -- MS-OTN介绍

什么是MS-OTN 由于OTN最小交叉颗粒度为ODU0,承载小颗粒业务时带宽利用率较低;且无法承载分组业务,随着MPLS-TP技术的成熟,MS-OTN时代来临。MS-OTN(Multi-Service Optical Transport Network):核…

【论文解读系列】用于自监督点云表示的生成变分对比学习

Generative Variational-Contrastive Learning for Self-Supervised Point Cloud Representation | IEEE Transactions on Pattern Analysis and Machine Intelligence (acm.org) 作者:Bohua Wang; Zhiqiang Tian; Aixue Ye; Feng Wen; Shaoyi Du; Yue Gao 摘要 三…

VS code 查看 ${workspaceFolder} 目录指代路径

VS code 查看 ${workspaceFolder} 目录指代路径 引言正文 引言 在 VS code 创建与运行 task.json 文件 一文中我们已经介绍了如何创建属于自己的 .json 文件。在 VS code 中,有时候我们需要添加一些文件路径供我们导入自定义包使用,此时,我们…

Github Wiki 超链接 转 码云Gitee Wiki 超链接

Github Wiki 超链接 转 码云Gitee Wiki 超链接 Github 是 :[[相对路径]] Gitee 是 :[链接文字](./相对路径) 查找:\[\[(.*?)\]\] 替换:[$1]\(./$1\) 或替换:**[$1]\(./$1\)** (码云的超链接,很…

实战18-Card封装

import Card from ../../components/Card/Index; import rvp from ../../utils/resposive/rvIndex;Component export default struct DomesticService {build() {Column() {Card() {//默认插槽Text("DomesticService")}}.width(100%).margin({ top: rvp(43) })} } im…

2024 Python3.10 系统入门+进阶(十五):文件及目录操作

目录 一、文件IO操作1.1 创建或打开文件1.2 读取文件1.2.1 按行读取1.2.2 多行读取1.2.3 完整读取 1.3 写入文件1.3.1 写入字符串1.3.2 写入序列 1.4 上下文管理1.4.1 with语句的使用1.4.2 上下文管理器(拓展----可以学了面向对象之后再回来看) 1.5 文件的遍历 二、os.path模块…

大语言模型-教育方向数据集

大语言模型-教育方向数据集 编号论文数据集1Bitew S K, Hadifar A, Sterckx L, et al. Learning to Reuse Distractors to Support Multiple-Choice Question Generation in Education[J]. IEEE Transactions on Learning Technologies, 2022, 17: 375-390.Televic, NL, https…

79页 PPT华为项目管理经典培训教材(高级)

读者朋友大家好,最近有会员朋友咨询晓雯,需要《79页PPT华为项目管理经典培训教材》资料,欢迎大家文末扫码下载学习。 一、华为项目管理理念方法 (一)项目管理基本概念与方法 项目启动 明确项目目标:华为…

SAP B1 流程实操 - 营销单据销售部分(上)

背景 在 SAP B1 中,最重要的模块就是【销售】,企业可能不涉及生产和库存(贸易公司),甚至不涉及采购(服务业),但是一定会有基本的 销售。本文中我们讲解 销售 模块的基本核心&#x…