从caffe中我们看到softmax有下面这些参数

// Message that stores parameters used by SoftmaxLayer, SoftmaxWithLossLayer
message SoftmaxParameter {enum Engine {DEFAULT = 0;CAFFE = 1;CUDNN = 2;}optional Engine engine = 1 [default = DEFAULT];// The axis along which to perform the softmax -- may be negative to index// from the end (e.g., -1 for the last axis).// Any other axes will be evaluated as independent softmaxes.optional int32 axis = 2 [default = 1];
}

一般来说axis也不需要修改,默认设为1,即在c上做计算。
那么设置不同的axis,结果有什么不同?我们举个例子一目了然;

import tensorflow as tf
import numpy as npa = np.array([[1, 2, 3], [1, 2, 3]])
a = tf.cast(a, tf.float32)
#>>> a
#tf.Tensor: shape=(2, 3), dtype=float32, numpy=
#array([[1., 2., 3.],
#       [1., 2., 3.]], dtype=float32)>
# s1 = tf.nn.softmax(a,axis=0)
print(s1)
#tf.Tensor(
#[[0.5 0.5 0.5]
#[0.5 0.5 0.5]], shape=(2, 3), dtype=float32)s2 = tf.nn.softmax(a,axis=1)
print(s2)
#tf.Tensor(
#[[0.09003057 0.24472848 0.66524094]
#[0.09003057 0.24472848 0.66524094]], shape=(2, 3), dtype=float32)

我们来看看计算过程:
axis = 0时(表示纵轴,方向从上到下)


axis = 1时(表示横轴,方向从左到右)



再举一个三维数组深入理解一下

import tensorflow as tf
import numpy as npa = np.array([[[1, 2, 3], [1, 2, 3]],[[4, 5, 6], [4, 5, 6]]])
a = tf.cast(a, tf.float32)
#>>> a
#<tf.Tensor: shape=(2, 2, 3), dtype=float32, numpy=
#array([[[1., 2., 3.],
#        [1., 2., 3.]],
#
#       [[4., 5., 6.],
#        [4., 5., 6.]]], dtype=float32)>
#
s1 = tf.nn.softmax(a,axis=0)
print(s1)
#tf.Tensor(
#[[[0.04742587 0.04742587 0.04742587]
#  [0.04742587 0.04742587 0.04742587]]
#
# [[0.95257413 0.95257413 0.95257413]
#  [0.95257413 0.95257413 0.95257413]]], shape=(2, 2, 3), dtype=float32)s2 = tf.nn.softmax(a,axis=1)
print(s2)
#tf.Tensor(
#[[[0.5 0.5 0.5]
#  [0.5 0.5 0.5]]
#
# [[0.5 0.5 0.5]
#  [0.5 0.5 0.5]]], shape=(2, 2, 3), dtype=float32)s3 = tf.nn.softmax(a,axis=2)
print(s3)
#tf.Tensor(
#[[[0.09003057 0.24472848 0.66524094]
#  [0.09003057 0.24472848 0.66524094]]
#
# [[0.09003057 0.24472848 0.66524094]
#  [0.09003057 0.24472848 0.66524094]]], shape=(2, 2, 3), dtype=float32)

计算过程如下:
axis=0时



。。。再来重复上面3个计算3次

axis=1时(1和2的计算和上面二维差不多)



。。。


axis=2时





softmax中axis参数相关推荐

  1. Numpy学习之——numpy.mean中axis参数用法

    参考:https://blog.csdn.net/m0_37561765/article/details/78187700 首先官网里有写:  numpy.mean(a, axis=None, dty ...

  2. numpy.sum中axis参数用法解析

    已知numpy的对象为数组,当数组的维度为n时,axis的取值范围为range(n). 又知numpy是对元素进行操作,当axis取特定值时,即相应指令对该维度元素进行操作.示例如下: data = ...

  3. python Dataframe apply()自定义函数中axis参数

    缺少axis=1,会报错,提交次数错误,让你百思不得其解. df_date.apply()函数难道不是默认用于列的吗?_? df_data_dep = df_work_data[df_work_dat ...

  4. numpy中方法参数axis取值理解

    numpy中方法参数axis取值理解 首先不要使用什么横纵轴去理解,因为时间长了就忘记了,而且如果a是一个三维数组就没法解释了. axis等于0时,在shape中表示的是二维数组.那么np.amin( ...

  5. 理解np.max、np.min、np.argmax、np.argmin以及np.sum中的axis参数

    np.max.np.min.np.argmax.np.argmin以及np.sum方法均可设置axis参数,设置axis参数后,对应地,函数方法将沿着axis代表的轴的方向进行相应的数学运算.进行数学 ...

  6. Pytorch中torch.nn.Softmax的dim参数含义

    自己搞了一晚上终于搞明白了,下文说的很透彻,做个记录,方便以后翻阅 Pytorch中torch.nn.Softmax的dim参数含义

  7. Python|详解Python中的axis参数

    在我们使用Python中的Numpy和Pandas进行数据分析的时候,经常会遇到一个让人感到头痛的参数--axis,本文让我们换一个角度来重新认识一下axis. 一.axis简介 通常情况下我们都会赋 ...

  8. R语言使用epiDisplay包的summ函数计算dataframe中指定变量在不同分组变量下的描述性统计汇总信息并可视化有序点图、自定义cex.Y.axis参数设置Y轴轴标签字体的大小

    R语言使用epiDisplay包的summ函数计算dataframe中指定变量在不同分组变量下的描述性统计汇总信息并可视化有序点图.自定义cex.Y.axis参数设置Y轴轴标签字体的大小(名称.有效值 ...

  9. ML之XGBoost:XGBoost参数调优的优秀外文翻译—《XGBoost中的参数调优完整指南(带python中的代码)》(二)

    ML之XGBoost:XGBoost参数调优的优秀外文翻译-<XGBoost中的参数调优完整指南(带python中的代码)>(二) 目录 2. xgboost参数/XGBoost Para ...

最新文章

  1. 一份超详细的数据科学路线图!
  2. Cacti/Nagios监控系统应用场景
  3. openssl https 单向认证连接成功示例
  4. NSTimeInterval和CMTime
  5. matlab 球坐标绘图,MATLAB绘制地图
  6. mysql实现主从复制
  7. iconfont 无法导入 svg_Figma绘制图标上传至iconfont的正确姿势
  8. vue key重复_Vue 前端面试题
  9. JavaScript 图像延迟加载库 Echo.js的简单使用
  10. Ubuntu16.04下keras安装
  11. 根据缺口的模式选股买股票,python 学习代码
  12. 测试用例设计方法——正交表详解
  13. python填空题题库_Python题库——Python笔试填空题
  14. App中自动生成二维码
  15. Python初学系列——天天向上的力量
  16. Ucenter实现多个网站同步登录
  17. BUUCTF misc 专题(92)[XMAN2018排位赛]通行证
  18. ASCII、Unicode、UTF-8 和 Base64 等编码
  19. 【Python笔记】列表基础操作 :创建,增加、删除、查询。附加:练习题。用简单代码解释。
  20. 韩信点兵-输出韩信至少拥有的士兵人数。

热门文章

  1. Linux suspend流程
  2. eclipse android用真机模拟,eclipse--解决Android模拟器端口被占用问题的办法
  3. 公共建筑能耗监控节能方案改善措施及系统介绍
  4. CxFreeze打包python的exe
  5. iconMoon---小图标小记
  6. 【企业资源计划ERP】,描述该供应商背景;阐述其ERP产品的各项功能,并画出功能结构图;阐述其产品特点及适用行业(至少3个),并针对每个行业至少举出一个具体的案例。
  7. ROS teb_local_planner使用
  8. html 内容不换行,css如何设置div内容不换行?
  9. 良心推荐:免费云计算/存储/数据库资源汇总!
  10. 乐观锁、悲观锁、分布式锁的总结