python softmax

举报
风吹稻花香 发表于 2021/06/05 22:46:37 2021/06/05
【摘要】 softmax后,直接获取第几维的分数,就是预测值 import torch import numpy as np import torch.nn.functional as torch_F data=np.array([[[0.5,-0.5],[-0.05,-0.05]]]) t_data = torch.from_numpy(data.astype(np.float...

softmax后,直接获取第几维的分数,就是预测值


  
  1. import torch
  2. import numpy as np
  3. import torch.nn.functional as torch_F
  4. data=np.array([[[0.5,-0.5],[-0.05,-0.05]]])
  5. t_data = torch.from_numpy(data.astype(np.float32))
  6. scores = torch_F.softmax(t_data, dim=-1)
  7. print(scores)
  8. scores = scores.squeeze(0).data.cpu().numpy()[:, 1]
  9. print(scores)

softmx 计算公式如下,值越大,分数越高,不是正比例关系,能避免求和或乘法-0.5 和0.5的符号带来的抵消关系。

两组值是不一样的:


  
  1. import numpy as np
  2. z = np.array([1.0, 2.0])
  3. print(np.exp(z)/sum(np.exp(z)))
  4. z = np.array([0.1, 0.2])
  5. print(np.exp(z)/sum(np.exp(z)))

 


  
  1. import math
  2. z = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0]
  3. z_exp = [math.exp(i) for i in z]
  4. print(z_exp) # Result: [2.72, 7.39, 20.09, 54.6, 2.72, 7.39, 20.09]
  5. sum_z_exp = sum(z_exp)
  6. print(sum_z_exp) # Result:

文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/104666276

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。