北海z 2023-02-25 22:21 采纳率: 66.7%
浏览 37
已结题

softmax之后值不在0-1之间是为什么


import torch
import torch.nn as nn
input_0 = torch.Tensor([1.4222e+01,  9.9372e+00,  2.5072e+00, -6.5985e+00, -1.0004e+01,
         -8.9475e+00, -1.0700e+01, -2.7447e+00, -4.8649e+00, -6.4698e+00,
         -4.4321e+00, -1.6125e+01, -1.2228e+01, -4.0457e+00,  6.3351e+00,
         -2.3921e+00, -1.1495e+01, -1.0952e+01])
input_1 = torch.Tensor([[1,2,3,4],[5,6,7,8]])

softmax_0 = nn.Softmax(dim=0)
softmax_1 = nn.Softmax(dim=1 )

output_0 = softmax_0(input_0)
output_1 = softmax_1(input_1)
output_2 = softmax_0(input_1)
a = softmax_0(output_0)

print(output_0)
print(output_1)
print(output_2)
print(a)

img

  • 写回答

3条回答 默认 最新

  • MarkHan_ 2023-02-25 22:51
    关注

    该回答引用GPTᴼᴾᴱᴺᴬᴵ
    softmax函数是用于将输入转换为概率分布的函数。在输出结果中,每个元素都应该是介于0到1之间的值。但是,由于计算机内部浮点数的精度问题,在使用softmax函数时可能会遇到这样的情况,输出结果中某些元素的值略大于1或略小于0,但是这些值应该是非常接近于1或0的。如果出现输出结果中某些元素的值明显偏离了0到1之间,那么可能是由于softmax函数的输入值存在较大的范围差异,导致指数函数计算出现了数值上溢或下溢,从而影响了softmax函数的输出结果。在这种情况下,可以尝试对输入值进行归一化或缩放等预处理,以缓解数值精度问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月20日
  • 已采纳回答 3月12日
  • 创建了问题 2月25日

悬赏问题

  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭