一、基础计算
import tensorflow as tf import numpy as np sess=tf.Session() #logits代表wx+b的输出,并没有进行softmax(因为softmax后是一个和为1的概率) logits = np.array([[1, 2, 7], [3, 5, 2], [6, 1, 3], [8, 2, 0], [3, 6, 1]], dtype=np.float32) #labels是[2,1,0,0,1]的ont-hot编码形式 labels = np.array([[0, 0, 1], [0, 1, 0], [1, 0, 0], [1, 0, 0], [0, 1, 0]], dtype=np.float32) # 公式计算,-np.log(y*softmax_out) # y=n*c,softmax_out是n*c,相当于将每个样本softmax的c个特征中最大的取出来,再取负就是求最小 softmax_out=tf.nn.softmax(logits) cross_entropy1 = -tf.reduce_sum(labels * tf.log(softmax_out), axis=1) #对应元素相乘,非矩阵乘法 print (sess.run(softmax_out)) """ [[2.4561151e-03 6.6764127e-03 9.9086750e-01] [1.1419519e-01 8.4379470e-01 4.2010065e-02]
Tensorflow交叉熵的代码实现
最新推荐文章于 2021-05-15 19:17:47 发布
本文详细介绍了TensorFlow中交叉熵的计算,包括tf.nn.softmax_cross_entropy_with_logits和tf.nn.sparse_softmax_cross_entropy_with_logits的使用,以及tf.losses的相关函数,特别是tf.losses.sparse_softmax_cross_entropy,它是对tf.nn.sparse_softmax_cross_entropy_with_logits的平均操作,适用于非one-hot编码的标签。
摘要由CSDN通过智能技术生成