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)

2个回答

可以是placeholder

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
构造函数里面的函数可不可以是private的
同上.我笨但我肯问,谢谢各位老大解答
update在mysql里面的命令的用法可不可以是values()?
还是只能用set的方式?
报表数据源可不可以是联合查询?
联合查询
方法的返回结果可不可以是对象?
方法的返回结果可不可以是对象?为什么我在方法中使用对象返回会出现错误,返回对象为:ADODB.Recordset
GAC dll可不可以是com
我有个dll,经过强名snk签名了,同时类名前加了GUID属性rn注册为COMrnregasm.exe IReport.dll rn加入GACrngacutil /i IReport.dllrnrnregasm.exe /u Interop.Excel.dll 注销成功rngacutil /u IReport.dll rn却是rnNo assemblies found that match: IReport.dllrn可是rnC:\WINDOWS\assembly里是由IReport.dll rnrn有没有知道为什么?
@stateless的类可不可以是abstract的?
rt
默认值可不可以是 select 语句?
rn因为在Items的CateID和Cates中的CateID有外键的制约。rnrn我想rnrnItems表的CateID的默认值为:(select top 1 CateID from Cates)rnrn可以吗?rnrnrn非常感谢!rnrnrn
DECODE()的参数可不可以是逻辑表达式?
DECODE的参数可不可以写成下面这个样子:rnDECODE(A.score>60,true,sum(A.id),NULL) 或者rnDECODE(A.name like '%明%',true,count(*),NULL)rnrn
focal loss 里面的为什么
一、为什么alpha值正样本的权重比负样本还要小? 首先来看公式: 我们知道alpha 是用来平衡正负样本的,而论文里面的给的alpha=0.25 ,而真实正负样本的比例在1000:1以上,作者反而缩小正样本的损失,why? 在自己应用到其他场景的情况下,发现结果不仅如人意,后面将正负样本的损失分开可视化来看 通过上图可以发现正样本的损失要远大于负样本的损失 why? 这里...
JComboBox的item可不可以是图像
还有可不可以加入scrollbarrnrnrn如果不能是图像,如何实现类似功能
sql2k的存储过程的参数可不可以是talbe类型的?
是不是还同时可以是output?如果写的话怎么写?我这样写不行:rnCREATE PROCEDURE ComputeRiPHBB(@strBDate varchar(10),@strEDate varchar(10),@tempRiPHBB table OUTPUT )rnASrn....rnINSERT INTO @tempRiPHBB(...) values(...)rn....rn直接报错:rn服务器: 消息 156,级别 15,状态 1,过程 ComputeRiPHBB,行 21rn在关键字 'table' 附近有语法错误。rn服务器: 消息 137,级别 15,状态 1,过程 ComputeRiPHBB,行 99rn必须声明变量 '@tempRiPHBB'。rn
请问volatile 可不可以是指针类型呢?
rt
logits笔记
好记性不如烂笔头! 一、什么是logits? logits:未归一化的概率,即各个特征的加权之和。logits经过sigmoid或softmax函数变为归一化的概率值。 logits = log(p/(1-p)) p = 1 / (1 + e^(-logits)) 二、在keras中的运用?(假定标签y为categorical类型) 先在compile中设置loss为keras....
sqlserver2008中的自定义字段可不可以是表?
看标题的话可能蒙,sqlserver2008中存储过程可以用表变量,比如,但先要create 相应的typernrncreate type aaa as table(ino int primary key)rnrn然后存储过程中rnrncreate proc bbb @ccc as aaa readonlyrnasrnselect * from @cccrnrnrn从这里想到有没有可能一个表的字段是 aaa类型的表字段?
请问Class.forName的参数可不可以是绝对路径!
例如:Class.forName("c:\javatry.cls")或者其他什么的。
请问结构的成员可不可以是结构?
typedef struct nodern int data;rn struct node *next; rn Node;rnrntypedef struct pathinfo(rn struct node** pathSor;rn struct node** pathDes;rn int sorLength;rn int desLength;rn )PathInfo;rnrn为什么不能编译呢?rnrn
document.getElementById("txthtml")的参数可不可以是变量!~~
如题,rndocument.getElementById(str) str是变量行不!~~str是网页中的各种标签的NAME值!~rn这样行吗??
Access做出的应用程序,可不可以是.exe形式的?
Access做出的应用程序,可不可以是.exe形式的?
RangeValidator的MaximumValue可不可以是变量,如何表达
如题
★子数据窗口可不可以是动态定义的?
子数据窗口可不可以是动态定义的?能不能提供一点代码?
类的成员函数可不可以是递归函数?好纠结
比如我要写一个二叉树的类rn遍历二叉树 第一个处理根结点,后处理孩子结点 。如果用递归的话,必须传入指针,第一次传入的是指向根结点的指针,以后传入的是指向孩子结点的指针。不好递归啊rnvoid BiTree::PrintBiTree() rnrn pBiTNode p=root; //第一个根结点不好传入,我只能为它另写一个函数了rn if(p)Print(p);rnrnvoid BiTree::Print(pBiTNode p) //如果没有上面那个函数,第一次就要传入root指针,而root是类的成员rn //对用户是不可见的。 rn if(p!=NULL)cout<data; rn if(p->lchild!=NULL||p->rchild!=NULL)rn rn cout<<'(';rn Print(p->lchild);rn cout<<',';rn Print(p->rchild);rn cout<<')';rn rnrnrn可是如果类中有很多递归成员函数的话,每个递归都要写两个函数,就很麻烦了。而且每个递归都两个函数,用户在调用的时候且不容易弄混淆
webmethod函数的参数可不可以是ArrayList类型的?
webmethod函数的参数可不可以是ArrayList类型的?webmethd函数可以接受哪些类型的参数?
超链接的rel属性可不可以是http://开头的?
上次用JQUERY做一个效果rnrn在DATALIST里,放一个超链接,然后绑定名字,给rel绑定图片路径,这样就可以在鼠标一放上去,边上就会出现一个图片。rnrn但这次我用master page,同样的方式,图片就出不来了rnrn上次的图片路径是这样的“pic/pic1”,而这次的是"http://xxx.com/pic/pic1",不知道和这个有没有关系?ref的属性可不可以以通过http的形式调用图片?rnrn
友元函数可不可以是一个模板函数的实例
今天的程序里面将一个模板函数的实例声明为友元函数,编译报错:cannot access private member declared in class 'Object'
方法的参数可不可以是接口的引用?
这样写可不可以:引用的是一个实现了接口的类么?rn[code=C#]rnrn internal void method1(IInterface1 interface1, IInterface2[][] intf2, IInterface3[][] intf3)rnrn rnrn[/code]rnrn复杂得让我郁闷
★★★再问:include的文件名可不可以是变量??
rnrn ↑这里不可不可以是变量???rn若可以,应该怎么写??望示之:)rnrn
web查询的网址可不可以是动态的?
从网上学了一个用excel炒股的办法,改进了一些,可以自己算出感兴趣的数据,但是每次新增股票或者卖出股票的时候就要重新编辑web查询的网址,很不方便,我想在excel里获取股票代码,然后动态生成web查询的网址,然后实现在线。不知道这样可行么?应该怎么做?
请问:默认值可不可以是已经存在的字段
我有一个表,有字段shl,dj,hj,我想设hj的默认值为shl*dj,是不是不可以,可以用什么方法解决呢,谢谢:)
CRUD可不可以是CR(DC)D
[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/onion/10.gif][/img]rn希望大神们给分析分析。rnrn我个人感觉CRUD可以是CR(DC)D, 而且有些时候性能会更好。
ext.data.store 里面的数据来源可不可以是某javascript函数执行后的结果?
我进行过一些测试,但是没成功,求成功的例子rnrn以下是我不成功的例子rn[code=JScript]rn//包含一些必要的文件rnf_makeArry = function(s,e)rn//s
tensorflow 学习随记--最优化loss
1、得到loss的表达 2、构建一个optimizer。 Optimizer (基类) GradientDescentOptimizer (常用) AdagradOptimizer  AdagradDAOptimizer  MomentumOptimizer  AdamOptimizer  FtrlOptimizer  RMSPropOptimizer 并确定learn
tensorflow 中四种loss的含义
tensorflow 中四种loss的含义 交叉熵(Cross Entropy)是Loss函数的一种(也称为损失函数或代价函数),用于描述模型预测值与真实值的差距大小,常见的Loss函数就是均方平方差(Mean Squared Error)...... 1、tensorflow的基本运作 import tensorflow as tf #定义‘符号’变量,也称为占位符 a ...
tensorflow中常见的loss函数
       损失函数(loss/cost)用于描述模型预测值与真实值的差距大小.       一般常见的有两种算法----均值平方差(MSE) 和 交叉熵。       参考:https://blog.csdn.net/qq_42413820/article/details/809360921)均值平方差    在tensorflow中没有独立的MSE函数,不过可以自己组合:    MSE = ...
tensorflow中placeholder传值的问题
作者原话是不规定有多少sample,但是每个sample大小是784。可是我查阅了placeholder的文档,他的第二个参数不应该是个矩阵大小吗?![图片说明](https://img-ask.csdn.net/upload/201810/21/1540101431_820855.jpg)![图片说明](https://img-ask.csdn.net/upload/201810/21/1540101497_790540.jpg)
tensorflow读取数据到队列当中
TensorFlow是一种符号编程框架(与theano类似),先构建数据流图再输入数据进行模型训练。Tensorflow支持很多种样例输入的方式。最容易的是使用placeholder,但这需要手动传递numpy.array类型的数据。第二种方法就是使用二进制文件和输入队列的组合形式。这种方式不仅节省了代码量,避免了进行data augmentation和读文件操作,可以处理不同类型的数据, 而
五、tensorflow之传入值(placeholder)
placeholder,顾名思义,就是一个储存东西的地方,这样的定义有点像变量variable,但他和变量完全不一样,因为每次要用,必须要和搭配字典传入新值后才能激活,不需要初始化。 下面代码例子: 计算两个数相乘import tensorflow as tf input1 = tf.placeholder(tf.float32) input2 = tf.placeholder(tf.float
tensorflow 学习笔记3 placeholder与激活函数
placeholder使用的时候和前面的variable不同的是在session运行阶段,需要给placeholder提供数据,利用feed_dict的字典结构给placeholdr变量“喂数据”。 import tensorflow as tf #placeholder 传入值 运行结果时给它一个输入值,与feed_dict绑定 input1=tf.placeholder(tf.float3
怎么理解感知器和logits?
在学习深度学习时,不可以免得会碰到感知器和logits,该怎么理解它们呢,下面将分开说明:1.感知器  又称感知机,是一种人工神经网络,可以被视为一种最简单形式的前馈式人工神经网络,是一种二元线性分类器。2.logits: 未归一化的概率,是未进入softmax的概率,一般是输出层的输出,激活函数softmax的输入...
损失函数中的logits
PyTorch(tensorflow类似)的损失函数中,有一个(类)损失函数名字中带了with_logits. 而这里的logits指的是,该损失函数已经内部自带了计算logit的操作,无需在传入给这个loss函数之前手动使用sigmoid/softmax将之前网络的输入映射到[0,1]之间. logit函数 其形式如下: L(p)=p1−pL(p)=\frac{p}{1-p}L(p)=1−pp​...
logits, 交叉熵的定义
【转】https://www.jianshu.com/p/47172eb86b39
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数