Pytorch入门(二) 第3章 张量 tensor

声明:本文是阅读《Deep Learning With Pytorch》所做的笔记,以方便学习pytorch,详细内容请阅读原书。

在这里插入图片描述

首先要将输入的数据转为浮点数 floating- point number,本章主要学习如何用张量来处理浮点数。

目标

  • 张量是什么?
  • 张量的操作
  • 与NumPy中多维数组的互换
  • 通过GPU为计算提速

3.1 浮点数 floating numbers

首先必须深刻理解PyTorch如何处理和储存数据,包括 输入 input、中间表示 intermediate representations、输出 output

tensor 也就是将数组扩展到多维,也叫多维数组 multidimensional array。一个tensor的维度就是指一个tensor内标量值的个数。

3.2 Tensors

!!!tensor 的本质
tensor的本质
Python列表或数字元组是在内存中单独分配的Python对象的集合,如上图左边所示。而 Pytorch 的 Tensors 或 Numpy 数组(通常)是连续的内存块。 正如上图右边所示,每个元素都是32位(4字节)的浮点数,这意味着存储1,000,000浮点数的一维张量将需要恰好4,000,000的连续字节,以及一些小开销(例如维度和数字类型)。

3.3 Indexing tensors 索引

和python中对list的索引操作一样。

3.4 Named tensors 命名

  • 对每个维度进行命名
# input
> weights_named = torch.tensor([0.2126, 0.7152, 0.0722], names=['channels'])
> weights_named.sum('channels')

# output
tensor(1.)

  • 给已有的tensor加上名字:refine_names
# input
> img_t = torch.randn(3, 5, 5) # shape [channels, rows, columns]
> img_named = img_t.refine_names(..., 'channels', 'rows', 'columns')
> print("img named:", img_named.shape, img_named.names)

# output
img named: torch.Size([3, 5, 5]) ('channels', 'rows', 'columns')
  • 维度对齐: align_as
# input
> weights_aligned = weights_named.align_as(img_named)
> weights_aligned.shape, weights_aligned.names

# output
(torch.Size([3, 1, 1]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值