张量Tensor是什么,怎么创建

张量是什么

张量是一个多维数组,它是标量、向量、矩阵的高维拓展

张量与Variable

Variable已经并入tensor
Variable是给张量添加属性
Variable是torch.autograd中的数据类型
主要用于封装Tensor,使Tensor进行自动求导
Variable有5个属性
data:被包装的Tensor
grad:data的梯度
grad_fn:创建Tensor的Function,是自动求导的关键
requires_grad:指示是否需要梯度
is_leaf:指示是否是叶子结点(张量)

PyTorch0.4.0版开始,Variable并入Tensor
dtype:张量的数据类型,如 torch.FloatTensor,torch.cuda.FloatTensor
shape:张量的形状,如(64,3,224,224)
device:张量所在设备,GPU/CPU,是加速的关键

Tensor的创建

创建一:直接创建

torch.tensor()
功能:从data创建tensor
data:数据,可以是list,numpy
dtype:数据类型,默认与data的一致
device:所在设备,cuda/cpu
requires_grad:是否需要梯度
pin_memory:是否存于锁页内存

flag = True
#flag = False 
if flag:
    arr = np.ones((3,3))
    print("ndarray的数据类型:",arr.dtype)

    #t = torch.tensor(arr,device='cuda')
    t = torch.tehsor(arr)

    print(t)

torch.from_numpy(ndarray)
功能:从numpy创建tensor
注意事项:从torch.from_numpy创建的tensor于原ndarray共享内存,当修改其中一个的数据,另外一个也将会被改动

创建二:依据数值创建

2.1 torch.zeros()
功能:依size创建全0张量
size:张量的形状,如(3,3)、(3,224,224)
out:输出的张量
layout:内存中布局形式,有strided,sparse_coo等
device:所在设备,gpu/cpu
requires_grad:是否需要梯度

2.2 torch.zeros_like()
功能:依input形状创建全0张量
intput:创建与input同形状的全0张量
dtype:数据类型
layout:内存中布局形式

2.3 torch.ones()

2.4 torch.ones_like()
功能:依input形状创建全1张量
size:张量的形状,如(3,3)、(3,224,224)
dtype:数据类型
layout:内存中布局形式
device:所在设备,gpu/cpu requires_grad:是否需要梯度

2.5 torch.full()

2.6 torch.full_like()
功能:依input形状创建全0张量
size:张量的形状,如(3,3)
fill_value:张量的值

2.7 torch.arange()
功能:创建等差的1维张量
注意事项:数值区间为[ start,end)
start:数列起始值
end:数列“结束值”
step:数列公差,默认为1

2.8 torch.linspace()
功能:创建均分的1维张量
注意事项:数值区间为[start,end]
start:数列起始值
end:数列结束值
steps:数列长度(注意不是步长)

2.9 torch.logspace()
功能:创建对数均分的1维张量
注意事项:长度为steps,底为base
start:数列起始值
end:数列结束值
steps:数列长度
base:对数函数的底,默认为10

2.10 torch.eye()
功能:创建单位对角矩阵(2维张量)
注意事项:默认为方阵
n:矩阵行数
m:矩阵列数

创建三:依据概率创建

3.1 torch.normal()
功能:生成正态分布(高斯分布)
mean:均值
std:标准差
四种模式:
mean为标量,std为标量
mean为标量,std为张量
mean为张量,std为标量
mean为张量,std为张量

区别是标量中要加一个size

3.2 torch.randn()

3.3 torch.randn_like()
功能:生成标准正态分布(均值为0,标准差为1)
size:张量的形状

3.4 torch.rand()
3.5 torch.rand_like()
功能:在区间[0,1)上,生成均多分布
3.6 torch.randint()
3.7 torch.randint_like()
功能:区间[low,high)生成整数均匀分布
size:张量的形状

3.8 torch.randperm()
功能:生成生成从0到n-1的随机排列
n:张量的长度

3.9 torch.bernoulli()
功能:以input为概率,生成伯努力分布(0-1分布,两点分布)
input:概率值

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇