我需要我的神经网络在A动作上输出N个分布。每个分布都应该通过softmax。那么每一行的总和应该显然是1,整个层的总和应该是N.在PyTorch中是否有这样的功能?
答案 0 :(得分:0)
使用softmax并指定行作为操作的维度
import torch.nn.Functional as F
x = ...# your N x A input
x_distribution = F.softmax(x, dim = 1)
答案 1 :(得分:0)
我认为使用转置很容易解决。这是我的解决方案:
data = torch.Tensor([[-0.4275, 2.0973],
[ 0.4284, 0.9128],
[ 0.1397, 1.3663],
[-0.4221, 2.0760]])
res = torch.softmax(data.T, dim=0).T
这里有:
tensor([[0.0741, 0.9259],
[0.3812, 0.6188],
[0.2268, 0.7732],
[0.0760, 0.9240]])