一文搞懂!Python中的shape[-1]、shape[0]、shape[1]、shape[2]是指什么?

本文解释了在Python的深度学习中,张量的shape属性如何表示不同维度的大小,包括向量的长度、矩阵的行数和列数以及图片的高宽和通道数。作者通过实例演示了shape[0],shape[1],shape[2],shape[-1]的具体含义。
摘要由CSDN通过智能技术生成

在这里插入图片描述

初学深度学习,在很多代码中都能见到shape[0],那么在python中,shape[-1]、shape[0]、shape[1]、shape[2]都是指什么呢?让本文来为你答疑解惑吧~

要谈python中的shape属性,必须要说Tensor:

Tensor 中文称为 张量(可以看做是一个多维数组),是 PyTorch 中最基本的数据类型。在数学中,标量是一个只有大小没有方向的量,如:1、2、3 等。向量是既有大小又有方向的量(一维数组),如 A = (x0, y0, z0)。矩阵是由多个向量组成的二维数组。

实际上,标量、向量和矩阵等都可以看做是张量的特例,标量是零维张量,向量是一维张量,矩阵是二维张量,图片(RGB)是三维张量

其实,对于n维张量来说,shape[i]就是指它的第 i 维的大小(0 <= i <= n-1 ),而shape[-1]就是指它最后一维的大小。

因此,在深度学习过程中最常处理的矩阵、图片都可以转化为Tensor进行处理,并且使用shape属性获取它们相应维度的大小,请看下例:

一、向量

import torch

#定义向量
x = torch.tensor([2, 3, 4, 5])
#第0维度是向量的长度
print("我是向量的第0维度大小:", x.shape[0])
print("我是向量的最后一维度大小:", x.shape[-1])
  • shape[0]反映第0维度的大小,是向量的长度
******输出******
我是向量的第0维度大小: 4
我是向量的最后一维度大小: 4

二、矩阵

#定义矩阵
y = torch.tensor([[2, 3, 4, 3, 6, 8],
                 [1, 8, 9, 5, 0, 1],
                 [2, 0, 2, 2, 7, 1]])
#第0维度是矩阵的行数
print("我是矩阵的第0维度大小:", y.shape[0])
#第1维度是矩阵的列数
print("我是矩阵的第1维度大小:", y.shape[1])
print("我是矩阵的最后一维度大小:", y.shape[-1])
  • shape[0]反映第0维度的大小,是矩阵的行数
  • shape[1]反映第1维度的大小,是矩阵的列数
******输出******
我是矩阵的第0维度大小: 3
我是矩阵的第1维度大小: 6
我是矩阵的最后一维度大小: 6

三、图片

#读取图片
import cv2

#修改为自己的图片地址
img = cv2.imread("C:/Users/86185/Desktop/1.png", 1)
#第0维度是图片的高度
print("我是图片的第0维度大小:", img.shape[0])
#第1维度是图片的宽度
print("我是图片的第1维度大小:", img.shape[1])
#第2维度是图片的通道数
print("我是图片的第2维度大小:", img.shape[2])
print("我是图片的最后一维度大小:", img.shape[-1])
  • shape[0]反映第0维度的大小,是图片的高度
  • shape[1]反映第1维度的大小,是图片的宽度
  • shape[2]反映第2维度的大小,是图片的通道数
******输出******
我是图片的第0维度大小: 274
我是图片的第1维度大小: 1089
我是图片的第2维度大小: 1089
我是图片的最后一维度大小: 3

写在后面

这个专栏主要是我在实现深度学习项目中总结的一些问题,以备未来笔试和面试之需,不过由于学习的不深入,也只是走马观花,很多问题总结得也不是很透彻,望读者见谅,如果有错误和不足之处,还望大家在评论区指出。希望能给大家的学习带来一点帮助,共同进步!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值