tensorflow当中的loss里面的logits可不可以是placeholder

我使用tensorflow实现手写数字识别,我希望softmax_cross_entropy_with_logits里面的logits先用一个placeholder表示,然后在计算的时候再通过计算出的值再传给placeholder,但是会报错ValueError: No gradients provided for any variable, check your graph for ops that do not support gradients。我知道直接把logits那里改成outputs就可以了,但是如果我一定要用logits的结果先是一个placeholder,我应该怎么解决呢。

import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("/home/as/下载/resnet-152_mnist-master/mnist_dataset", one_hot=True)

from tensorflow.contrib.layers import fully_connected

x = tf.placeholder(dtype=tf.float32,shape=[None,784])
y = tf.placeholder(dtype=tf.float32,shape=[None,1])

hidden1 = fully_connected(x,100,activation_fn=tf.nn.elu,
                         weights_initializer=tf.random_normal_initializer())

hidden2 = fully_connected(hidden1,200,activation_fn=tf.nn.elu,
                         weights_initializer=tf.random_normal_initializer())
hidden3 = fully_connected(hidden2,200,activation_fn=tf.nn.elu,
                         weights_initializer=tf.random_normal_initializer())


outputs = fully_connected(hidden3,10,activation_fn=None,
                         weights_initializer=tf.random_normal_initializer())




a = tf.placeholder(tf.float32,[None,10])


loss = tf.nn.softmax_cross_entropy_with_logits(labels=y,logits=a)
reduce_mean_loss = tf.reduce_mean(loss)

equal_result = tf.equal(tf.argmax(outputs,1),tf.argmax(y,1))
cast_result = tf.cast(equal_result,dtype=tf.float32)
accuracy = tf.reduce_mean(cast_result)

train_op = tf.train.AdamOptimizer(0.001).minimize(reduce_mean_loss)

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    for i in range(30000):
        xs,ys = mnist.train.next_batch(128)
        result = outputs.eval(feed_dict={x:xs})
        sess.run(train_op,feed_dict={a:result,y:ys})
        print(i)
0

2个回答

可以是placeholder

0

为什么要占位,a = tf.placeholder(tf.float32,[None,10])
输入才会使用占位,logits是网络输出!

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Tensorflow四种交叉熵函数计算公式:tf.nn.cross_entropy
Tensorflow交叉熵函数:cross_entropyn注意:tensorflow交叉熵计算函数输入中的logits都不是softmax或sigmoid的输出,而是softmax或sigmoid函数的输入,因为它在函数内部进行sigmoid或softmax操作n nntf.nn.sigmoid_cross_entropy_with_logits(_sentinel=None,label
tensorflow学习笔记(三):损失函数
"""ntf.python.ops.nn_ops.sparse_softmax_cross_entropy_with_logits(logits, labels, name=None)n"""ndef sparse_softmax_cross_entropy_with_logits(logits, labels, name=None):n#logits是最后一层的z(输入)n#A common us
tensorflow中sequence_loss_by_example()函数的计算过程(结合TF的ptb构建语言模型例子)
1 softmaxrn2 交叉熵rnrn
tensorflow某些函数的小坑(持续更新)
刚刚接触tensorflow,正在跟tutorial学习。英文的官网经常上不了(shadowsocks不太稳定),退而求其次看极客学院翻译的中文教程.看见其中的一些奇奇怪怪的函数,这里mark一下nn.sparse_softmax_cross_entropy_with_logits()这个函数看名字都知道,是将稀疏表示的label与输出层计算出来结果做对比,函数的形式和参数如下:nn.sparse_
TensorFlow学习(六):基本神经网络
基本的神经网络的激活函数和分类的函数
正确理解TensorFlow中的logits
n n n 【问题】I was going through the tensorflow API docs here. In the tensorflow documentation, they used a keyword called logits. What is it? In a lot of methods in the API docs it is wri...
机器学习笔记(二十):TensorFlow实战十二(TensorBoard可视化)
1 - 引言n前面已经介绍到TensorFlow可以实现许多非常常用的神经网络结构,有的网络结构十分复杂,里面的参数关系更是难以管理。因此,TensorFlow提供了一个可视化工具TensorBoard。可以有效的展示运行过程中的计算图、各种指标随着时间的变化趋势以及训练中使用到的图像等信息。n2 - TensorBoard简介nTensorBoard是TensorFlow的可视化工具,可以呈现当...
switch语句中的判断能否是byte,long或String
switch(ss)     ss只能是整数表达式和枚举类型。rn  由于byte,short,char ,可以隐式的转化为int型,所以它们及它们的包装类都可以当做rnswitch判断,JDK1.7引入新特性后,String也可以被switch作用rn由于long不能隐式的转化为int型    所以long  不能被switch作用
tensorflow 笔记(3):神经网络优化
4.1损失函数nn神经元模型nnnn激活函数nnnn激活函数的作用: 有效避免仅适用线性组合,提高了模型的表达力,使模型有更好的区分力. nnnn神经网络复杂度:多用NN层数和NN参数的个数表示. n层数 = 隐藏层的层数 + 1个输出层 n总参数 = 总W + 总bnn损失函数(loss):预测值(y)与已知答案(y_)的差距 nNN优化目标: loss最小,nn常见的损失函数:均方误差(MSE...
TensorFLow 中 CTC 的相关函数介绍
一、SparseTensor 类介绍rnrnrn 稀疏矩阵:当密集矩阵中大部分的数都是 0 的时候,就可以用一种更好的存储方式(只将矩阵中不为 0 的) rn class tf.SparseTensor(indices, values, dense_shape) rn 输入参数:rn rn rn indices: 指定 Sparse Tensor 中非 0 值的索引,是一个 2D 的 int64 张...
tensorflow图像分类实战解析(下)
global_step = tf.Variable(0, name='global_step', trainable=False)n train_op = optimizer.minimize(loss, global_step=global_step)n return train_opn设定最小化目标以及最大步长def evaluation(logits, labels):n correct
tensorflow在mnist集上的使用示例(二)
在tensorflow在mnist集上的使用示例(一)中,我们已经使用tensorflow在mnist集上实现了不错的识别的效果。本文主要是进一步教你构建一个框架完善的神经网络程序,包括将构建模型封装成inference()、loss()、training()、evaluation()四部分,添加状态可视化代码等。1.参考教程原教程TensorFlow Mechanics 101 n中文版 Tens
罗斯基白话:TensorFlow+实战系列(三)常用损失函数与参数优化
主要总结常见损失函数以及神经网络的参数优化
tf.losses类中的交叉熵函数
tf.losses类中的交叉熵函数:nntf.losses.softmax_cross_entropy( n onehot_labels, n logits, n weights=1.0, n label_smoothing=0, n scope=None, n loss_collection=tf.GraphKeys.LOSSES, n reductio...
SSD算法Tensorflow版详解(二)
Loss函数计算SSD的Loss函数包含两项:(1)预测类别损失(2)预测位置偏移量损失:Loss中的N代表着被挑选出来的默认框个数(包括正样本和负样本),L(los)即位置偏移量损失是Smooth L1 loss(是默认框与GTbox之间的位置偏移与网络预测出的位置偏移量之间的损失),L(conf)即预测类别损失是多类别softmax loss,α的值设置为1.  Smooth L1 loss定...
tensorflow中损失函数总结
(1)sequence_loss_by_example(logits, targets, weights) n这个函数用于计算所有examples的加权交叉熵损失,logits参数是一个2D Tensor构成的列表对象,每一个2D Tensor的尺寸为[batch_size x num_decoder_symbols],函数的返回值是一个1D float类型的Tensor,尺寸为batch_size
Tensorflow 损失函数(loss function)及自定义损失函数(二)
我主要分三篇文章给大家介绍tensorflow的损失函数,本篇为tensorflow其他的损失函数,主要参照了tensorlayer 中的实现 rn(一)tensorflow内置的四个损失函数 rn(二)其他损失函数 rn(三)自定义损失函数rnrnTensorlayer封装了很多的已经写好的代码,同时作为一个开源项目,也公布了很多的代码片段,我们这就来看看,除了tensorflow内置的四个损失函数以...
Tensorflow中用VGG19做二分类-loss出现0.693174解决方法
在Tensorflow下用VGG19 pre-train的model跑一个人脸表情库,做一个二分类。 n出现loss除了迭代的第一个值,其余输出均是0.693174 n百度解决方法,发现需要在全连接层的权重加权重衰减(l2正则化) n在把权重衰减loss和交叉熵loss添加到总loss里。 nTensorflow中具体实施如下: flattened_shape = 8 * 8 * 512
tensorflow 4——模型的保存、读取
tf.train.Saver类为tensorflow的一个API n可通过import tensorflow as tf nhelp(tf.train.Saver)来查看这个API的用法nnnnimport tensorflow as tfnv1=tf.Variable(tf.constant(1.0,shape=[1]),name='v1')nv2=tf.Variable(tf.constant...
尝试复现SSD,遇到的一系列问题
参考文章:SSD关键源码解析-知乎 目标检测|SSD原理与实现nn参考代码:balancap/SSD-Tensorflownnnn真是佩服那些能从头到尾把算法实现好的人。。该有多难啊。nnnn现阶段成果:成功运行单种类目标检测nnnn1.遇到最多的问题就是 list, array, tensor互相转换了。大部分时间消耗在这个上面。nn解决:tensor --> array:...
【Tensorboard使用】动态显示loss曲线
程序nn下面的例子是两层全连接网络,实现手写数字识别的案例。nnnfrom tensorflow.examples.tutorials.mnist import input_datanimport tensorflow as tfnimport osnnos.environ["TF_CPP_MIN_LOG_LEVEL"] = "2" # 忽略tensorflow警告信息nnmnist = inp...
Tensorflow1.8用keras实现MNIST数据集手写字体识别例程
nimport tensorflow as tfntf.enable_eager_execution()nneager是新版本加入的动态图,可以直接计算出结果而不用使用Session。同时也支持微分操作。nnnclass DataLoader():n def __init__(self):n mnist = tf.contrib.learn.datasets.load_data...
tensorflow训练出现nan的讨论
本文讲述tensorflow训练时出现nan的原因,及其解决办法
构造函数里面的函数可不可以是private的
同上.我笨但我肯问,谢谢各位老大解答
图像语义分割-----SegNet学习笔记+tensorflow
SegNet网络是一个像素级的语义分割模型,即会针对图像中的每一个像素,对每一个像素进行分类,去识别该像素属于的类别,整个网络分为4层下采样以及4层上采样,最后将一个[W, H, 3]的输入图像处理成[W, H, NUM_CLASSES]的向量,再通过softmax进行分类,转化为[W, H, 1]的张量,再对属于不同种类的像素分别涂上不同的颜色,从新变成[W, H, 3]的图像,但是其中的物体以...
深度学习基础--logits
logitsn  深度学习源码里经常出现logitsn  logits: 未归一化的概率, 一般也就是 softmax层的输入。所以logits和lables的shape一样nn
TensorFlow损失函数专题
一、分类问题损失函数——交叉熵(crossentropy)nn交叉熵刻画了两个概率分布之间的距离,是分类问题中使用广泛的损失函数。给定两个概率分布p和q,交叉熵刻画的是两个概率分布之间的距离:nn我们可以通过Softmax回归将神经网络前向传播得到的结果变成交叉熵要求的概率分布得分。在TensorFlow中,Softmax回归的参数被去掉了,只是一个额外的处理层,将神经网络的输出变成一个概
(tensorflow)——tf.estimator自定义估算器使用方法
1 简介rn在TensorFlow的UG中,他们强烈的建议在写Tensorflow程序时使用estimator的API,使用后发现的确好用!在github上一些开源程序也已经开始使用estimator,比如DeeplabV3+,关于DeeplabV3+的代码注释可以参考我的另一篇博客。rn官方原话:rnWe strongly recommend writing TensorFlow programs w...
tensorflow 各种报错总结
1. 'list' object has no attribute 'lower' 报错如下Traceback (most recent call last):n File "H:/FasionAI/MyNet/train.py", line 27, in <module>n train_logits = model.inference(train_batch, BATCH_S...
tensorflow利用slim进行迁移学习
本文采用tensorflow的slim库进行迁移学习,网站为:github-slimnn参考:TensorFlow下slim库函数的使用以及使用VGG网络进行预训练、迁移学习(附代码)nn源代码涉及了多个.py文件,对于初学者来说不便于阅读,对于不同的训练对象要修改的参数遍布较多,不太方便,因此这里将整个迁移学习分为三个.py,其中creat_tfrecord.py用于将样本转化为tensorfl...
tensorflow 就该这么学--2
1、模型机制tensor  代表数据,可以理解为多维数组variable  代表变量,模型中表示定义的参数,是通过不断训练得到的值placeholder  代表占位符,也可以理解为定义函数的参数2、session 的两种使用方法(还有一种启动session的方式是sess = tf.InteractiveSession())3、注入机制4、指定gpu运算5、保存模型与载入模型示例完整代码如下可直接...
使用tensorboard可视化loss和acc
1.用try...except...避免因版本不同出现导入错误问题rnrntry:n image_summary = tf.image_summaryn scalar_summary = tf.scalar_summaryn histogram_summary = tf.histogram_summaryn merge_summary = tf.merge_summaryn Summar
用TensorFlow实现一个在CIFAR-10数据集上80%准确率的卷积神经网络
本文主要介绍如何在TensorFlow上训练CIFAR-10数据集并达到80%的测试准确率。会涉及CIFAR-10数据处理、TensorFlow基本的卷积神经网络层(卷积层、池化层、激活函数等),所使用的代码没有经过仔细的封装,比较适合刚接触TensorFlow的同学,完整的代码可以在我的Github上下载:cifar10-CNN。n(PS:虽然网上有很多用TensorFlow训练CIFAR-10...
Tensorflow的loss函数计算容易出错的地方
1 问题的提出rn按照tensorflow官方教程搭建好的一个model中的loss函数应该是采用如下的计算方法:rncross_entropy = -tf.reduce_sum(y_*tf.log(y))rnrn其中,这个公式就是按照标准的交叉熵函数进行定义的,比较简陋,去掉了常数项系数,但是没改变总体的性质,所以算是基本交叉熵函数。rn但是呢,tensorflow系统中提供了计算交叉熵函数的接
Tensorflow中placeholder传入值与feed_dict喂食器的联系与用法
1.placeholder传入值可以理解为提前占据一个存储空间,比如说你在一个城市中心买了一套房子,这个房子你也不知道是用来放货物还是用来住人的,但是你可以提前将这栋房子买下来,等以后再说以后的事情。tf.placeholder(type,shape)   ,像是 a = tf.placeholder(tf.float32,[2,3],keep_prob:0.5)第一个参数tf.float32是a...
机器学习-关于自定义损失函数(tensorflow笔记)
对于回归问题,最常用的损失函数是均方误差(MSE,mean squared error),但是对于实际问题,MSE可能是最接近于真实答案,但却不是能使实际问题利益最大化的选择。比如对于预测商品销量的问题,如果预测多了(预测值大于真实销量),损失的是商品的成本,如果预测少了(预测值小于真实销量),损失的是商品的利润。那有可能多预测一个少挣1元,而少预测一个就可能少挣10元。因此需要将损失函数与利润直...
python中如何对Tensor变量赋值,输出,以placeholder为例
赋值必须用feed_dictn例如:nnimport numpy as npnimport tensorflow as tfnnnz1 = tf.placeholder(tf.float32,[3,2])nz2 = tf.placeholder(tf.float32,[2,3])noutput = tf.matmul(z1,z2)ntemp1 = [[1,2],[4,2],[4
TensorFlow学习笔记:构建多分类任务模型(未完)
任务描述识别手势: n n如上图所示,对于多分类任务,输出一个独热码矩阵:即仅有一个元素为1,其他元素均为0的列向量。数据训练集:0-5的手势图片各180张,像素为64*64。 n测试集:0-5的手势图片各20张,像素为64*64。载入数据X_train_orig, Y_train_orig, X_test_orig, Y_test_orig, classes = load_dataset()数据处
运行ssd_tensorflow_traffic_sign_detection遇到的各种问题以及解决办法
1.关于开源代码,读者可以根据文章标题在github上自行下载,交通标志检测nn2.文章的重点。nn(1)关于运行:根据代码给出的文档,首先我们要安装相关的依赖库,(需要说明的是,本文测试的环境是CUDA8.0+cuDNN5.1,操作平台Ubuntu16.04)TensorFlow版本是GPU版TensorFlow1.2.0版本,安装方法(在激活和创建环境完成的情况下,终端输入tensorflow...
机器学习中交叉熵cross entropy是什么,怎么计算?
项目背景:人体动作识别(分类),CNN或者RNN网络,softmax分类输出,输出为one-hot型标签。nnloss可以理解为预测输出pred与实际输出Y之间的差距,其中pred和Y均为one-hot型。nn计算loss的意义在于为接下来的optimizer提供优化的指标,即optimizer优化的目的为最小化loss。nn在使用softmax层进行分类时,loss一般使用交叉熵cross_en...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 大学里面的java班 深度学习tensorflow课程