张量、向量、标量的区别

标量是0阶张量(一个数),是1*1的;
向量是一阶张量,是1*n的;
张量可以给出所有坐标间的关系,是n*n的。
所以通常有人说将张量(n*n)reshape成向量(1*n),其实reshape过程中并没有发生大的变化。


这里写图片描述

这里写图片描述

这里写图片描述

除此之外,张量还可以是四维的、五维的。

参考地址:https://www.zhihu.com/question/22232943
https://www.jianshu.com/p/5ae644748f21

### PyTorch中的标量向量张量 #### 标量 在PyTorch中,标量可以视为零维张量。它只包含单个数值而没有任何方向属性。创建一个标量非常简单: ```python import torch scalar = torch.tensor(5.0) print(scalar) # 输出:tensor(5.) ``` 此代码片段展示了如何定义并打印一个简单的浮点型标量[^1]。 #### 向量 向量是一维数组,在PyTorch里表现为一维张量。下面是一个例子展示怎样构建以及执行基本算术操作于两个相同大小的一维张量之间: ```python v = torch.arange(4.0) # 执行加法、乘法等运算 x = torch.tensor([2.0]) print(v + x) print(v * x) print(v / x) print(torch.pow(v, x)) # 幂次方也可以通过torch.pow实现 ``` 这段程序说明了向量间的四则运算方式及其输出形式。 #### 张量 张量是多维数组的泛化概念;它可以代表任意数量维度的数据结构。除了上述提到的一维(即向量),还有二维以上的高阶张量用于表示更复杂的数据关系。比如矩阵就是一个特殊的二阶张量。这里给出一些常见的张量操作实例: - **结构变化** - `squeeze()` `unsqueeze()` 函数用来调整特定位置上的尺寸为1的轴。 ```python t = torch.rand((1, 3)) compressed_t = t.squeeze() expanded_t = t.unsqueeze(dim=0) ``` - **数学计算** - 对整个张量应用相同的数学函数或与其他同形状张量做逐元素相加减除幂等常规代数运算是可行的。 这些特性使得张量非常适合处理图像识别等领域内的大规模数据集[^2]。 对于实际应用场景而言,如果考虑房屋特征描述,则每栋房子的信息可由多个参数组成的一个向量表达出来;当扩展到众多房产记录时便构成了更高层次的张量对象——例如m×n矩阵(m套房子各自具有n项属性)[^3]。 最后值得注意的是,在某些情况下我们可能还需要对标量或者张量求导以便优化模型性能等问题上发挥作用。这可以通过设置`requires_grad=True`来指示某个变量参与自动微分机制从而获取梯度信息[^4]。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值