pytorch中深度拷贝_pytorch 数据操作

数据操作

在深度学习中,我们通常会频繁地对数据进行操作。作为动手学深度学习的基础,本节将介绍如何对内存中的数据进行操作。

在PyTorch中,torch.Tensor是存储和变换数据的主要工具。如果你之前用过NumPy,你会发现Tensor和NumPy的多维数组非常类似。然而,Tensor提供GPU计算和自动求梯度等更多功能,这些使Tensor更加适合深度学习。

"tensor"这个单词一般可译作“张量”,张量可以看作是一个多维数组。标量可以看作是0维张量,向量可以看作1维张量,矩阵可以看作是二维张量。

创建Tensor

我们先介绍Tensor的最基本功能,即Tensor的创建。

首先导入PyTorch:

import torch

然后我们创建一个5x3的未初始化的Tensor:

x = torch.empty(5, 3)

print(x)

输出:

tensor([[ 0.0000e+00, 1.5846e+29, 0.0000e+00],

[ 1.5846e+29, 5.6052e-45, 0.0000e+00],

[ 0.0000e+00, 0.0000e+00, 0.0000e+00],

[ 0.0000e+00, 0.0000e+00, 0.0000e+00],

[ 0.0000e+00, 1.5846e+29, -2.4336e+02]])

创建一个5x3的随机初始化的Tensor:

x = torch.rand(5, 3)

print(x)

输出:

tensor([[0.4963, 0.7682, 0.0885],

[0.1320, 0.3074, 0.6341],

[0.4901, 0.8964, 0.4556],

[0.6323, 0.3489, 0.4017],

[0.0223, 0.1689, 0.2939]])

创建一个5x3的long型全0的Tensor:

x = torch.zeros(5, 3, dtype=torch.long)

print(x)

输出:

tensor([[0, 0, 0],

[0, 0, 0],

[0, 0, 0],

[0, 0, 0],

[0, 0, 0]])

还可以直接根据数据创建:

x = torch.tensor([5.5, 3])

print(x)

输出:

tensor([5.5000, 3.0000])

还可以通过现有的Tensor来创建,此方法会默认重用输入Tensor的一些属性,例如数据类型,除非自定义数据类型。

x = x.new_ones(5, 3, dtype=torch.float64) # 返回的tensor默认具有相同的torch.dtype和torch.device

print(x)

x = torch.randn_like(x, dtype=torch.float) # 指定新的数据类型

print(x)

输出:

tensor([[1., 1., 1.],

[1., 1., 1.],

[1., 1., 1.],

[1., 1., 1.],

[1., 1., 1.]], dtype=torch.float64)

tensor([[ 0.6035, 0.8110, -0.0451],

[ 0.8797, 1.0482, -0.0445],

[

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值