ptorch学习笔记1-张量的创建

本文介绍了PyTorch中张量的概念,包括张量的维度、数据类型和设备。详细讲解了如何创建张量,包括直接创建、依赖数值创建和根据概率分布创建,并列举了如torch.tensor、torch.zeros、torch.ones、torch.arange、torch.eye等具体函数的用法。
摘要由CSDN通过智能技术生成

1.张量是什么?

0维张量就是标量只有大小没有方向。有大小和方向的向量就是一维张量,矩阵就是2维张量,我们接触到的rgb彩色图像实际就是一个三维张量,长宽和通道数。因此可以知道,张量是一个多维数组,是标量、向量和矩阵的高纬拓展。

张量在pytorch中是以tensor表现出来。在pytorch0.40版本以前,自动求导的torch.autgrad.Variable是独立的,用来封装tensor,该数据类型主要有五个参数:

data: 被包装的 Tensor
grad: data 的梯度
grad_fn: 创建 Tensor 的 Function ,是自动
求导的关键
requires_grad: 指示是否需要梯度
is_leaf: 指示是否是叶子结点(张量)

而在pytorch0.40以后的版本,为了方便,将vaiable数据类型并入到tensor。

在variable的基础之上多了三个部分:

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

2.张量的创建

创建张量有三种方法:一是直接创建法,二是依赖数值创建,三是依赖概率分布创建。

一.直接创建

1.torch.tensor

torch.tensor(
data,
dtype=None,
device=None,
requires_grad=False,
pin_memory=False)

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

# 通过torch.tensor创建张量

arr = np.ones((3,3))
print("ndarrary的数据集类型:", arr.dtype)
# t = torch.tensor(arr)
t = torch.tensor(arr, device='cuda')
print(t)

//运行结果:
ndarrary的数据集类型: float64
tensor([[1., 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值