动手学深度学习系列笔记02预备知识-01数据操作ndarray

数据操作

为了能够完成各种操作,我们需要某种方法来存储和操作数据。
n 维数组,也称为张量(tensor)。无论使用哪个深度学习框架,它的张量类(在MXNet中为ndarray,在 PyTorch 和TensorFlow中为Tensor)都与Numpy的ndarray类似,但又比Numpy的ndarray多一些重要功能:首先,GPU 很好地支持加速计算,而NumPy仅支持CPU计算;其次,张量类支持自动微分。这些功能使得张量类更适合深度学习。

ndarray

import torch

具有一个轴的张量对应数学上的向量(vector)。具有两个轴的张量对应数学上的 矩阵(matrix)。具有两个轴以上的张量没有特殊的数学名称。

# arange创建一个行向量x。包含从0开始的前12个整数
x = torch.arange(12)
x
# tensor([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])
# 通过shape属性来访问张量的形状
x.shape
# torch.Size([12])
# 如果只想知道张量中元素的总数,即形状的所有元素乘积,可以检查它的大小(size)。
# 因为这里在处理的是一个向量,所以它的 shape 与它的 size 相同。
x.numel()
#12
# 要改变一个张量的形状而不改变元素数量和元素值,可以调用 reshape 函数。
# 例如,可以把张量x从形状为(12, )的行向量转换为形状为(3,4)的矩阵。
# 这个新的张量包含与转换前相同的值,但是它被看成一个3行4列的矩阵。
X = x.reshape(3, 4)
X
# tensor([[ 0,  1,  2,  3],
#         [ 4,  5,  6,  7],
#         [ 8,  9, 10, 11]])
# 不需要通过手动指定每个维度来改变形状。我们可以用x.reshape(-1,4)或者
# x.reshape(3,-1)来取代x.reshape(3,4)
torch.zeros((2, 3, 4))#创建一个形状为(2,3,4)的张量,将里面所有元素置为0
# 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.]]])

torch.ones((2, 3, 4))#所有元素置为1
# 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.]]])

torch.randn(3, 4)#每个元素都从均值为0、标准差为1的标准高斯(正态)分布中随机采样
# tensor([[ 0.4114,  0.3654, -0.3493,  0.2873],
#         [-0.1792,  1.5127,  1.5238,  1.1396],
#         [-0.2556, -0.2120, -0.1249, -0.4377]])

torch.tensor([[2, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]])#直接赋值
#最外层的列表对应于轴 0,内层的列表对应于轴 1。
# tensor([[2, 1, 4, 3],
#         [1, 2, 3, 4],
#         [4, 3, 2, 1]])


  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

kira_Y

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

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

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

打赏作者

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

抵扣说明:

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

余额充值