赞
踩
数据类型
python与pytorch数据类型很相似,在pytorch中没有字符串的表达
tensor 的基本数据类型
32位浮点型:torch.FloatTensor。 (默认)
64位整型:torch.LongTensor
32位整型:torch.IntTensor
16位整型:torch.ShortTensor
64位浮点型:torch.DoubleTensor
CPU tensor 和GPU tensor 只差一个cuda,X.cuda()会返回一个GPU上的引用
类型判断
两种方法
- import torch
- a = torch.randn(2,3) #随机正态分布方法生成数字
- print(type(a))
- print(isinstance(a,torch.FloatTensor))
dimension 维度 和 张量
张量
是PyTorch里面基础的运算单位,与Numpy的ndarray相同都表示的是一个多维的矩阵
张量(Tensor)是一个定义在一些向量空间和一些对偶空间的笛卡儿积上的多重线性映射,其坐标是|n|维空间内,有|n|个分量的一种量, 其中每个分量都是坐标的函数, 而在坐标变换时,这些分量也依照某些规则作线性变换。r称为该张量的秩或阶(与矩阵的秩和阶均无关系)
在同构的意义下,第零阶张量 (r = 0) 为标量 (Scalar),第一阶张量 (r = 1) 为向量 (Vector), 第二阶张量 (r = 2) 则成为矩阵 (Matrix),第三阶以上的统称为多维张量。
dimension为 0 的是标量 (常用于loss
.tensor 接收的数据的的内容
- a=torch.tensor(2) #0维的标量
- print(a.shape)
- print(a.size())
- print(len(a.shape))
dimension为 1 的称为 tensor,即张量,数学中称向量。(适用于bias,线性神经网络
两种表示,.tensor()中用中括号括起来
.tensor() 接收的数据的的内容, .FloatTensor()接受的是数据的shape
- print(torch.tensor([1.2]))
- print(torch.tensor([1.2,3.4]))
-
- print(torch.FloatTensor(1))
- print(torch.FloatTensor(2))
torch还可改变数据的类型
- data = np.ones(2)
- print(data)
-
- print(torch.from_numpy(data))
dimension为 2 的有两个维度 (适用于带有batch的linear输入
可以用FloatTensor()输入两个数表示两个维度
维度为2 可以 .shape[ ] 索引
- a=torch.randn(2,3) #随机生成符合正态分布的数
- print(a)
- print(a.shape)
-
- print(a.size(0)) #返回shape的第一个元素
- print(a.size(1))
-
- print(a.shape[1]) #索引1
dimension为 3 的有三个维度(适合 rnn类型结构
- a=torch.rand(1,2,3) #随机均匀分布
- print(a)
-
- print(a.shape)
- print(a[0]) #第一维中的第0个
-
- print(list(a.shape)) #可以互相转换
dimension为 4 的有四个维度(适合 卷积神经网络CNN,图片类型
- a=torch.rand(2,3,28,28) #分别表示2张照片,3颜色通道,长和宽
-
- print(a)
- print(a.shape)
other
用size表示的是tensor的形状,用numel得到的是tensor占用内存大小
rand会随机生成0~1之间的数值,不包含1
randn会随机生成符合正态分布的数值
- a=torch.rand(2,3,28,28) #表示2张照片,3颜色通道,长和宽
-
- print(a.shape) #得到的是形状
- print(a.numel()) #得到的是占用内存大小(乘积大小)
-
- print(len(a.shape)) #得到维度
- print(a.dim()) #更直接得到维度
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。