机器学习 - PyTorch中常使用到的名字解释

本文介绍了PyTorch中的Tensor数据结构,它是多维数组,支持CPU和GPU计算,具有数据类型一致性、自动求导功能以及丰富的数学和张量操作。文章详细阐述了标量和向量在深度学习中的角色,以及如何在PyTorch中创建和操作不同维度的Tensor,包括1D、2D和3D实例。
摘要由CSDN通过智能技术生成
  • Tensor (张量): Tensor是一个类似于NumPy数组的多维数组结构,可以在CPU或GPU上进行并行计算。Tensor是PyTorch中最基本的数据结构。Tensor represents data in a numerical way. 它具有以下几个重要的特点和用途:
    • 多维数组:Tensor可以是任意维度的数组,可以是0维 (标量),1维(向量),2维(矩阵),3维或更高维。
    • 数据类型:Tensor中的元素具有相同的数据类型,包括浮点型,整型,布尔型等。PyTorch提供了多种数据类型的Tensor, 如 torch.float32, torch.int64, torch.bool 等。
    • 自动求导:Tensor支持自动求导功能,可以用于构建和训练深度学习模型。在Tensor上执行的操作将被记录下来,从而可以通过反向传播算法计算梯度。
    • 丰富操作:PyTorch提供了丰富的Tensor操作,包括数学运算,线性代数,统计运算,张量操作等,可以方便地进行数据处理和模型构建。

举个例子: 你可以来描述一张image

# Tensor representation of image 
[3, 214, 214]  # 对应image的是 [color_channel (RGB), height pixels, width pixels]
  • Scalar (标量):A scalar is a sinlge number and it is a zero-dimension tensor in tensor. 标量就是一个单独的数,没有方向或者其他附加属性。在深度学习和机器学习中,标量经常用于表示损失函数的值,模型参数的值等简单的数值。

举个例子:

# Scalar 
scalar = torch.tensor(2)
print(scalar)  # tensor(2) 
# 输出 tensor(2) 的原因是该 scalar 的类型是 torch.Tensor.

# 可以使用 ndim 来获取该 scalar 的维度,判断是否是0维度
# ndim():Returns the number of dimensions of self tensor. 
print(scalar.ndim())  # 0

# 可以将 tensor(2) 变成整数类型
# item() 是用于将包含单个元素的Tensor转换为Python标量值的方法。
print(scalar.item())  # 7

  • Vector (向量): 在深度学习中,vector具有多种用途:
    • 表示输入特征和输出预测:在深度学习模型中,通常将输入数据和输出预测表示为向量。例如:在图像分类任务中,将图像的像素值表示为向量作为输入特征;将模型对图像所属类别的预测概率表示为向量作为输出预测。
    • 表示模型参数:深度学习模型的参数通常表示为向量。例如,在神经网络中,每一层的权重矩阵和偏置向量都是模型的参数,它们被表示为向量。
    • 表示中间层的激活值:例如,在神经网络的前向传播过程中,每一层的输入经过加权和与激活函数处理后得到的输出就是一个向量。
    • 计算损失函数:损失函数通常接受模型的预测输出和真实标签作为输入,计算它们之间的差距。这些输入数据也通常表示为向量。
    • 梯度下降更新参数:深度学习模型通常使用梯度下降算法来更新模型参数,梯度也是一个向量,表示损失函数对模型参数的偏导数。

下面是python的例子,最基本的向量表示方式是使用列表或数组来存储数据。

import numpy as np

vector_list = [1,2,3,4]

vector_array = np.array([1,2,3,4])
import torch 

vector_tensor = torch.tensor([1,2])
print(vector_tensor)  # tensor([1,2])

# Check the number of dimensions of vector
print(vector.ndim())  # 1
# 可以通过数左边的 [ 有多少个,那么结果就有多少个

# 检测一个vector里有多少个elements
print(vector.shape())  # torch.Size([2]), 原因是有两个元素在方括号里,([7,7]) 

在 tensor 里,通过数左边outside方括号 [ 有多少个,就可以知道该tensor的dimension了。


用PyTorch来创建1维,2维,3维

# 创建1维,也就是 vector
vector = torch.tensor([9,9])

# 创建2维,也就是 matrix
matrix = torch.tensor([[7, 8], [9, 10]])

# 创建3维
TENSOR = torch.tensor([[[1,2,3,4], [4,5,6,6], [1,7,8,9]]])
print(TENSOR.shape) # torch.size([1,3,4]) 因为只有1个三维,三维里又有3个内套数组,每个数组里有4个元素

TENSOR_One = torch.tensor([
    [
      [1,2,3,4],
      [3,6,9,0]
    ],
    [
      [3,5,1,7],
      [9,0,1,4]
    ]
])
print(TENSOR_ONE.shape)  # torch.size([2,2,4])

如果像下面这样构建3维,就报错。必须要保证每个内套里的数组长度是一样的

TENSOR = torch.tensor([
    [
      [1,2,3,4],
      [3,6,9,0],
      [1,1,1,1]
    ],
    [
      [3,5,1,7],
      [9,0,1,4]
    ]
])

# len(TENSOR[0]) 和 len(TENSOR[1]) 不一致

看到这,点个赞再走呗~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值