您的位置:首页 > 娱乐 > 八卦 > 国外商业网站_eyoucms模板_搜索引擎营销案例_智能营销方法

国外商业网站_eyoucms模板_搜索引擎营销案例_智能营销方法

2025/7/3 8:22:20 来源:https://blog.csdn.net/asdfg1258963/article/details/147247732  浏览:    关键词:国外商业网站_eyoucms模板_搜索引擎营销案例_智能营销方法
国外商业网站_eyoucms模板_搜索引擎营销案例_智能营销方法

理解 Softmax 在不同维度上的应用,关键在于明确 Softmax 的作用以及 dim 参数的意义。Softmax 的目标是将输入张量的某些元素转换为概率分布,使得这些元素的和为1。dim 参数决定了沿着哪个维度进行归一化操作。

1. Softmax 的基本原理

Softmax 函数的公式为:

Softmax ( x i ) = e x i ∑ j e x j \text{Softmax}(x_i) = \frac{e^{x_i}}{\sum_{j} e^{x_j}} Softmax(xi)=jexjexi
其中, x i x_i xi 是输入张量中的某个元素,分母是对所有相关元素的指数和进行归一化。

2. 不同维度上的应用

一维张量

对于一维张量,Softmax 的作用是将所有元素转换为概率分布,使得这些元素的和为1。例如:

import torch
x = torch.tensor([0.2370, 1.7276])
softmax = torch.nn.Softmax(dim=0)
output = softmax(x)
print(output)

输出:

tensor([0.1690, 0.8310])

这里,dim=0 表示对一维张量的所有元素进行归一化。因为一维张量只有一个维度,所以只能沿着这个维度操作。

二维张量

对于二维张量,Softmax 的行为取决于 dim 参数:

  • dim=0:沿着列方向(垂直方向)进行归一化。每一列的元素会被转换为概率分布,使得每一列的和为1。
  • dim=1:沿着行方向(水平方向)进行归一化。每一行的元素会被转换为概率分布,使得每一行的和为1。

例如:

x = torch.tensor([[72.1361, -120.3565]])
softmax_dim0 = torch.nn.Softmax(dim=0)
softmax_dim1 = torch.nn.Softmax(dim=1)output_dim0 = softmax_dim0(x)
output_dim1 = softmax_dim1(x)print("Softmax(dim=0):", output_dim0)
print("Softmax(dim=1):", output_dim1)

输出:

Softmax(dim=0): tensor([[1., 0.]])
Softmax(dim=1): tensor([[1.0000e+00, 0.0000e+00]])
  • Softmax(dim=0):因为输入张量只有一行,所以沿着列方向归一化时,每一列只有一个元素,归一化后仍然是1和0。
  • Softmax(dim=1):沿着行方向归一化,将这一行的元素转换为概率分布,使得这一行的和为1。

再看一个更复杂的例子:

x = torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
softmax_dim0 = torch.nn.Softmax(dim=0)
softmax_dim1 = torch.nn.Softmax(dim=1)output_dim0 = softmax_dim0(x)
output_dim1 = softmax_dim1(x)print("Softmax(dim=0):", output_dim0)
print("Softmax(dim=1):", output_dim1)

输出:

Softmax(dim=0): tensor([[0.0025, 0.0025, 0.0025],[0.9975, 0.9975, 0.9975]])
Softmax(dim=1): tensor([[0.0900, 0.2447, 0.6652],[0.0900, 0.2447, 0.6652]])
  • Softmax(dim=0):沿着列方向归一化,每一列的元素被转换为概率分布,使得每一列的和为1。
  • Softmax(dim=1):沿着行方向归一化,每一行的元素被转换为概率分布,使得每一行的和为1。

3. 总结

  • dim=0:沿着列方向归一化,适用于将每一列的元素转换为概率分布。
  • dim=1:沿着行方向归一化,适用于将每一行的元素转换为概率分布。

在实际应用中处理多分类问题时,通常对每一行(样本)进行归一化,因此使用 Softmax(dim=1)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com