torch.nn.Softmax 中 dim 参数的用途是什么
What is the purpose of the dim parameter in torch.nn.Softmax
我不明白 dim 参数在 torch.nn.Softmax 中有什么用。有一条警告告诉我要使用它,我将其设置为 1,但我不明白我在设置什么。它在公式中的什么地方使用:
Softmax(xi)=exp(xi)/∑jexp(xj)
这里没有暗淡,那么它适用于什么?
torch.nn.Softmax 上的 Pytorch documentation 指出:
dim (int) – 将计算 Softmax 的维度(因此沿 dim 的每个切片总和为 1)。
例如,如果您有一个二维矩阵,您可以选择是否要将 softmax 应用于行或列:
import torch
import numpy as np
softmax0 = torch.nn.Softmax(dim=0) # Applies along columns
softmax1 = torch.nn.Softmax(dim=1) # Applies along rows
v = np.array([[1,2,3],
[4,5,6]])
v = torch.from_numpy(v).float()
softmax0(v)
# Returns
#[[0.0474, 0.0474, 0.0474],
# [0.9526, 0.9526, 0.9526]])
softmax1(v)
# Returns
#[[0.0900, 0.2447, 0.6652],
# [0.0900, 0.2447, 0.6652]]
注意 softmax0 的列如何加到 1,而 softmax1 的行如何加到 1。
我不明白 dim 参数在 torch.nn.Softmax 中有什么用。有一条警告告诉我要使用它,我将其设置为 1,但我不明白我在设置什么。它在公式中的什么地方使用:
Softmax(xi)=exp(xi)/∑jexp(xj)
这里没有暗淡,那么它适用于什么?
torch.nn.Softmax 上的 Pytorch documentation 指出: dim (int) – 将计算 Softmax 的维度(因此沿 dim 的每个切片总和为 1)。
例如,如果您有一个二维矩阵,您可以选择是否要将 softmax 应用于行或列:
import torch
import numpy as np
softmax0 = torch.nn.Softmax(dim=0) # Applies along columns
softmax1 = torch.nn.Softmax(dim=1) # Applies along rows
v = np.array([[1,2,3],
[4,5,6]])
v = torch.from_numpy(v).float()
softmax0(v)
# Returns
#[[0.0474, 0.0474, 0.0474],
# [0.9526, 0.9526, 0.9526]])
softmax1(v)
# Returns
#[[0.0900, 0.2447, 0.6652],
# [0.0900, 0.2447, 0.6652]]
注意 softmax0 的列如何加到 1,而 softmax1 的行如何加到 1。