[pytorch深度学习Day03] 张量数据类型

浙江大学教授【深度学习框架PyTorch】课程笔记

https://www.bilibili.com/video/BV1wL4y1t7ah?p=15

1.python与pytorch数据类型对比

表示整型数字3,就用IntTensor,但是dimension为0

表示数组,例如矩阵,就是dimension为2的Int array,用IntTensor,同时dimension为2

对于python中的数据类型来说,pytorch都可以一一对应,只是换了个名字

但是string在pytorch中没有与之对应的类型

2.Pytorch如何处理string

 one-hot编码中每一个位置代表一个意思,因此两个单词的相关性并没有体现

Embedding layer可以解决上述问题

pytorch没有类间string支持,只能通过编码实现。

3.Pytorch类间的数据类型

 即使是同一个数据,但是放在不同的位置,它的类型可能是不一样的。

4.类型推断

 In[5]:2维tensor,第0个维度的长度是2,第1个维度的长度是3,(2行3列)

               使用randn随机正态分布来初始化2行3列的tensor。其中N(0,1),0是均值,1是方差

In[6]:使用tensor.type()方法可以返回一个string,代表tensor的类型,可用print输出

In[7]:python自带的type(tensor)的方法

In[8]:参数的合法化检验可以使用isinstance,如判断a是不是FloatTensor

In[7]方法使用较少,最常用[6]和[8]

同一个tensor部署在CPU和GPU上其数据类型是不一样的。如In[21]中data部署在CPU上,经过In[22]移动到GPU上(x.cuda()会返回一个GPU上的引用),数据类型发生变化。

4.1  标量(Dim 0)

1.3是0维,但是[1.3]是1维,长度为1的tensor

计算输出值与目标值之间的误差,误差最终求和平均之后会得到一个标量,这个标量就是loss。

4.2 Dim 1 / rank 1

 .tensor接受的是数据的内容

 dimension为1的tensor一般是bias(偏差)和(Linear Input)线性层输入

如何得到dimension为1的shape或者说size:

 如何区分dimension/rank和size/shape:

比如一个2维的tensor:[2,2]

dimension:2,指的就是行和列

size/shape:[2,2],指的是具体形状

tensor:指的是具体数据 比如\begin{bmatrix}1 & 2\\ 3 & 4 \end{bmatrix}

4.3 Dim 2

 如果输入a.size(),则返回torch.Size([2, 3])

但是如果输入a.size(0),则表示取shape的第1个元素:2

                           a.size(1),则表示取shape的第2个元素:3

4.4 Dim 3

 三维dimension使用最广的场景是RNN,文字处理:

4.5 Dim 4

CNN:[b, c, h, w]

4.6 Mixed

numel是指tensor占用内存的数量

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值