关于tensorflow softmax函数用法解析_python

来源:脚本之家  责任编辑:小易  

SO文件是Linux下共享库文件,它的文件格式被称为ELF文件格式。由于Android操作系统的底层基于Linux系统,所以SO文件可以运行在Android平台上。Android系统也同样开放了C/C++接口供开发者开发Native程序。由于基于虚拟机的编程语言JAVA更容易被人反编译,因此越来越多的应用将其中的核心代码以C/C++为编程语言,并且以SO文件的形式供上层JAVA代码调用,以保证安全性。扩展资料:so文件使用方法:(1)动态库的编译。这里有一个头文件:so_test.h,三个.c文件:test_a.c、test_b.c、test_c.c,我们将这几个文件编译成一个动态库:libtest.so。命令:$gcc test_a.c test_b.c test_c.c-fPIC-shared-o libtest.so 不用该标志外部程序无法连接。相当于一个可执行文件。(2)动态库的链接这里有个程序源文件 test.c 与动态库 libtest.so 链接生成执行文件 test:命令:$gcc test.c-L.-ltest-o test命令:$ldd test执行test,可以看到它是如何调用动态库中的函数的。参考资料来源:百度百科—SO(软件编程)www.zgxue.com防采集请勿采集本网。

如下所示:

So+形容词+be/V+主词+that+句子 so+助动词+主语,这种结构表示 主语也这样。so+主语+助动词,表示是的,他们是。是对前半句的再次肯定。为强调事物的特征。例如: [表示方式,方法,情况等]那么,

def softmax(logits, axis=None, name=None, dim=None): """Computes softmax activations. This function performs the equivalent of softmax = tf.exp(logits) / tf.reduce_sum(tf.exp(logits), axis) Args: logits: A non-empty `Tensor`. Must be one of the following types: `half`, `float32`, `float64`. axis: The dimension softmax would be performed on. The default is -1 which indicates the last dimension. name: A name for the operation (optional). dim: Deprecated alias for `axis`. Returns: A `Tensor`. Has the same type and shape as `logits`. Raises: InvalidArgumentError: if `logits` is empty or `axis` is beyond the last dimension of `logits`. """ axis = deprecation.deprecated_argument_lookup("axis", axis, "dim", dim) if axis is None: axis = -1 return _softmax(logits, gen_nn_ops.softmax, axis, name)

看是怎么个语境,for example, He is so afraid that he stands there for a long time. He is afraid any so he stand there for a long time. 前面是复合句,后面是并列句,前面表示如此

softmax函数的返回结果和输入的tensor有相同的shape,既然没有改变tensor的形状,那么softmax究竟对tensor做了什么?

so+主语+助动词 对说话zhidao人所说内容的肯定 he is hardworking. so he is.他确实是这样的。so+助动词专+主语 表示某人也是一样 he is hardworking. so am I.我也很努力。neither+主语+助动词

答案就是softmax会以某一个轴的下标为索引,对这一轴上其他维度的值进行 激活 + 归一化处理

一般来说,这个索引轴都是表示类别的那个维度(tf.nn.softmax中默认为axis=-1,也就是最后一个维度)

举例:

def softmax(X, theta = 1.0, axis = None): """ Compute the softmax of each element along an axis of X. Parameters ---------- X: ND-Array. Probably should be floats. theta (optional): float parameter, used as a multiplier prior to exponentiation. Default = 1.0 axis (optional): axis to compute values along. Default is the first non-singleton axis. Returns an array the same size as X. The result will sum to 1 along the specified axis. """ # make X at least 2d y = np.atleast_2d(X) # find axis if axis is None: axis = next(j[0] for j in enumerate(y.shape) if j[1] > 1) # multiply y against the theta parameter, y = y * float(theta) # subtract the max for numerical stability y = y - np.expand_dims(np.max(y, axis = axis), axis) # exponentiate y y = np.exp(y) # take the sum along the specified axis ax_sum = np.expand_dims(np.sum(y, axis = axis), axis) # finally: divide elementwise p = y / ax_sum # flatten if X was 1D if len(X.shape) == 1: p = p.flatten() return pc = np.random.randn(2,3)print(c)# 假设第0维是类别,一共有里两种类别cc = softmax(c,axis=0)# 假设最后一维是类别,一共有3种类别ccc = softmax(c,axis=-1)print(cc)print(ccc)

结果:

c:[[-1.30022268 0.59127472 1.21384177] [ 0.1981082 -0.83686108 -1.54785864]]cc:[[0.1826746 0.80661068 0.94057075] [0.8173254 0.19338932 0.05942925]]ccc:[[0.0500392 0.33172426 0.61823654] [0.65371718 0.23222472 0.1140581 ]]

可以看到,对axis=0的轴做softmax时,输出结果在axis=0轴上和为1(eg: 0.1826746+0.8173254),同理在axis=1轴上做的话结果的axis=1轴和也为1(eg: 0.0500392+0.33172426+0.61823654)。

这些值是怎么得到的呢?

以cc为例(沿着axis=0做softmax):

以ccc为例(沿着axis=1做softmax):

知道了计算方法,现在我们再来讨论一下这些值的实际意义:

cc[0,0]实际上表示这样一种概率: P( label = 0 | value = [-1.30022268 0.1981082] = c[*,0] ) = 0.1826746

cc[1,0]实际上表示这样一种概率: P( label = 1 | value = [-1.30022268 0.1981082] = c[*,0] ) = 0.8173254

ccc[0,0]实际上表示这样一种概率: P( label = 0 | value = [-1.30022268 0.59127472 1.21384177] = c[0]) = 0.0500392

ccc[0,1]实际上表示这样一种概率: P( label = 1 | value = [-1.30022268 0.59127472 1.21384177] = c[0]) = 0.33172426

ccc[0,2]实际上表示这样一种概率: P( label = 2 | value = [-1.30022268 0.59127472 1.21384177] = c[0]) = 0.61823654

将他们扩展到更多维的情况:假设c是一个[batch_size , timesteps, categories]的三维tensor

output = tf.nn.softmax(c,axis=-1)

那么 output[1, 2, 3] 则表示 P(label =3 | value = c[1,2] )

以上这篇关于tensorflow softmax函数用法解析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持真格学网。

Ubuntu安装tensorflow先安装python-dev,再安装tensorflow就好了sudo apt-get install python-devpip install内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • softmax函数原理及python实现过程解析
  • tensorflow实现softmax回归模型
  • 在tensorflow中实现leakyrelu操作详解(高效)
  • tensorflow常用函数api介绍
  • 6行python代码实现进度条效果(progress、tqdm、alive-progress&
  • python实现在idle中输入多行的方法
  • python写日志封装类实例
  • keras 读取多标签图像数据方式
  • python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等
  • python二进制读写及特殊码同步实现详解
  • python实现同一局域网下传输图片
  • python spyder界面无法打开的解决方法
  • python实发邮件实例详解
  • python模仿网页版微信发送消息功能
  • tensor flow 用什么方式安装好
  • 什么是SO文件?
  • 有一首英文歌女声 有一段歌词是so high so high so high so so high
  • 关于SO的用法
  • 关于SO引导的倒装句
  • 关于so的用法
  • 关于SO的用法!
  • 关于so much,too much,so many和too much的区别与用法
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全vbsdos/bathtahtcpythonperl游戏相关vba远程脚本coldfusionruby专题autoitseraphzonepowershelllinux shellluagolangerlang其它首页softmax函数原理及python实现过程解析tensorflow实现softmax回归模型在tensorflow中实现leakyrelu操作详解(高效)tensorflow常用函数api介绍6行python代码实现进度条效果(progress、tqdm、alive-progress&python实现在idle中输入多行的方法python写日志封装类实例keras 读取多标签图像数据方式python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等python二进制读写及特殊码同步实现详解python实现同一局域网下传输图片python spyder界面无法打开的解决方法python实发邮件实例详解python模仿网页版微信发送消息功能python入门教程 超详细1小时学会python 列表(list)操作方法详解python 元组(tuple)操作详解python 字典(dictionary)操作详解pycharm 使用心得(一)安装和首python strip()函数 介绍pycharm 2020最新永久激活码(附python 中文乱码问题深入分析python中使用xlrd、xlwt操作excepython科学计算环境推荐——anacpython正则表达式如何进行字符串替换实例python进阶学习之特殊方法实例详析在python的bottle框架中使用微信api的示例python实现dns正向查询、反向查询的例子python简单定义与使用二叉树示例python opencv检测目标颜色的实例讲解python3基于tcp实现cs架构文件传输python 读取excel文件生成sql文件实例详解python实现mysql的单引号字符串过滤方法python数据类型之tuple元组实例详解
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved