【TensorFlow】tf.nn.softmax_cross_entropy_with_logits的用法
来源:互联网 发布:6s 拍人 知乎 编辑:程序博客网 时间:2024/05/16 12:41
TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流图的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。
TensorFlow可被用于语音识别或图像识别等多项机器深度学习领域,对2011年开发的深度学习基础架构DistBelief进行了各方面的改进,它可在小到一部智能手机、大到数千台数据中心服务器的各种设备上运行。TensorFlow将完全开源,任何人都可以用。
原生接口文章
- 【Tensorflow】tf.placeholder函数
- 【TensorFlow】tf.nn.conv2d是怎样实现卷积的
- 【TensorFlow】tf.nn.max_pool实现池化操作
- 【Tensorflow】tf.nn.relu函数
- 【Tensorflow】tf.reshape 函数
- 【Tensorflow】tf.nn.dropout函数
- 【Tensorflow】tf.argmax函数
- 【Tensorflow】tf.cast 类型转换 函数
- 【Tensorflow】tf.train.AdamOptimizer函数
- 【Tensorflow】tf.Graph()函数
- 【TensorFlow】tf.nn.softmax_cross_entropy_with_logits的用法
- 【Tensorflow】tf.dynamic_partition 函数 分拆数组
- 【Tensorflow】实现简单的卷积神经网络CNN实际代码
- 【Tensorflow 实战】实现欧式距离
- 【Tensorflow】tensorflow.contrib.slim 包
- 【Tensorflow slim】 slim.arg_scope的用法
- 【Tensorflow slim】slim.data包
- 【Tensorflow slim】slim evaluation 函数
- 【Tensorflow slim】slim layers包
- 【Tensorflow slim】slim learning包
- 【Tensorflow slim】slim losses包
- 【Tensorflow slim】slim nets包
- 【Tensorflow slim】slim variables包
- 【Tensorflow slim】slim metrics包
- 【Tensorflow slim 实战】写MobileNet
- 【Tensorflow slim 实战】写Inception-V4 Inception-ResNet-v2结构
- 【Tensorflow keras】Keras:基于Theano和TensorFlow的深度学习库
- 【Tensorflow keras】轻量级深度学习框架 Keras简介
- 将非RGB图片转换为RGB图片
- 【opencv】python3 将图片生成视频文件
- 【opencv】selective_search函数
=========================================================================
在计算loss的时候,最常见的一句话就是tf.nn.softmax_cross_entropy_with_logits,那么它到底是怎么做的呢?
首先明确一点,loss是代价值,也就是我们要最小化的值
tf.nn.softmax_cross_entropy_with_logits(logits, labels, name=None)
除去name参数用以指定该操作的name,与方法有关的一共两个参数:
第一个参数logits:就是神经网络最后一层的输出,如果有batch的话,它的大小就是[batchsize,num_classes],单样本的话,大小就是
num_classes
第二个参数labels:实际的标签,大小同上
具体的执行流程大概分为两步:
第一步是先对网络最后一层的输出做一个softmax,这一步通常是求取输出属于某一类的概率,对于单样本而言,输出就是一个
大小的向量([Y1,Y2,Y3...]其中Y1,Y2,Y3...分别代表了是属于该类的概率)num_classes
softmax的公式是:
至于为什么是用的这个公式?这里不介绍了,涉及到比较多的理论证明
第二步是
softmax的输出向量[Y1,Y2,Y3...]和样本的实际标签做一个交叉熵,公式如下:
其中指代实际的标签中第i个的值(用mnist数据举例,如果是3,那么标签是[0,0,0,1,0,0,0,0,0,0],除了第4个值为1,其他全为0)
中,第i个元素的值就是
softmax的输出向量[Y1,Y2,Y3...]
显而易见,预测越准确,结果的值越小(别忘了前面还有负号),最后求一个平均,得到我们想要的loss
注意!!!这个函数的返回值并不是一个数,而是一个向量,如果要求交叉熵,我们要再做一步tf.reduce_sum操作,就是对向量里面所有元素求和,最后才得到,如果求loss,则要做一步
tf.reduce_mean操作,对向量求均值!
理论讲完了,上代码
输出结果是:
我们的输出是符合公式逻辑的
- 【TensorFlow】tf.nn.softmax_cross_entropy_with_logits的用法
- 【TensorFlow】tf.nn.softmax_cross_entropy_with_logits的用法
- TensorFlow 介绍 tf.nn.softmax_cross_entropy_with_logits 的用法
- TensorFlow学习---tf.nn.softmax_cross_entropy_with_logits的用法
- 【TensorFlow】tf.nn.softmax_cross_entropy_with_logits的用法
- 【TensorFlow】tf.nn.softmax_cross_entropy_with_logits的用法
- 【TensorFlow】tf.nn.softmax_cross_entropy_with_logits的用法
- tf.nn.softmax_cross_entropy_with_logits的用法
- TensorFlow学习笔记之tf.nn.softmax()与tf.nn.softmax_cross_entropy_with_logits的用法
- 交叉熵tf.nn.softmax_cross_entropy_with_logits的用法
- Tensorflow函数:tf.nn.softmax_cross_entropy_with_logits 讲解
- tensorflow学习:tf.nn.softmax_cross_entropy_with_logits()
- tensorflow源码 tf.nn.softmax_cross_entropy_with_logits & tf.nn.sparse_softmax_cross_entropy_with_log
- tf.nn.softmax_cross_entropy_with_logits
- tf.nn.softmax_cross_entropy_with_logits()
- tf.nn.softmax_cross_entropy_with_logits
- tf.nn.softmax_cross_entropy_with_logits
- TensorFlow中的tf.nn.softmax_cross_entropy_with_logits 交叉熵 损失函数
- 【银行】商业银行IT系统架构规划
- c++之类模板
- 女程序员天生不如男的,谷歌工程师说错了么?
- 2-6·Linux系统进程管理
- 解决java向mysql数据表中插入html代码问题
- 【TensorFlow】tf.nn.softmax_cross_entropy_with_logits的用法
- java.math.BigDecimal类的用法
- 误操作yum导致error: rpmdb解决方法
- shell脚本写一个应用监控程序、让程序死而复生
- 关闭指定端口的进程
- 在centos7下配置ssh无密码登录
- es5数组的扩展续集
- OpenOffice
- unity调用安卓报错static方法和non-static方法