tensorflow当中sigmoid以Softmax在交叉熵cross_entropy_with_logits中计算原理以及代码实证
来源:互联网 发布:网络广播电台软件 编辑:程序博客网 时间:2024/05/16 05:58
总论:
支持原创精神,转载请注明来源!
sigmoid主要用于二分类问题,其计算定义当中含有非此即彼,而对于用于多分类的softmax则没有这种意思,理由如下
注意的得,sigmiod和softmax计算有两步不一样,但是可以从在交叉熵的计算可以看出明显的区别,即sigmiod的非此即彼
计算定义:
sigmiod未知:
y = np.array([[1,0,0],[0,1,0],[0,0,1]]).astype(np.float64)logits = np.array([[12,3,2],[3,10,1],[1,2,5]]).astype(np.float64)y_logits = tf.nn.sigmoid(logits)cross_entropy1 = -(y*tf.log(y_logits)+(1-y)*tf.log(1-y_logits))#!!!!交叉熵cross_entropy2 = tf.nn.sigmoid_cross_entropy_with_logits(labels=y, logits=logits)with tf.Session() as sess: cross_entropy2 = sess.run(cross_entropy2) cross_entropy1 = sess.run(cross_entropy1) y_logits = sess.run(y_logits) print(cross_entropy2 ) print(cross_entropy1)
可以看到 分解动作的cross_entropy和tf中sigmoid_cross_entropy_with_logits的运算结果是一样的,但是y_logits的值不知道如何计算,希望有大婶帮忙解说一下,所以整个sigmoid_cross_entropy_with_logits过程未完全分解成功!
softmax如下:
import tensorflow as tfimport mathy_ = tf.constant([[0.0, 0.0, 1.0], [0.0, 0.0, 1.0], [0.0, 0.0, 1.0]]) #真实标签logits = tf.constant([[1.0, 2.0, 3.0], [1.0, 2.0, 3.0], [1.0, 2.0, 3.0]])#预测值y = tf.nn.softmax(logits)y_softmax = math.e**1/(math.e**1+math.e**2+math.e**3)cross_entropy2 = tf.nn.softmax_cross_entropy_with_logits(logits, y_)cross_entropy = -(y_ * tf.log(y))#!!!!!交叉熵with tf.session() as sess: softmax = sess.run(y) cross_entropy2 = sess.run( cross_entropy2 ) cross_entropy = sess.run(cross_entropy) print(cross_entropy2 ) print(cross_entropy)
可以看到 分解动作的cross_entropy和tf中softmax_cross_entropy_with_logits的运算结果是一样的,注意到y_softmax的值等于cross_entropy[0,0]的值,所以整个softmax_cross_entropy_with_logits过程分解成功!
阅读全文
0 0
- tensorflow当中sigmoid以Softmax在交叉熵cross_entropy_with_logits中计算原理以及代码实证
- tensorflow-softmax回归及交叉熵函数
- softmax_cross_entropy softmax交叉熵 tensorflow numpy
- sigmoid,softmax
- Tensorflow交叉熵计算错误
- tensorflow入门7 softmax函数和交叉熵损失函数
- Softmax和交叉熵
- 神经网络四:Softmax以及与Sigmoid的关系
- TensorFlow不同交叉熵计算方式
- SoftMax原理及代码
- sigmoid和softmax总结
- sigmoid和softmax总结
- sigmoid和softmax总结
- sigmoid和softmax总结
- sigmoid和softmax总结
- sigmoid和softmax总结
- sigmoid和softmax总结
- 为什么交叉熵损失可以提高具有sigmoid和softmax输出的模型的性能,而使用均方误差损失则会存在很多问题
- TabHost选项卡一直悬浮在输入法上方
- Codeforces Round #444 (Div. 2) C. Solution for Cube【模拟】
- jsp上传文件,并存入数据库
- Java爬虫学习:利用HttpClient和Jsoup库实现简单的Java爬虫程序
- linux读写文件操作gpio
- tensorflow当中sigmoid以Softmax在交叉熵cross_entropy_with_logits中计算原理以及代码实证
- (4.1.37.5)自定义控件的xml属性:declare-styleable
- Ubuntu14.04 gedit编辑器 中文乱码
- java中的线程
- 解决小米6无法安装Android Studio的app
- jenkins 系统设置
- Rhyme/Java 单例模式反射和反序列化漏洞解决
- git status
- VS 2015链接错误:unresolved external symbol