- 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])
标签:scalar,机器,tensor,torch,名字,PyTorch,vector,向量,Tensor
From: https://blog.csdn.net/BSCHN123/article/details/136713807