tensor 增加一维度_Pytorch学习笔记------tensor

文章结构

一、什么是张量?张量的基本介绍。

二、pytorch中几种创建张量的方式。

1.直接创建、

2.依据数值创建、

3.依据概率创建。

三、张量的基本操作。

1.张量的拼接、

2.张量的切分、

3.张量的索引、

4.张量的变换、

5.张量的数学运算。


一、什么是tensor?

tensor(张量)是深度学习框架中常用的数据形式,虽然在生活中并不常见,但并不难理解,在数学概念中张量就是一个多维数组,是标量、向量、矩阵的高维扩展。如下图:

aef3dc1dca6b6d3d997cc07baca5ec02.png
标量、向量、矩阵和张量之间的关系

当张量维度为0时,在含义上对应于标量;当张量维度为1时,在含义上对应于向量;当张量维度为2时,在含义上对应于矩阵。如果在维度上继续拓展,这样的数学表现形式我们统称为标量。例如彩色图像就是一个三维张量(例如3*256*832),在维度上分别表示为色彩(RGB)、图像的高和图像的宽。

在深度学习框架中,张量除了存储数据外,还被赋予了其他的属性,正是因为拥有这些属性,使得张量可以实现自动求导的功能(张量在数据的基础上进行抽象,成为一个数据类)。在Pytorch中张量常用的属性有以下几种:

86b08eee6ad95809cbcba8db45d5cf0a.png
tensor的几种属性

其中:

data:存储的数据即n维数组;

dtype:data存储数据的数据类型(int、float等等);

shape:data的数据大小(例如3*256*832);

device:tensor存储在哪个设备上(cuda or cpu);

requires_grad: 布尔类型,表示该tensor是否需要计算梯度(True or False);

grad:data的梯度;

grad_fn: 创建tensor时所用到的function(例如加法或者乘法等),是自动求导的关键;

is_lead: 该tensor是否为计算图中的叶子节点。

二、pytorch中创建张量的几种方法:

1.直接创建:

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

其中data就是张量中存储的数据,可以是list,numpy;dtype数据类型默认和data一致;device所在设备(cuda or cpu);requires_grad是否需要计算梯度;pin__memory是否存于锁页内存。代码实现如下:

import torch
import numpy as np

# 创建numpy数据
arry = np.ones((3,3))
print("array的数据类型:",arry.dtype)

# 创建tensor
t = torch.tensor(arry)
print(t)

② torch.from_numpy(ndarray)

其中ndarray即为numpy数据,需要注意的一点是通过此种方法创建,tensor和ndarray是共享内存的,当修改一个数据时另一个数据也会随之改变。代码实现如下:

import torch
import numpy as np

# 创建numpy数据
arry = np.array([[1,2,3],[4,5,6]])
print("numpy:",arry)

# 创建tensor
t = torch.from_numpy(arry)
print("tensor:",t)

# 测试共享内存

arry[0][0] = 10
print("numpy:",arry)
print("tensor:",t)

2.依据数值创建:

① torch.zeros(size, out=None, dtype=None, layout=torch.strided,

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值