pytorch张量数据类型

 数据类型


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())          #更直接得到维度

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

onlywishes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值