【Pytorch 基础教程2】10分钟掌握Tensor基础 VSCode +Pytorch配置

Pytorch 基础教程 02

Tensor
PyTorch 作为Numpy的代替品,可以使用GPU的强大计算能力
提供最大的灵活性和告诉的深度学习研究平台

这里补充上实验环境调试:第一次使用VS Code可以参考:PyTorch(超详细)部署与激活 举起Python火炬,点亮智慧人生【Windows版】

另外这里可能会遇到一些环境问题:在这里插入图片描述
为了解决这里先点击VS Code右下角环境,在弹出菜单中选择Pytorch环境
在这里插入图片描述
开始安装torch library
在这里插入图片描述
SUCCESS !!

开始coding

Tensor是 PyTorch 中的核心数据抽象。此交互式笔记本深入介绍了 torch.Tensor 类。
首先,让我们导入 PyTorch 模块。我们还将添加 Python 的数学模块来简化一些示例。

2.1 创建Tensor

创建张量的最简单方法是使用 torch.empty() 调用:

x = torch.empty(3, 4)
print(type(x))
print(x)

结果:

在这里插入图片描述
让我们拆分刚刚所做的事情:

  • 我们使用 torch 模块附带的众多工厂方法之一创建了一个张量。
  • 张量本身是二维的,这个例子有 3 行和 4 列。
  • 返回对象的类型是 torch.Tensor ,它是 torch.FloatTensor 的别名;默认的情况下,PyTorch 张量由 32 位浮点数填充。 (下面详细介绍数据类型。)
  • 打印张量时,您可能会看到一些看起来随机的值。 torch.empty() 调用为张量分配内存,但不使用任何值对其进行初始化 - 因此您看到的是分配时内存中的内容。

关于张量及其维数和术语的简要说明:

  • 有时你会看到称为vector的一维tensor。
  • 同样,二维tensor通常称为矩阵。
  • 任何超过二维的东西通常都被称为tensor。
    通常,你需要使用某个值来初始化张量。常见情况是全零、全一或随机值, torch 模块为所有这些提供工厂方法:
zeros = torch.zeros(2, 3)
print(zeros)ones = torch.ones(2, 3)
print(ones)torch.manual_seed(1000)
random = torch.rand(2, 3)
print(random)

在这里插入图片描述

2.2 随机Tensors 和 seeding

说到随机张量,您是否注意到紧随其前面的 torch.manual_seed() 调用?使用随机值初始化张量(例如模型的学习权重)很常见,但有时(尤其是在研究环境中)你需要确保结果的可重复性。手动设置随机数生成器的种子是实现此目的的方法。让我们更仔细地看看:

torch.manual_seed(1000)
random1 = torch.rand(2, 3)
print(random1)random2 = torch.rand(2, 3)
print(random2)torch.manual_seed(1000)
random3 = torch.rand(2, 3)
print(random3)random4 = torch.rand(2, 3)
print(random4)

在这里插入图片描述

你应该在上面看到的是 random1 和 random3 具有相同的值, random2 和 random4 也是如此。手动设置 RNG 的种子会重置它,因此在大多数设置中,取决于随机数的相同计算应该提供相同的结果。

2.3 Tensor Shapes

通常,当你对两个或多个张量执行操作时,它们需要具有相同的形状 - 即具有相同的维度数以及每个维度中相同的单元数。为此,我们有 torch.*_like() 方法:

x = torch.empty(2, 2, 3)
print(x.shape)
print(x)empty_like_x = torch.empty_like(x)
print(empty_like_x.shape)
print(empty_like_x)zeros_like_x = torch.zeros_like(x)
print(zeros_like_x.shape)
print(zeros_like_x)ones_like_x = torch.ones_like(x)
print(ones_like_x.shape)
print(ones_like_x)rand_like_x = torch.rand_like(x)
print(rand_like_x.shape)
print(rand_like_x)

在这里插入图片描述
上面代码单元中的第一个新内容是在张量上使用 .shape 属性。此属性包含张量每个维度的范围的列表 - 在我们的示例中, x 是形状为 2 x 2 x 3 的三维张量。

下面,我们调用 .empty_like() 、 .zeros_like() 、 .ones_like() 和 .rand_like() 方法。使用 .shape 属性,我们可以验证这些方法中的每一个都返回具有相同维度和范围的张量。

创建将覆盖的张量的最后一种方法是直接从 PyTorch 集合指定其数据:

在这里插入图片描述

2.4 Tensor Data Types

有几种方法可以设置张量的数据类型:

a = torch.ones((2, 3), dtype=torch.int16)
print(a)b = torch.rand((2, 3), dtype=torch.float64) * 20.
print(b)c = b.to(torch.int32)
print(c)

在这里插入图片描述
设置张量基础数据类型的最简单方法是在创建时使用可选参数。在上面单元格的第一行中,我们为张量 a 设置 dtype=torch.int16 。当我们打印 a 时,我们可以看到它充满了 1 而不是 1. Python 的细节提示是这是一个整数类型而不是浮点数。

关于打印 a 需要注意的另一件事是,不像我们将 dtype 保留为默认值(32 位浮点)不同,打印张量还指定其 dtype.

我们可能还发现,我们从将张量的形状指定为一系列整数参数,到将这些参数分组到一个元组中。这并不是绝对必要的 - PyTorch 会将一系列初始的、未标记的整数参数作为张量形状 - 但在添加可选参数时,它可以使您的意图更具可读性。

设置数据类型的另一种方法是使用 .to() 方法。在上面的单元格中,我们以通常的方式创建一个随机浮点张量 b 。接下来,我们通过使用 .to() 方法将 b 转换为 32 位整数来创建 c 。请注意, c 包含与 b 相同的所有值,但被截断为整数。

可用的数据类型包括:

torch.bool
torch.int8
torch.uint8
torch.int16
torch.int32
torch.int64
torch.half
torch.float
torch.double
torch.bfloat

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【2024软件测试面试必会技能】allure测试报告(2): allure测试报告的使用步骤

allure使用步骤如下: 一、通过DOS窗口命令生成allure测试报告: 1、在命令模式下中切换到pytest测试用例路径下,执行命令:py.test测试文件--alluredir报告路径,生成xml报告 2、在命令模式下执行命令:allu…

Vue的个人笔记

Vue学习小tips ctrl s ----> 运行 alt b <scrip> 链接 <script src"https://cdn.jsdelivr.net/npm/vue2.7.16/dist/vue.js"></script> 插值表达式 指令

第六届计算机科学与技术在教育中的应用国际会议(CSTE 2024)

2024年第六届计算机科学与技术在教育中的应用国际会议&#xff08;CSTE 2024&#xff09;将于4月19-21日在中国西安举行。此次会议由陕西师范大学主办&#xff0c;陕西师范大学教育学部承办。在前五届成功举办的基础上&#xff0c;CSTE 2024将继续关注计算机科学与技术在教育领…

【Git】:分支管理

分支管理 一.概念二.分支管理基本操作三.分支管理策略1.noff模式2.分支策略 一.概念 在版本回退⾥&#xff0c;你已经知道&#xff0c;每次提交&#xff0c;Git都把它们串成⼀条时间线&#xff0c;这条时间线就可以理解为是⼀个分⽀。截⽌到⽬前&#xff0c;只有⼀条时间线&…

【动态规划专栏】专题一:斐波那契数列模型--------4.解码方法

本专栏内容为&#xff1a;算法学习专栏&#xff0c;分为优选算法专栏&#xff0c;贪心算法专栏&#xff0c;动态规划专栏以及递归&#xff0c;搜索与回溯算法专栏四部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握算法。 &#x1f493;博主csdn个人主页&#xff1a;小…

Linux超详细笔记

文章目录 Linux学习笔记操作系统Linux初识Linux的诞生Linux内核Linux发行版 虚拟机VMware安装远程连接Linux系统FinalShellFinalShell连接Linux WSL配置UbuntuLinux常用命令1.入门2.ls命令cd命令3.pwd命令4.相对路径和绝对路径5.mkdir命令6.文件操作命令&#xff08;1&#xff…

百年明牌门业入围2024中国别墅门十大品牌榜单

一年一度的中国别墅门十大品牌网络评选活动圆满的落下帷幕。来自浙江的“百年明牌”凭借自身优异的产品品质&#xff0c;以及极佳的市场口碑&#xff0c;强势入围2024中国别墅门十大品牌榜单。 武义誉鑫安防科技有限公司坐落于素有“中国五金之都”和“中国门都”之称的永康市&…

Arcgis小技巧【17】——如何修改ArcGIS中影像的背景颜色

一、问题分析 在ArcGIS中&#xff0c;有时候会遇到影像有背景色&#xff0c;看上去很不美观。 尤其在多个影像叠加的时候&#xff0c;更是会造成遮挡的问题。 二、解决办法 首先&#xff0c;用【识别】工具在背景色是点击一下&#xff0c;查看弹出的窗口&#xff0c;记住背景…

雷池社区版WAF:开源护网,共筑网络安全长城

雷池社区版WAF&#xff08;Web Application Firewall&#xff09;是一款开源的网络应用防火墙&#xff0c;旨在为网站和网络应用提供安全防护&#xff0c;以抵御各种网络攻击&#xff0c;如SQL注入、跨站脚本攻击&#xff08;XSS&#xff09;、文件包含、以及其他常见的安全威胁…

【Git】移除Git中的文件

有的时候需要移除或者更新 Git 中的文件&#xff0c;我们无法直接在远程仓库中移除&#xff0c;移除或者更新操作需要在本地端实现。 1、移除被跟踪文件 当某个文件被添加到暂存区或者本地仓库&#xff0c;此时会被标记为“跟踪状态”&#xff0c;此时 Git 就会代为管理这个文…

基于STL的演讲比赛流程管理系统(个人学习笔记黑马学习)

1、演讲比赛程序需求 1.1比赛规则 学校举行一场演讲比赛&#xff0c;共有12个人参加。比赛共两轮&#xff0c;第一轮为淘汰赛&#xff0c;第二轮为决赛。每名选手都有对应的编号&#xff0c;如 10001~10012比赛方式:分组比赛&#xff0c;每组6个人;第一轮分为两个小组&#xff…

K210基础实验—点亮RGB灯

前言 学习K210的高速GPIOHS,点亮RGB灯 一、硬件连接 RGB灯的R连接IO6, G连接IO7, B连接IO8 二、在src目录下新建文件夹&#xff0c;名字叫做gpiohs_rgb_my 三、在gpiohs_rgb_my目录下再新建两个文件&#xff0c;分别是main.c和pin_config.h 四、在main.c文件中写入如下代…