Pytorch Softmax用法

原文链接:https://blog.csdn.net/sinat_40258777/article/details/120275989

pytorch中的softmax主要存在于两个包中分别是:
torch.nn.Softmax(dim=None)
torch.nn.functional.softmax(input, dim=None, _stacklevel=3, dtype=None)
下面分别介绍其用法:
torch.nn.Softmax
torch.nn.Softmax中只要一个参数:来制定归一化维度如果是dim=0指代的是行,dim=1指代的是列。

import torch 
import torch.nn as nn
input_0 = torch.Tensor([1,2,3,4])
input_1 = torch.Tensor([[1,2,3,4],[5,6,7,8]])
#规定不同方向的softmax
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)
#输出
print(output_0)
print(output_1)
print(output_2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
输出:

tensor([0.0321, 0.0871, 0.2369, 0.6439])
tensor([[0.0321, 0.0871, 0.2369, 0.6439],
        [0.0321, 0.0871, 0.2369, 0.6439]])
tensor([[0.0180, 0.0180, 0.0180, 0.0180],
        [0.9820, 0.9820, 0.9820, 0.9820]])
1
2
3
4
5
torch.nn.functional.softmax
与上面介绍不同的是torch.nn.Softmax,多了一个参数(input:输入的张量)

import torch 
import  torch.nn.functional as F
input_0 = torch.Tensor([1,2,3,4])
input_1 = torch.Tensor([[1,2,3,4],[5,6,7,8]])
output_0 = F.softmax(input_0)
output_1 = F.softmax(input_1,dim=0)
output_2 = F.softmax(input_1,dim=1)
print(output_0)
print(output_1)
print(output_2)
1
2
3
4
5
6
7
8
9
10
输出

tensor([0.0321, 0.0871, 0.2369, 0.6439])
tensor([[0.0180, 0.0180, 0.0180, 0.0180],
        [0.9820, 0.9820, 0.9820, 0.9820]])
tensor([[0.0321, 0.0871, 0.2369, 0.6439],
        [0.0321, 0.0871, 0.2369, 0.6439]])
1
2
3
4
5
对于log_softmax和softmax用法一模一样,但是输出结果不一样本
对于一些较大的数可以采取log_softmax,来防止溢出

简单明了的Softmax解析相关推荐

  1. 也许开发需要的只是一份简单明了的表格

    本人原先是一名移动端开发工程师,本来是要一条道走到黑,准备做个it大咖,结果事与愿违,走到了测试的道路上.今天介绍一件通信测试上发生的事. 公司为青海移动做个项目,处于系统测试阶段,对各个系统进行测试 ...

  2. python编写登录_通过Python编写一个简单登录功能过程解析

    通过Python编写一个简单登录功能过程解析 需求: 写一个登录的程序, 1.最多登陆失败3次 2.登录成功,提示欢迎xx登录,今天的日期是xxx,程序结束 3.要检验输入是否为空,账号和密码不能为空 ...

  3. 前端神器之Sublime Text2/3简单明了使用总结

    为什么叫神器呢? 我总结如下: 第一:也是最重要的,它占内存很小(就如同notepad++那般迅速打开,所以那款其实也不错~).一般IDE比如WebStorm(它也是一款神器来着),Aptana(也比 ...

  4. Python面向对象编程(类编程)中self的含义详解(简单明了直击本质的解释)

    以下是博主认为的对self讲解得比较透彻又简洁明了的资料. 上面的资料把这个问题说得简单明了,大家认真看一遍相信就对self有个深入的了解了. 总结一下: 在Python为面向对象编程中,成员函数被调 ...

  5. 最简单明了的QQ在线客服代码

    最近老用来QQ在线客服代码,网上找的都不太顺手,自己写一个简单,只上下飘动. 源码下载:网站被封了,源码下载不了,但是这个源码很简单,相信有点基础的人都知道怎样用. floatAd.js代码如下: v ...

  6. 简单明了的正则表达式汇总

    简单明了的正则表达式汇总!!! 资源来源:编程胶囊官网 基础正则总结 实例 描述 [Pp]ython 匹配"Python"或"python". rub[ye] ...

  7. 简单明了实现Java地图小程序项目

    简单明了实现Java地图小程序项目 ✨博主介绍 前言 地图概述 地图技术 地图应用场景 网约车服务 智能穿戴 智能物流 智能景区 车联网 国内常见地图 地图API与搜索 JS API GL(演示百度地 ...

  8. 【log4j 2.x】【log4j日志升级漏洞修复】log4j2日志 [简单明了][一眼就会]

    大多同学说的不是很全,写的不是很具体. 在此,本人出一篇简单明了的详细教程: 先看效果: 目录: 1.加载log4j 2包 2.配置xml文件 3.写测试并运行 4.log指定文件:自动打印info. ...

  9. pattern java怎么用_Pattern Java设计模式23种每个一个举例使用,名称直接对应英文,简单明了 Develop 238万源代码下载- www.pudn.com...

    文件名称: Pattern下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 156 KB 上传时间: 2014-05-17 下载次数: 2 提 供 者: 王小雄 详 ...

最新文章

  1. 准IT工作者如何择师、如何学习
  2. server 2008 mysql 报错 0xc000007b_docker插件部署项目,volumes报错invalid volume specification...
  3. 如何在Oracle11中配置st_shapelib
  4. MVC3教程之新手入门(转)
  5. C++ Primer 5th笔记(chap 19 特殊工具与技术)type_info 类
  6. jquery 如何保存拖动空间的位置
  7. loadruner11 socket脚本-10053错误
  8. (Matlab问题解决)运行matlab程序后,工作区不能显示变量
  9. linux sftp密码错误,linux个别用户sftp坏掉,验证密码后卡住, 大概是什么问题?...
  10. POJ 1141 Brackets Sequence
  11. Detour hook库x64编译
  12. 软件工程之软件质量管理
  13. 用C# 设置excel单元格格式
  14. html caption 靠左,HTML caption align 属性
  15. 【免费资源分享】给大家分享一款自己编写的免费语音合成软件,免费文字转语音,无需提供任何接口么,傻瓜式使用!
  16. 产品经理,原型设计之前你要做些什么?
  17. SUDA歌单管理软件,支持Spotify\Tidal\QQ\网易云导入导出歌单
  18. uniapp动态图片加载不出来
  19. NDB和InnoDB存储引擎比较
  20. 我的电脑硬盘由SSD+HD组合,在HD上成功安装CentOS6.9

热门文章

  1. iOS-利用UIScrollView实现展示图片的无限滚动及自动滚动 - 郭晓
  2. Python-包管理器
  3. 《Honey Select》捏人剖析
  4. CPVC电力管的耐水性怎么样
  5. 显示器切换服务器用什么键,电脑显示器切换器购买要注意什么 哪款电脑切换器好用...
  6. Premiere Pro文件的压缩类型不受支持的解决办法
  7. 谷歌版ChatGPT灾难级发布,市值一夜狂跌7000亿,熬夜网友:退钱!
  8. 利用Anaconda Navigator打包python文件为exe格式的方法
  9. 前馈神经网络(一 神经元)
  10. 移动app开发流程,app开发步骤