torch.nn.functional.softmax输出结果不准确的问题求助
torch.nn.functional.softmax输出结果不准确的问题求助
我最近尝试从零实现掩码自注意力机制,但在计算相似度分数的softmax时得到了奇怪的结果。我查了官方文档也翻了不少相关问题,还是搞不懂问题出在哪。下面是我搭的测试用例和对应的输出结果:
我运行的测试代码:
print(sims) print(torch.nn.functional.softmax(sims, dim=1))
得到的输出:
tensor([[ 1., 2., 3., 4., 5., 6.], [ 7., 8., 9., 10., 11., 12.], [13., 14., 15., 16., 17., 18.], [19., 20., 21., 22., 23., 24.], [25., 26., 27., 28., 29., 30.], [31., 32., 33., 34., 35., 36.], [37., 38., 39., 40., 41., 42.], [43., 44., 45., 46., 47., 48.], [49., 50., 51., 52., 53., 54.], [55., 56., 57., 58., 59., 60.]]) tensor([[0.0043, 0.0116, 0.0315, 0.0858, 0.2331, 0.6337], [0.0043, 0.0116, 0.0315, 0.0858, 0.2331, 0.6337], [0.0043, 0.0116, 0.0315, 0.0858, 0.2331, 0.6337], [0.0043, 0.0116, 0.0315, 0.0858, 0.2331, 0.6337], [0.0043, 0.0116, 0.0315, 0.0858, 0.2331, 0.6337], [0.0043, 0.0116, 0.0315, 0.0858, 0.2331, 0.6337], [0.0043, 0.0116, 0.0315, 0.0858, 0.2331, 0.6337], [0.0043, 0.0116, 0.0315, 0.0858, 0.2331, 0.6337], [0.0043, 0.0116, 0.0315, 0.0858, 0.2331, 0.6337], [0.0043, 0.0116, 0.0315, 0.0858, 0.2331, 0.6337]])
举个具体的例子,我原本期望第一行[ 1., 2., 3., 4., 5., 6.]经过softmax计算后,能得到这样的结果:
[ .047, .095, .142, .19, .238, .285]
只有这样的结果才是正确的softmax注意力占比,我需要用这个结果来处理我的value张量,但现在的输出明显不符合预期,有没有大佬能帮我排查下问题?
备注:内容来源于stack exchange,提问作者Egraha
相关产品推荐
相关产品推荐

