一、数据操作

在PyTorch中,torch.Tensor是存储和变换数据的主要工具。

"tensor"这个单词一般可译作“张量”,张量可以看作是一个多维数组。
标量可以看作是0维张量,向量可以看作1维张量,矩阵可以看作是二维张量。

1、torch.arange() 和torch.linspace

# arange(s, e, step) => 从s到e,步长为step
x8 = torch.arange(1, 10, 2)
# print(x8)# linspace(s, e, steps) => 从s到e,均匀切分成steps份
x9 = torch.linspace(2,8,3)
# print(x9)

2、torch.range() 和torch.arange() 的区别

>>> y=torch.range(1,6)
>>> y
tensor([1., 2., 3., 4., 5., 6.])
>>> y.dtype
torch.float32>>> z=torch.arange(1,6)
>>> z
tensor([1, 2, 3, 4, 5])
>>> z.dtype
torch.int64

3、torch.randn与torch.rand的区别

randn

torch.randn(*sizes, out=None) → Tensor

返回一个包含了从标准正态分布中抽取的一组随机数的张量

size:张量的形状

out:结果张量

rand

torch.rand(*sizes, out=None) → Tensor

返回一个张量,包含了从区间[0, 1)的均匀分布中抽取的一组随机数

4、NumPy数组与Tensor的互相转换(共享内存)

NumPy转Tensor:torch.from_numpy()
Tensor转NumPy:numpy()
另:可以使用 torch.tensor() 将NumPy数组转换成Tensor,但不再共享内存

5、Tensor on GPU

if torch.cuda.is_available():device = torch.device("cuda")          # GPUy = torch.ones_like(x, device=device)  # 直接创建一个在GPU上的Tensorx = x.to(device)                       # 等价于 .to("cuda")z = x + yprint(z)print(z.to("cpu", torch.double))       # to()还可以同时更改数据类型

6、索引

索引出来的结果与元数据共享内存

x = torch.tensor([[1, 2, 3], [4, 5, 6]])
print(x)
y = x[0, :]  # 取出第一行
print(y)
y += 1
print(y)
print(x[0, :]) # 源tensor也被改了

输出

tensor([[1, 2, 3],[4, 5, 6]])
tensor([1, 2, 3])
tensor([2, 3, 4])
tensor([2, 3, 4])

7、广播机制

当对两个形状不同的Tensor按元素运算时,可能会触发广播(broadcasting)机制:先适当复制元素使这两个Tensor形状相同后再按元素运算

x = torch.arange(1, 3).view(1, 2)
print(x)
y = torch.arange(1, 4).view(3, 1)
print(y)
print(x + y)

输出

tensor([[1, 2]])
tensor([[1],[2],[3]])
tensor([[2, 3],[3, 4],[4, 5]])

《动手学深度学习 PyTorch版》学习笔记(一):数据操作相关推荐

  1. 【AI】《动手学-深度学习-PyTorch版》笔记(五):线性代数

    AI学习目录汇总 1.标量 1.1 介绍 标量就是我们常见的单个数字(包括整数.小数等等),可以使用只有一个元素的张量表示 1.2 表示方法 用小写字母表示,如:x.y.z 1.3 程序示例 impo ...

  2. 伯禹公益AI《动手学深度学习PyTorch版》Task 07 学习笔记

    伯禹公益AI<动手学深度学习PyTorch版>Task 07 学习笔记 Task 07:优化算法进阶:word2vec:词嵌入进阶 微信昵称:WarmIce 优化算法进阶 emmmm,讲实 ...

  3. 伯禹公益AI《动手学深度学习PyTorch版》Task 03 学习笔记

    伯禹公益AI<动手学深度学习PyTorch版>Task 03 学习笔记 Task 03:过拟合.欠拟合及其解决方案:梯度消失.梯度爆炸:循环神经网络进阶 微信昵称:WarmIce 过拟合. ...

  4. 伯禹公益AI《动手学深度学习PyTorch版》Task 05 学习笔记

    伯禹公益AI<动手学深度学习PyTorch版>Task 05 学习笔记 Task 05:卷积神经网络基础:LeNet:卷积神经网络进阶 微信昵称:WarmIce 昨天打了一天的<大革 ...

  5. 伯禹公益AI《动手学深度学习PyTorch版》Task 06 学习笔记

    伯禹公益AI<动手学深度学习PyTorch版>Task 06 学习笔记 Task 06:批量归一化和残差网络:凸优化:梯度下降 微信昵称:WarmIce 批量归一化和残差网络 BN和Res ...

  6. 李沐《动手学深度学习》第二版 pytorch笔记1 环境搭建

    李沐<动手学深度学习>第二版pytorch笔记1 搭建环境 文章目录 李沐<动手学深度学习>第二版pytorch笔记1 搭建环境 此时尚有耐心 虚拟环境搭建 创建虚拟环境 查看 ...

  7. 伯禹公益AI《动手学深度学习PyTorch版》Task 04 学习笔记

    伯禹公益AI<动手学深度学习PyTorch版>Task 04 学习笔记 Task 04:机器翻译及相关技术:注意力机制与Seq2seq模型:Transformer 微信昵称:WarmIce ...

  8. 364 页 PyTorch 版《动手学深度学习》PDF 开源了(全中文,支持 Jupyter 运行)

    点击上方"AI有道",选择"星标"公众号 重磅干货,第一时间送达 李沐,亚马逊 AI 主任科学家,名声在外!半年前,由李沐.Aston Zhang 等人合力打造 ...

  9. 《动手学深度学习》PyTorch版GitHub资源

    之前,偶然间看到过这个PyTorch版<动手学深度学习>,当时留意了一下,后来,着手学习pytorch,发现找不到这个资源了.今天又看到了,赶紧保存下来. <动手学深度学习>P ...

  10. (d2l-ai/d2l-zh)《动手学深度学习》pytorch 笔记(2)前言(介绍各种机器学习问题)以及数据操作预备知识Ⅰ

    开源项目地址:d2l-ai/d2l-zh 教材官网:https://zh.d2l.ai/ 书介绍:https://zh-v2.d2l.ai/ 笔记基于2021年7月26日发布的版本,书及代码下载地址在 ...

最新文章

  1. 用Visual C#创建Windows服务程序
  2. screen 常用命令
  3. 初识FPGA CLB之LUT实现逻辑函数
  4. 不使用第三个变量,实现两个变量值的交换
  5. OVS+Docker
  6. 任务切换——《x86汇编语言:从实模式到保护模式》读书笔记38
  7. el-select下拉框组件el-option如何使用v-for动态渲染问题 - 方法篇
  8. 如何在Kubernetes上运行PostgreSQL
  9. 资源图与死锁定理的灵活运用
  10. Spring入门(三)
  11. 算法:翻转图片Rotate Image
  12. 汇川PLC软件下载及安装
  13. matlab程序设计题题库及答案,matlab程序设计例题及答案
  14. 配置MatConvNet
  15. 写DM9000网卡芯片驱动的预备知识
  16. 手机点击android出现N,“安卓N”登场,会给手机带来哪些新功能
  17. HTML设置水平居中的几种方式
  18. 新能源汽车比亚迪唐220V放电系统粗解,以及为什么需要支持V2G?
  19. WPS如何快速输入随机姓名
  20. Matlab补齐位数

热门文章

  1. LeetCode MySQL 1107. 每日新用户统计
  2. LeetCode 482. 密钥格式化
  3. python最好用的助手_推荐5款好用的Python工具
  4. atoi函数_每日一道 LeetCode (50):字符串转换整数 (atoi)
  5. tar linux 举例,linux 的tar 命令详解举例
  6. 利用python寻找列表中相邻元素之差绝对值为1的所有最长链
  7. matlab 转换为正整数_【MATLAB】专题1笔记 MATLAB基础知识
  8. 还在随缘炼丹?一文带你详尽了解机器学习模型可解释性的奥秘
  9. 【萌味】小夕说,不了解动态空间增长的程序喵都是假喵(中)
  10. 阿里P8架构师谈:大数据架构设计(文章合集)