张量的定义及创建

本文详细介绍了张量在PyTorch中的定义,包括Tensor数据类型与Variable数据类型的区别,以及不同方式创建张量的方法,如torch.tensor()、torch.from_numpy()、torch.zeros()、torch.ones()、torch.full()等,涵盖了直接创建、依据数值创建和依概率分布创建等多种方式。
摘要由CSDN通过智能技术生成

一.张量的定义

1.张量

张量是一个多维数组,是标量,向量,矩阵的高维拓展
在这里插入图片描述

2.Tensor数据类型与Variable数据类型

在PyTorch0.4.0之前,张量相关的数据类型有Tensor和Variable,其中Tensor用于存储张量数据,Variable用来对Tensor进行封装并用于自动求导.
Variable数据类型结构如下图:
在这里插入图片描述
data:被包装的Tensor数据

  • 但在程序中定义了一个张量t=[1,1,1],使用t.data打印出来的是tensor([1,1,1]),需要使用t.data.numpy()打印出来的才是[1,1,1].相当于用.data.numpy()才能tensor中的数据真正取出来

grad:data的梯度
grad_fn:创建Tensor的方法,如加法,乘法等,是自动求导的关键
requires_grad:Tensor是否需要计算梯度(并不是所有的张量都要用到梯度的)
is_leaf:是否是叶子节点,这是计算图中的概念,后面会详细说明

PyTorch0.4.0版本之后,Variable并入Tensor
此时Tensor数据类型结构如下:
在这里插入图片描述
dtype:张量的数据类型
shape:张量的形状
devece:张量所在的设备(CUDA(即GPU)或者CPU)
其他参数与0.4.0版本前的Variable定义相同

Tensor的数据类型:
共有九种,三大类
浮点型类,其中32位浮点型常用于网络权值:

16位浮点型 32位浮点型 64位浮点型
torch.float16或torch.half torch.float32或torch.float torch.float64或torch.double

整型类,其中64位长整形常用于图像的标签:

8位无符号整型 8位有符号整形 16位整形 32位整型 64位长整形
torch.uint8 torch.int8 torch.int16或torch.short torch.int32或torch.int torch.int64或torch.long

布尔类:

布尔型
torch.bool

二.张量的创建-直接创建

1.torch.tensor()

创建格式:
在这里插入图片描述
代码实现:

#创建numpy数组
arr = np.ones(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值