pytorch——构建张量


前言

n维数组也称张量tensor。深度学习框架的张量类与Numpy计算包的ndarray相类似,但张量可以使用GPU加速计算且支持自动微分,这些功能使得张量类更适合深度学习。


创建张量

我们可以使用arrange创建一个行向量x。这个行向量包括以0开始的前12个整数,它们被默认创建为整数,也可以指定创建类型为浮点数。

x=torch.arange(12,dtype=torch.float)

x:tensor([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11.])

有时我们想要使用全零、全一、其他常量或者从特定分布中随机采样的数字来初始化矩阵。

MATRIX_zero=torch.zeros((2,3,4))
MATRIX_one=torch.ones((2,3,4))
MATRIX_two=torch.full((2,3,4),2)
MATRIX_random=torch.randn(3,4) #元素从均值为0,标准差为1的标准高斯分布中随机采样
MATRIX_random_2=torch.normal(mean=1,std=1,size=(3,4))
MATRIX_random_3=torch.rand(size=(3,4)) #从[0,1)的均匀分布中随机抽取

MATRIX_zero:tensor([[[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]],
[[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]]])
MATRIX_one:tensor([[[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]],
[[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]]])
MATRIX_two:tensor([[[2, 2, 2, 2],
[2, 2, 2, 2],
[2, 2, 2, 2]],
[[2, 2, 2, 2],
[2, 2, 2, 2],
[2, 2, 2, 2]]])
MATRIX_random:tensor([[-0.6329, 0.9121, -0.8829, 0.0817],
[ 0.4015, -0.1040, -0.7375, 0.9182],
[ 0.0959, 3.3503, 1.8304, -1.0459]])
MATRIX_random_2:tensor([[ 1.1447, -0.1803, -0.1195, 2.1452],
[ 0.9514, 2.1825, 0.3038, -0.6018],
[ 2.0543, 0.0853, 1.4329, 3.0322]]) MATRIX_random_3:tensor([[0.5312, 0.1384, 0.0153, 0.9869],
[0.2743, 0.3762, 0.6180, 0.1179],
[0.2767, 0.5959, 0.4207, 0.4297]])

属性访问

可以通过张量的shape属性来访问张量(沿每个轴的长度)的形状;也可以获得张量中元素的总数,即形状的所有元素的乘积。

print(f'x的形状(每个轴的长度):{x.shape}')
print(f'x的元素总数:{x.numel()}')

x的形状(每个轴的长度):torch.Size([12])
x的元素总数:12

形状改变

要改变一个张量的形状而不改变元素数量和元素值,可以调用reshape函数。

X=x.reshape(3,4)
print(f'X:{X}')
print(f'X的形状(每个轴的长度):{X.shape}')
print(f'X的元素总数:{X.numel()}')

X:tensor([[ 0., 1., 2., 3.],
[ 4., 5., 6., 7.],
[ 8., 9., 10., 11.]])
X的形状(每个轴的长度):torch.Size([3, 4])
X的元素总数:12

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值