Tensor和Variable(笔记)

Efia ·
更新时间:2024-11-13
· 636 次阅读

1.(以前)Variable是torch.autograd中的数据类型,主要用于封装Tensor,进行自动求导:

data:被包装的tensor

grad:data的梯度

grad_fn:创建Tensor的Function,是自动求导的关键

requires_grad:指示是否需要梯度

is_leaf:指示是否是叶子节点(张量)

                                                  

2.(现在)Variable并入Tensor

dtype:张量的数据类型,如torch.FloatTensor,torch.cuda.FoatTensor

shape:张量的形状,如(64,3,224,224)

device:张量所在设备,GPU/CPU,加速的关键

                                     

3.  张量创建:

1)直接创建

torch.tensor(

data, dtype=None, device=None,

requires_grad=False, pin_menory=False)

pin_menory:存于索页内存

 

2)torch.from_numpy(ndarray)   # 从numpy创建tensor,内存共享

 

3)依据数组创建

torch.zeros((3,3),out=out_t)

torch.zeros_like()

torch.one()

torch.one_like()

torch.full((3,3), 10)

torch.full_like()

 

torch.arange(start,end,step)#等差   【start,end)

torch.linspace(start,end,steps)

 

4)依据概率分布创建

torch.normal(mean,std,out=None)#正态高斯分布,有四种情况(标量/张量)

 

torch.randn(*size,out=None,dtype=None)标准正态分布

*size:张量形状

torch.randn_like()

 

torch.rand(*size,out=None,dtype=None) # [0,1)上均匀分布

torch.rand_like()

torch.randint() #  [low,high)

torch.randint_like()

 

torch.randperm(n,out=None,dtype=torch.int64)# 0—n-1随机排列

n:张量的长度

 

torch.bernoulli(input,*,generator=None,out=None)  #以input概率值,生成伯努利分布


作者:Female_



tensor

需要 登录 后方可回复, 如果你还没有账号请 注册新账号