Pytorch笔记1

建议点赞收藏关注!持续更新至pytorch大部分内容更完。

整体框架如下

目录

  • gpu加速
  • 数据
    • 数据结构
      • 张量Tensor
      • Variable
    • 预处理
      • 数据增强
  • 模型
    • 构建模块
    • 组织复杂网络
    • 初始化网络参数
    • 定义网络层
  • 损失函数
    • 创建损失函数
    • 设置损失函数超参数
    • 选择损失函数
  • 优化器
    • 管理模型参数
    • 管理多个参数组实现不同学习率
    • 调整学习率
  • 迭代训练
    • 观察训练效果
    • 绘制loss/accuracy曲线
    • 用TensorBoard分析
  • 模型应用
    • 图像分类
    • 图像分割
    • 目标检测
    • 对抗生成
    • 循环网络

gpu加速

打开jupyter lab,打开一个file,右上角选择kernel为torchgpuprivate
要在 Mac M1的GPU 上运行 PyTorch 代码,使用命令 torch.device(“mps”)来指定。
在这里插入图片描述
在这里插入图片描述
之后就只需要引用gpu_a,gpu_b,其他与cpu_a…的操作没有区别。

数据

数据结构

张量Tensor

  1. ==数组概念,1…n维
  2. 有8个属性
    data
    dtype:有很多数据类型
    shape : 如 (6,6,6,6)
    device:所在设备cpu/gpu
    grad:data的梯度
    grad_fn:创建tensor 的function,是自动求导的关键,加法还是乘法
    requires_grad:指示是否需要梯度,不一定所有的张量都需要设置梯度
    is_leaf:指示是否是叶子节点(张量),计算图中再介绍。
  3. api
device=torch.device("mps")
torch.tensor(data, #list or numpydtype=None, # 默认==data的类型device=None,requires_grad=False,pin_memory=False # 是否存于锁页内存 一般默认)#创建
arr=np.ones((3,3))
t=torch.tensor(arr,device=device) 
# t.dtype == arr.dtype==float64torch.from_numpy(ndarray) #从numpy创建tensor
#从torch.from_numpy创建的tensor与原来的ndarray共享内存,一改跟着改torch.zeros(*size,#形状 如(3,3)out=None,#输出的张量 相当于赋值dtype=None,#内存中的布局形式layout=torch.strided,#通常默认,除非稀疏矩阵 用sparse_coodevice=None,requires_grad=False)
torch.zeros_like(input,#根据Input的形状创建dtype=None,layout=None,device=None,requires_grad=False)zeros 换成 onestorch.full(size,#(3,3)fill_value,#张量的值 如10out=None,dtype=None,layout=torch.strided,device=None,requires_grad=False)torch.arange(start=0, #创建等差1维张量end, #左闭右开step=1,#公差 默认1out=None,dtype=None,layout=torch.strided,device=None,requires_grad=False)torch.linspace(start=0, #创建均分1维张量end, #左闭右闭steps=1,#数列长度#步长=(end-start)/step -1out=None,dtype=None,layout=torch.strided,device=None,requires_grad=False)torch.logspace(base=...底默认10,...) #对数均分torch.eye(n,#行数  #默认方阵m,#列数...) #创建单位对角矩阵,2维张量,torch.normal(mean,std,out=None)
#正态分布,mean均值,std方差
#mean std都可以分别是标量 or张量#都是张量的情况的normal如何计算?
mean=[1,2,3,4]
std=[1,2,3,4]
t_normal=torch.normal(mean,std) #得到[1.66,2.53,3.18,6.48]
#1.66是通过mean=1,std=1的正态分布采样得到torch.randn(*size, #标准正态分布  out=None,dtype=None,layout=torch.strided,device=None,requires_grad=False)
torch.randn_like()torch.randint(low=0, #均匀分布 前闭后开high,size, out=None,dtype=None,layout=torch.strided,device=None,requires_grad=False) torch.randint_like()torch.randperm(n,#张量长度out=None,dtype=None,layout=torch.strided,device=None,requires_grad=False) 
#生成0-n-1随机排列torch.bernoulli(input,*,generator=None,out=None)#以input为概率,生成伯努利分布,即0-1分布,两点分布

Variable

已经合并到tensor 但是对于理解张量有帮助。variable是torch.autograd中的数据类型,用于封装tensor进行自动求导,有五个属性
data:被包装的tensor
grad:data的梯度
grad_fn:创建tensor 的function,是自动求导的关键,加法还是乘法
requires_grad:指示是否需要梯度,不一定所有的张量都需要设置梯度
is_leaf:指示是否是叶子节点(张量),计算图中再介绍。

预处理

数据增强

模型

构建模块

组织复杂网络

初始化网络参数

定义网络层

损失函数

创建损失函数

设置损失函数超参数

选择损失函数

优化器

管理模型参数

管理多个参数组实现不同学习率

调整学习率

迭代训练

观察训练效果

绘制loss/accuracy曲线

用TensorBoard分析

模型应用

图像分类

图像分割

目标检测

对抗生成

循环网络

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3268440.html

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

相关文章

【ESP32 IDF 软件模拟SPI驱动 W25Q64存储与读取数组】

目录 SPISPI介绍SPI时序代码编写(spi&w25q64) 代码调试 SPI SPI介绍 SPI(Serial Peripheral Interface,串行外围设备接口)是一种高速、全双工、同步的串行通信总线,常用于微控制器与各种外围设备&…

【React】详解如何获取 DOM 元素

文章目录 一、基础概念1. 什么是DOM?2. 为什么需要获取DOM? 二、使用 ref 获取DOM元素1. 基本概念2. 类组件中的 ref3. 函数组件中的 ref 三、 ref 的进阶用法1. 动态设置 ref2. ref 与函数组件的结合 四、处理特殊情况1. 多个 ref 的处理2. ref 与条件渲…

大数据-49 Redis 缓存问题中 穿透、雪崩、击穿、数据不一致、HotKey、BigKey

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

nginx目录列表美化—rpm安装

目录美化 1. 下载NGINX2. 下载美化工具3. 配置模块4. 主题下载5. 配置文件编写6. 其它问题 1. 下载NGINX RHEL系列的yum源 使用yum源安装如果不能指定版本,请点击跳转nginx的仓库 nginx-stable] namenginx stable repo baseurlhttp://nginx.org/packages/centos/$…

【H.264】H.264详解(二)—— H264视频码流解析示例源码

文章目录 一、前言二、示例源码【1】目录结构【2】Makefile源码【3】h264parser.c源码【4】编译运行【5】源码下载地址 声明:此篇示例源码非原创,原作者雷霄骅。雷霄骅,中国传媒大学通信与信息系统专业博士生,在此向雷霄骅雷神致敬…

【Python机器学习】朴素贝叶斯——条件概率

条件概率 假设现在有一个装了7块石头的罐子(3块灰色,4块黑色),如果从中随机取出一块,灰色的可能性就是3/7,黑色的可能性是4/7。我们使用p(gray)来表示取到灰色石头的概率,其概率值可以通过灰色…

cocos creator 3学习记录01——如何替换图片

一、动态加载本地图片 1、通过将图片关联到CCClass属性上来进行代码切换。 1、这种方法,需要提前在脚本文件中声明好代表图片的CCClass属性。 2、然后拖动图片资源,到脚本内声明好的属性上以进行关联。 3、然后通过程序,来进行切换展示。…

unity2D游戏开发01项目搭建

1新建项目 选择2d模板,设置项目名称和存储位置 在Hierarchy面板右击,create Empty 添加组件 在Project视图中右键新建文件夹 将图片资源拖进来(图片资源在我的下载里面) 点击Player 修改属性,修好如下 点击Sprite Editor 选择第二…

Hadoop3:HDFS的客户端工具Big Data Tools(IDEA版本)

1、安装插件 在Plugins里搜索Big Data Tools 安装完成后,重启IDEA 2、配置Windows环境 主要是配置Hadoop环境,否则无法通过插件远程连接HDFS 1、解压hadoop安装包 2、进入hadoop的bin目录 放入图中标红的两个文件 3、配置hadoop环境变量 新建HAD…

freertos的学习cubemx版

HAL 库的freertos 1 实时 2 任务->线程 3 移植 CMSIS_V2 V1版本 NVIC配置全部是抢占优先级 第四组 抢占级别有 0-15 编码规则, 变量名 :类型前缀, c - char S - int16_t L - int32_t U - unsigned Uc - uint8_t Us - uint…

【游戏制作】使用Python创建一个完整的2048游戏项目

目录 项目运行展示 项目概述 项目目标 项目结构 安装依赖 代码实现 1. 导入库 2. 创建 Game2048 类 3. 设置UI界面 4. 加载二维码图片 5. 创建菜单 6. 游戏逻辑和功能 7. 运行应用 总结 创建一个完整的2048游戏项目 项目运行展示 项目概述 在这个项目中&#xff…

19 Python常用内置函数——range()

range() 是 Python 开发中非常常用的一个内置函数。该函数返回具有惰性求值特点的 range 对象,其中包含左闭右开区间 [start, end) 内以 step 为步长的整数。 参数 start 默认为 0,step 默认为 1。 print(range(5)) print(list(range(5))) print(list(r…

Zenario CMS 9.2 文件上传漏洞(CVE-2022-23043)

前言 CVE-2022-23043 是一个影响 Zenario CMS 9.2 的严重漏洞。该漏洞允许经过身份验证的管理员用户绕过文件上传限制。具体来说,管理员可以通过创建一个新的带有 ".phar" 扩展名的“文件/MIME 类型”,然后上传一个恶意文件。在上传过程中&am…

Java从入门到精通 (十一) ~ 操作系统、进程和线程

无论做什么,请记住都是为你自己而做,这样就毫无怨言!今天,我为自己而活!今天,又是美丽的一天!早安,朋友! 目录 前言 一、操作系统 1. 概念 2. 操作系统的基本功能 3…

FPGA开发——LED流水灯实现先从左往右流水,再从右往左流水

一、概述 我们在设计完一个方向的流水灯的设计时,总是会想实现让流水灯倒着流水回去的设计,这里我也是一样,实现这种设计的方法有很多种,其中就有直接使用case语句将所有可能包含进去编写,这种设计方法是最简单的&…

高翔【自动驾驶与机器人中的SLAM技术】学习笔记(四)高斯牛顿法详解

一、高斯牛顿法详解 拓展阅读:高斯牛顿法详解_gauss-newton算法步骤-CSDN博客 1、梯度下降法 ​ ​ ​ 无论一阶泰勒展开,还是二阶泰勒展开都是关于增量​的方程。 2、牛顿法 ​ 这个自变量增量都是可求的。但是二阶求解复杂。因此为了简化有了下…

windows下运行sh文件

1、打开git bash 2、进入sh文件所在文件夹,使用sh xx.sh运行

@RequiredArgsConstructor详解

RequiredArgsConstructor详解 一、什么是RequiredArgsConstructor? RequiredArgsConstructor是Lombok的一个注解,简化了我们对Autowired书写,我们在写Controller层或者Service层的时候,总是需要注入很多mapper接口或者service接口&#xf…

初识Play Framework框架和第一个Java play web项目的创建

文章目录 初识Play Framework框架和第一个Java play web项目的创建一、简介特点架构开发流程示例代码总结 二、创建第一个Java play web项目1、下载play框架,配置系统环境变量(jdk的安装就不再说了) 2、检查play的版本和创建第一个play项目3、将项目通过idea或eclip…

【NoSQL数据库】Redis知识小册

一、缓存穿透 缓存穿透是先查Redis,发现缓存中没有数据,再查数据库。然而,如果查询的数据在数据库中也不存在,那么每次查询都会绕过缓存,直接落到数据库上。 解决方案一、缓存空数据 查询Redis缓存:首先查…