1、张量(Tensor)
在Pytorch中处理的数据都按张量来表示,张量是一个矩阵维度的单位,表示多维矩阵。
Tensor有5种基本类型
- 16位整型 torch.ShortTensor
- 32位整型 torch.IntTensor
- 32位浮点型 torch.FloatTensor (默认类型)
- 64位整型 torch.LongTensor
- 64位浮点型 torch.DoubleTensor
1.1、定义张量
|
|
如果想使用在GPU上定义,那么只需要在后面加上 .cuda()
|
|
如何判断你的环境是否支持GPU,使用这个命令
|
|
【注意】张量可以看作是一个多维数组,标量
是0位张量,向量
是1位的张量,矩阵
是2位的张量
|
|
其中.dim()
求维度。
Pytorch的数据类型有很多和numpy特别相似,如果要查看shape,和np一样。
1.2、维度含义
1.2.1、三维度
一般在RNN中[b,word,vector]
- 第一位表示bitch数量
- 第二位表示句子数量
- 第三表示每一个句子可以用一个向量来表示
1.2.2、四维度
一般在CNN中[b,c,h,w]
- 第一位表示bitch
- 第二位表示图片的通道
- 第三位表示图片长度
- 第四位表示图片宽度
如何求张量的个数
|
|
1.3、未初始化
不要直接使用Pytorch来创建数据,不然会出现非常大的数值,也可以是无穷大和无穷小的情况
|
|
1.4、更改默认类型
如果声明的是浮点数,默认是 torch.FloatTensor,如果是整数,默认是 torch.LongTensor
|
|
1.5、随机数
随机生成的数使用的情况非常多,用的比较多的方法
|
|
1.6、生成数列
torch里面能生成两种数列,一种是等差数列,另一种是等分数列
|
|
【注意】:Tensor和tensor的区别
大写的Tensor和小写的tensor唯一的区别是,当只传入一位数的时候,大写的表示Size,而小写的表示标量
|
|
2、变量(Variable)
Pytorch的变量也是和张量一样,是一个比较重要的概念,这个和传统编程语言的变量不一样。这里的变量是加入了计算图,可以进行前向传播和反向传播、自动求导。 在变量中有三个比较重要的属性(data、grad、grad_fn),通过data获取到变量里面的值,这个值其实就是张量。grad_fn表示的是这个变量的操作,比如:是通过什么四则运算 得来的?(比如:加减乘除),最后grad是这个变量的反向梯度。
|
|