pytorch—初识tensor

本文介绍了Tensor在PyTorch中的基本概念和操作,包括数据类型(dtype)如torch.float和torch.int,以及CPU和GPU变体。讨论了张量的初始化、基本操作如索引和赋值,以及如何计算梯度。还提到了torch.tensor()函数的用法,以及如何通过指定dtype和device创建特定类型的张量。
摘要由CSDN通过智能技术生成

在这里插入图片描述Tensor 是包含单一数据类型(dtype)元素的多维矩阵。
Torch 定义了 10 种具有 CPU 和 GPU 变体的张量类型。
torch.Tensor 是默认张量类型 (torch.FloatTensor) 的别名。

dtype是指Tensor中的数据的数据类型,包含torch.float\torch.double\torch.complex32\torch.int等类型,其中每种类型又有cpu、cuda两种变体。

初始化和基本操作:

>>> torch.tensor([[1., -1.], [1., -1.]])
tensor([[ 1.0000, -1.0000],
        [ 1.0000, -1.0000]])
>>> torch.tensor(np.array([[1, 2, 3], [4, 5, 6]]))
tensor([[ 1,  2,  3],
        [ 4,  5,  6]])

torch.tensor()总是复制data。如果您有一个张量 data并且只想更改其requires_grad标志,请使用 requires_grad_()或 detach()以避免复制。如果您有一个 numpy 数组并且想要避免复制,请使用 torch.as_tensor().

可以通过指定 torch.dtype and/or torch.device传递给构造函数或张量创建操作来构造特定数据类型的张量:

>>> torch.zeros([2, 4], dtype=torch.int32)
tensor([[ 0,  0,  0,  0],
        [ 0,  0,  0,  0]], dtype=torch.int32)
>>> cuda0 = torch.device('cuda:0')
>>> torch.ones([2, 4], dtype=torch.float64, device=cuda0)
tensor([[ 1.0000,  1.0000,  1.0000,  1.0000],
        [ 1.0000,  1.0000,  1.0000,  1.0000]], dtype=torch.float64, device='cuda:0')

索引:

>>> x = torch.tensor([[1, 2, 3], [4, 5, 6]])
>>> print(x[1][2])
tensor(6)
>>> x[0][1] = 8
>>> print(x)
tensor([[ 1,  8,  3],
        [ 4,  5,  6]])

使用 torch.Tensor.item() 从包含单个值的张量中获取 Python 数字:

>>> x = torch.tensor([[1]])
>>> x
tensor([[ 1]])
>>> x.item()
1
>>> x = torch.tensor(2.5)
>>> x
tensor(2.5000)
>>> x.item()
2.5

计算梯度:

>>> x = torch.tensor([[1., -1.], [1., 1.]], requires_grad=True)
>>> out = x.pow(2).sum()
>>> out.backward()
>>> x.grad
tensor([[ 2.0000, -2.0000],
        [ 2.0000,  2.0000]])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

且放白鹿青涯间

你的打赏将是我最大的鼓励

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

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

打赏作者

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

抵扣说明:

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

余额充值