其实这两个都是计算交叉熵,只是输入数据不同. #sparse 稀疏的.稀少的 word_labels = tf.constant([2,0]) predict_logits = tf.constant([[2.0,-1.0,3.0],[1.0,0.0,-0.5]]) loss = tf.nn.sparse_softmax_cross_entropy_with_logits( labels = word_labels,logits = predict_logits) with tf.Session…
http://stackoverflow.com/questions/37312421/tensorflow-whats-the-difference-between-sparse-softmax-cross-entropy-with-logi Having two different functions is a convenience, as they produce the same result. The difference is simple: For sparse_softmax_…
在计算loss的时候,最常见的一句话就是 tf.nn.softmax_cross_entropy_with_logits ,那么它到底是怎么做的呢? 首先明确一点,loss是代价值,也就是我们要最小化的值 tf.nn.softmax_cross_entropy_with_logits(logits, labels, name=None) 除去name参数用以指定该操作的name,与方法有关的一共两个参数: 第一个参数logits:就是神经网络最后一层的输出,如果有batch的话,它的大小就是[b…
转自:http://www.jianshu.com/p/fab82fa53e16 1.tf中的nce_loss的API def nce_loss(weights, biases, inputs, labels, num_sampled, num_classes, num_true=1, sampled_values=None, remove_accidental_hits=False, partition_strategy="mod", name="nce_loss"…
1. tf.nn.conv2d(x, w, strides=[1, 1, 1, 1], padding='SAME')  # 对数据进行卷积操作 参数说明:x表示输入数据,w表示卷积核, strides表示步长,分别表示为样本数,长,宽,通道数,padding表示补零操作 2. tf.nn.max_pool(x, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME')  # 对数据进行池化操作 参数说明:x表示输入数据,ksize表示卷…
在计算loss的时候,最常见的一句话就是tf.nn.softmax_cross_entropy_with_logits,那么它到底是怎么做的呢? 首先明确一点,loss是代价值,也就是我们要最小化的值 tf.nn.softmax_cross_entropy_with_logits(logits, labels, name=None) 除去name参数用以指定该操作的name,与方法有关的一共两个参数: 第一个参数logits:就是神经网络最后一层的输出,如果有batch的话,它的大小就是[bat…
http://blog.csdn.net/mao_xiao_feng/article/details/53382790 计算loss的时候,最常见的一句话就是tf.nn.softmax_cross_entropy_with_logits,那么它到底是怎么做的呢? 首先明确一点,loss是代价值,也就是我们要最小化的值 tf.nn.softmax_cross_entropy_with_logits(logits, labels, name=None) 除去name参数用以指定该操作的name,与方…
tf.nn.softmax softmax是神经网络的最后一层将实数空间映射到概率空间的常用方法,公式如下: \[ softmax(x)_i=\frac{exp(x_i)}{\sum_jexp(x_j)} \] 本文意于分析tensorflow中的tf.nn.softmax(),关于softmax的具体推导和相关知识点,参照其它文章. tensorflow的tf.nn.softmax()函数实现位于这里,可以看到,实现起来相当简明: tf.exp(logits)/tf.reduce_sum(tf…
import tensorflow as tf labels = [[0.2,0.3,0.5], [0.1,0.6,0.3]]logits = [[2,0.5,1], [0.1,1,3]] a=tf.nn.softmax([2,0.5,1]) # 此行代码观看softmax函数如何处理数据,结果表明是按照行进行处理,即ln2/(ln2+ln0.5+ln1)result1 = tf.nn.softmax_cross_entropy_with_logits(labels=labels, logits…
1.求loss: tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits, labels, name=None)) 第一个参数logits:就是神经网络最后一层的输出,如果有batch的话,它的大小就是[batchsize,num_classes],单样本的话,大小就是num_classes 第二个参数labels:实际的标签,大小同上 具体的执行流程大概分为两步: 第一步是先对网络最后一层的输出做一个softmax,这一步通常…
tf.nn.softmax_cross_entropy_with_logits(logits, labels, name=None) 参数: logits:就是神经网络最后一层的输出,如果有batch的话,它的大小就是[batchsize,num_classes],单样本的话,大小就是num_classes labels:实际的标签,大小同上 执行流程 第一步是先对网络最后一层的输出做一个softmax,这一步通常是求取输出属于某一类的概率, 对于单样本而言,输出就是一个num_classes大…
conv2d中的padding 在使用TF搭建CNN的过程中,卷积的操作如下 convolution = tf.nn.conv2d(X, filters, strides=[1,2,2,1], padding="SAME") 这个函数中各个参数的含义是什么呢? X:输入数据的mini-batch,为一个4D tensor:分别表示的含义为[n_batch,height,width,channel] filters:为卷积核,为一个4D tensor,分别表示的含义为 [filter_h…
转自:https://blog.csdn.net/dcrmg/article/details/79028003 https://blog.csdn.net/qian99/article/details/70500166 https://my.oschina.net/u/876354/blog/1930490 1.计算图 Tensorflow是基于图(Graph)的计算框架,图的节点由事先定义的运算(操作.Operation)构成,图的各个节点之间由张量(tensor)来链接,Tensorflow…
In order to train our model, we need to define what it means for the model to be good. Well, actually, in machine learning we typically define what it means for a model to be bad. We call this the cost, or the loss, and it represents how far off our…
softmax_cross_entropy_with_logits与sparse_softmax_cross_entropy_with_logits都是对最后的预测结果进行softmax然后求交叉熵 区别在于输入的label形式 sparse_softmax_cross_entropy_with_logits的label是 [batch_size], softmax_cross_entropy_with_logits的label是[batch_size, classes], 也就是需要对labe…
首先介绍数据读取问题,现在TensorFlow官方推荐的数据读取方法是使用tf.data.Dataset,具体的细节不在这里赘述,看官方文档更清楚,这里主要记录一下官方文档没有提到的坑,以示"后人".因为是记录踩过的坑,所以行文混乱,见谅. I 问题背景 不感兴趣的可跳过此节. 最近在研究ENAS的代码,这个网络的作用是基于增强学习,能够自动生成合适的网络结构.原作者使用TensorFlow在cifar10上成功自动生成了网络结构,并取得了不错的效果. 但问题来了,此时我需要将代码转移…
转自:https://www.tensorflow.org/api_docs/python/tf/train/GradientDescentOptimizer 1.tf.train.GradientDescentOptimizer 其中有函数: 1.1apply_gradients apply_gradients( grads_and_vars, global_step=None, name=None ) Apply gradients to variables. This is the sec…
转自:https://blog.csdn.net/jiaoyangwm/article/details/79248535  1.eval() 其实就是tf.Tensor的Session.run() 的另外一种写法,但两者有差别: ※eval(): 将字符串string对象转化为有效的表达式参与求值运算返回计算结果※eval()也是启动计算的一种方式.基于Tensorflow的基本原理,首先需要定义图,然后计算图,其中计算图的函数常见的有run()函数,如sess.run().同样eval()也是…
写在前面 本文翻译自Tensorflow团队的文章Tensorflow Control Flow Implementation,部分内容加入了笔者自己的理解,如有不妥之处还望各位指教. 目录 概览 控制流核心概念 控制流结构的编译 条件表达式 while循环 实现 分布式条件表达式 分布式while循环 自动微分 概览 本文将会介绍当前在Tensorflow中控制流操作的设计和实现.这是一篇基于原始设计的描述性文档,设计的细节还请参考源代码. 本文将要讲述的内容是: 介绍Tensorflow为了…
https://www.jianshu.com/p/af2b694eae61 简单来说,pb文件是个推理的图,meta更复杂,不能用来部署…
1. tf.nn.embedding_lookup(W, X) W的维度为[len(vocabulary_list), 128], X的维度为[?, 8],组合后的维度为[?, 8, 128] 代码说明一下:即根据每一行X中的一个数,从W中取出对应行的128个数据,比如X[1, 3]个数据是3062,即从W中的第3062行取出128个数据 import numpy as np import tensorflow as tf data = np.array([[2, 1], [3, 4], [5,…
1.tf.nn.lrn(pool_h1, 4, bias=1.0, alpha=0.001/9.0, beta=0.75) # 局部响应归一化,使用相同位置的前后的filter进行响应归一化操作 参数说明:pool_h1表示输入数据,4表示使用前后几层进行归一化操作,bias表示偏移量,alpha和beta表示系数 局部响应的公式 针对上述公式,做了一个试验代码: # 自己编写的代码, 对x的[1, 1, 1, 1]进行局部响应归一化操作,最后结果是相同的x = np.array([i for…
在TensorFlow中封装好了一个高级库,tf.contrib.layers库封装了很多的函数,使用这个高级库来开发将会提高效率,卷积函数使用tf.contrib.layers.conv2d,池化函数使用tf.contrib.layers.max_pool2d和tf.contrib.layers.avg_pool2d,全连接函数使用 tf.contrib.layers.fully_connected,下面来看里面封装好的函数接口: 以最复杂的卷积为例,其他的几个函数与之类似: layers.c…
tf.ConfigProto()函数用在创建session的时候,用来对session进行参数配置: config = tf.ConfigProto(allow_soft_placement=True, allow_soft_placement=True) config.gpu_options.per_process_gpu_memory_fraction = 0.4 #占用40%显存 sess = tf.Session(config=config) 1. 记录设备指派情况 :  tf.Conf…
TensorFlow的Session对象是支持多线程的,可以在同一个会话(Session)中创建多个线程,并行执行.在Session中的所有线程都必须能被同步终止,异常必须能被正确捕获并报告,会话终止的时候, 队列必须能被正确地关闭.TensorFlow提供了两个类来实现对Session中多线程的管理:tf.Coordinator和 tf.QueueRunner,这两个类往往一起使用. Coordinator类用来管理在Session中的多个线程,可以用来同时停止多个工作线程并且向那个在等待所有…
tf.ConfigProto()函数用在创建session的时候,用来对session进行参数配置: config = tf.ConfigProto(allow_soft_placement=True, allow_soft_placement=True) config.gpu_options.per_process_gpu_memory_fraction = 0.4 #占用40%显存 sess = tf.Session(config=config) 1. 记录设备指派情况 :  tf.Conf…
原来这个函数,不能按以前的方式进行调用了,只能使用命名参数的方式来调用.原来是这样的: tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y, y_)) 因此修改需要成这样: tf.reduce_sum(tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=y_)) logits是预测值,labels是标签值…
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/dcrmg/article/details/79091941 tf.ConfigProto()函数用在创建session的时候,用来对session进行参数配置: config = tf.ConfigProto(allow_soft_placement=True, allow_soft_placement=True)config.gpu_o…
这里的num_units参数并不是指这一层油多少个相互独立的时序lstm,而是lstm单元内部的几个门的参数,这几个门其实内部是一个神经网络,答案来自知乎: class TRNNConfig(object): """RNN配置参数""" # 模型参数 embedding_dim = 100 # 词向量维度 seq_length = 100 # 序列长度 num_classes = 2 # 类别数 vocab_size = 10000 # 词汇表达…
有了数据,有了网络结构,下面我们就来写 cifar10 的代码. 首先处理输入,在 /home/your_name/TensorFlow/cifar10/ 下建立 cifar10_input.py,输入如下代码: from __future__ import absolute_import # 绝对导入 from __future__ import division # 精确除法,/是精确除,//是取整除 from __future__ import print_function # 打印函数…