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_entropy 注意:tensorflow交叉熵计算函数输入中的logits都不是softmax或sigmoid的输出,而是softmax或sigmoid函数的输入,因为它在函数内部进行sigmoid或softmax操作   tf.nn.sigmoid_cross_entropy_with_logits(_sentinel=None,label
tensorflow学习笔记(三):损失函数
""" tf.python.ops.nn_ops.sparse_softmax_cross_entropy_with_logits(logits, labels, name=None) """ def sparse_softmax_cross_entropy_with_logits(logits, labels, name=None): #logits是最后一层的z(输入) #A common us
tensorflow中sequence_loss_by_example()函数的计算过程(结合TF的ptb构建语言模型例子)
1 softmax 2 交叉熵
TensorFlow损失函数专题
一、分类问题损失函数——交叉熵(crossentropy) 交叉熵刻画了两个概率分布之间的距离,是分类问题中使用广泛的损失函数。给定两个概率分布p和q,交叉熵刻画的是两个概率分布之间的距离: 我们可以通过Softmax回归将神经网络前向传播得到的结果变成交叉熵要求的概率分布得分。在TensorFlow中,Softmax回归的参数被去掉了,只是一个额外的处理层,将神经网络的输出变成一个概
tensorflow某些函数的小坑(持续更新)
刚刚接触tensorflow,正在跟tutorial学习。英文的官网经常上不了(shadowsocks不太稳定),退而求其次看极客学院翻译的中文教程.看见其中的一些奇奇怪怪的函数,这里mark一下nn.sparse_softmax_cross_entropy_with_logits()这个函数看名字都知道,是将稀疏表示的label与输出层计算出来结果做对比,函数的形式和参数如下:nn.sparse_
tf.losses类中的交叉熵函数
tf.losses类中的交叉熵函数: tf.losses.softmax_cross_entropy( onehot_labels, logits, weights=1.0, label_smoothing=0, scope=None, loss_collection=tf.GraphKeys.LOSSES, reductio...
TensorFlow学习(六):基本神经网络
基本的神经网络的激活函数和分类的函数
switch语句中的判断能否是byte,long或String
switch(ss)     ss只能是整数表达式和枚举类型。   由于byte,short,char ,可以隐式的转化为int型,所以它们及它们的包装类都可以当做 switch判断,JDK1.7引入新特性后,String也可以被switch作用 由于long不能隐式的转化为int型    所以long  不能被switch作用
正确理解TensorFlow中的logits
【问题】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)——tf.estimator自定义估算器使用方法
1 简介 在TensorFlow的UG中,他们强烈的建议在写Tensorflow程序时使用estimator的API,使用后发现的确好用!在github上一些开源程序也已经开始使用estimator,比如DeeplabV3+,关于DeeplabV3+的代码注释可以参考我的另一篇博客。 官方原话: We strongly recommend writing TensorFlow programs w...
设计模式:接口与抽象类的区别
1.abstract class在java语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是一个类却可以实现多个interface。 2.在abstract class 中可以有自己的数据成员,也可以有非abstract的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在interface中,一般不定义数据成员),所有的
机器学习笔记(二十):TensorFlow实战十二(TensorBoard可视化)
1 - 引言 前面已经介绍到TensorFlow可以实现许多非常常用的神经网络结构,有的网络结构十分复杂,里面的参数关系更是难以管理。因此,TensorFlow提供了一个可视化工具TensorBoard。可以有效的展示运行过程中的计算图、各种指标随着时间的变化趋势以及训练中使用到的图像等信息。 2 - TensorBoard简介 TensorBoard是TensorFlow的可视化工具,可以呈现当...
TensorFLow 中 CTC 的相关函数介绍
一、SparseTensor 类介绍 稀疏矩阵:当密集矩阵中大部分的数都是 0 的时候,就可以用一种更好的存储方式(只将矩阵中不为 0 的) class tf.SparseTensor(indices, values, dense_shape) 输入参数: indices: 指定 Sparse Tensor 中非 0 值的索引,是一个 2D 的 int64 张...
Placeholder()传入值的应用
import tensorflow as tf import numpy as np input1 = tf.placeholder(tf.float32) input2 = tf.placeholder(tf.float32) output = tf.multiply(input1, input2) with tf.Session() as sess: print(sess.run(o...
tensorflow 笔记(3):神经网络优化
4.1损失函数 神经元模型 激活函数 激活函数的作用: 有效避免仅适用线性组合,提高了模型的表达力,使模型有更好的区分力.  神经网络复杂度:多用NN层数和NN参数的个数表示.  层数 = 隐藏层的层数 + 1个输出层  总参数 = 总W + 总b 损失函数(loss):预测值(y)与已知答案(y_)的差距  NN优化目标: loss最小, 常见的损失函数:均方误差(MSE...
tensorflow的基本用法(四)——placeholder
tensorflow的基本用法(四)——placeholder
tensorflow图像分类实战解析(下)
global_step = tf.Variable(0, name='global_step', trainable=False) train_op = optimizer.minimize(loss, global_step=global_step) return train_op 设定最小化目标以及最大步长def evaluation(logits, labels): correct
tensorflow在mnist集上的使用示例(二)
在tensorflow在mnist集上的使用示例(一)中,我们已经使用tensorflow在mnist集上实现了不错的识别的效果。本文主要是进一步教你构建一个框架完善的神经网络程序,包括将构建模型封装成inference()、loss()、training()、evaluation()四部分,添加状态可视化代码等。1.参考教程原教程TensorFlow Mechanics 101 中文版 Tens
罗斯基白话:TensorFlow+实战系列(三)常用损失函数与参数优化
主要总结常见损失函数以及神经网络的参数优化
深度学习基础--logits
logits   深度学习源码里经常出现logits   logits: 未归一化的概率, 一般也就是 softmax层的输入。所以logits和lables的shape一样
运行ssd_tensorflow_traffic_sign_detection遇到的各种问题以及解决办法
1.关于开源代码,读者可以根据文章标题在github上自行下载,交通标志检测 2.文章的重点。 (1)关于运行:根据代码给出的文档,首先我们要安装相关的依赖库,(需要说明的是,本文测试的环境是CUDA8.0+cuDNN5.1,操作平台Ubuntu16.04)TensorFlow版本是GPU版TensorFlow1.2.0版本,安装方法(在激活和创建环境完成的情况下,终端输入tensorflow...
SSD算法Tensorflow版详解(二)
Loss函数计算SSD的Loss函数包含两项:(1)预测类别损失(2)预测位置偏移量损失:Loss中的N代表着被挑选出来的默认框个数(包括正样本和负样本),L(los)即位置偏移量损失是Smooth L1 loss(是默认框与GTbox之间的位置偏移与网络预测出的位置偏移量之间的损失),L(conf)即预测类别损失是多类别softmax loss,α的值设置为1.  Smooth L1 loss定...
TensorFlow从入门到放弃(二)——基于InceptionV3的迁移学习以及图像特征的提取
1. flower数据集 下载地址:http://download.tensorflow.org/example_images/flower_photos.tgz 共五种花的图片 2. 图片处理 将图片划分为train、val、test三个子集并提取图片特征。这个过程有点儿漫长请耐心等待。。。。。。 import glob import os.path import numpy a...
tensorflow源码例子mnist源码——mnist.py
# Copyright 2015 The TensorFlow Authors. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # Y
Tensorflow1.8用keras实现MNIST数据集手写字体识别例程
import tensorflow as tf tf.enable_eager_execution() eager是新版本加入的动态图,可以直接计算出结果而不用使用Session。同时也支持微分操作。 class DataLoader(): def __init__(self): mnist = tf.contrib.learn.datasets.load_data...
TensorFlow 教程 --教程--2.6卷积神经网络
注意: 本教程适用于对Tensorflow有丰富经验的用户,并假定用户有机器学习相关领域的专业知识和经验。概述对CIFAR-10 数据集的分类是机器学习中一个公开的基准测试问题,其任务是对一组32x32RGB的图像进行分类,这些图像涵盖了10个类别:飞机, 汽车, 鸟, 猫, 鹿, 狗, 青蛙, 马, 船以及卡车。想了解更多信息请参考CIFAR-10 page,以及Alex Krizhevsky写...
构造函数里面的函数可不可以是private的
同上.我笨但我肯问,谢谢各位老大解答
tf的softmax交叉熵计算中的logits的含义
tf.nn.softmax_cross_entropy_with_logits函数是TensorFlow中常用的求交叉熵的函数。其中函数名中的“logits”是个什么意思呢?它时不时地困惑初学者,下面我们就讨论一下。   tf.nn.softmax_cross_entropy_with_logits( _sentinel=None, labels=None, ...
tensorflow训练出现nan的讨论
本文讲述tensorflow训练时出现nan的原因,及其解决办法
tensorflow中损失函数总结
(1)sequence_loss_by_example(logits, targets, weights) 这个函数用于计算所有examples的加权交叉熵损失,logits参数是一个2D Tensor构成的列表对象,每一个2D Tensor的尺寸为[batch_size x num_decoder_symbols],函数的返回值是一个1D float类型的Tensor,尺寸为batch_size
tensorflow利用slim进行迁移学习
本文采用tensorflow的slim库进行迁移学习,网站为:github-slim 参考:TensorFlow下slim库函数的使用以及使用VGG网络进行预训练、迁移学习(附代码) 源代码涉及了多个.py文件,对于初学者来说不便于阅读,对于不同的训练对象要修改的参数遍布较多,不太方便,因此这里将整个迁移学习分为三个.py,其中creat_tfrecord.py用于将样本转化为tensorfl...
tensorflow 各种报错总结
1. 'list' object has no attribute 'lower' 报错如下Traceback (most recent call last): File "H:/FasionAI/MyNet/train.py", line 27, in <module> train_logits = model.inference(train_batch, BATCH_S...
TensorFlow 实战之实现卷积神经网络
   本文根据最近学习TensorFlow书籍网络文章的情况,特将一些学习心得做了总结,详情如下.如有不当之处,请各位大拿多多指点,在此谢过。 一、相关性概念   1、卷积神经网络(ConvolutionNeural Network,CNN)             19世纪60年代科学家最早提出感受野(ReceptiveField)。当时通过对猫视觉皮层细胞研究,科学家发现每一个视觉神经...
tensorflow学习之常用函数总结:tensorflow.placeholder()函数
tensorflow.placeholder()函数 tensorflow.placeholder(dtype, shape=None, name=None) 此函数可以理解为形参,用于定义过程,在执行的时候再赋具体的值,placeholder相当于定义了一个位置,这个位置中的数据在程序运行时再指定。 参数: dtype:数据类型。常用的是tf.float32,tf.f
TensorFlow——训练自己的数据(三)模型训练
参考:Tensorflow教程-猫狗大战数据集 文件training.py 导入文件 import os import numpy as np import tensorflow as tf import input_data import model变量声明N_CLASSES = 2 #猫和狗 IMG_W = 208 # resize图像,太大的话训练时间久 IMG_H = 208 BATC
tensorflow 就该这么学--2
1、模型机制tensor  代表数据,可以理解为多维数组variable  代表变量,模型中表示定义的参数,是通过不断训练得到的值placeholder  代表占位符,也可以理解为定义函数的参数2、session 的两种使用方法(还有一种启动session的方式是sess = tf.InteractiveSession())3、注入机制4、指定gpu运算5、保存模型与载入模型示例完整代码如下可直接...
tensorflow 保存/加载模型
错误来源 最近在使用PyQt5做界面的时候,用Pycharm运行程序的时候遇到了这个错误 Process finished with exit code -1073740791 (0xC0000409) 上网查找解决方法
训练FCN时遇到的问题总结
按照下面这个博客的教程训练FCN http://blog.csdn.net/wangkun1340378/article/details/70238290 刚开始了出现‘SIFFlowSegDataLayer’object has no attribute'param_str'的错误: 原因是由于我用的caffe是官神mnt文件夹中的caffe,改成用主目录中的caffe就好了 或者还
机器学习中交叉熵cross entropy是什么,怎么计算?
项目背景:人体动作识别(分类),CNN或者RNN网络,softmax分类输出,输出为one-hot型标签。 loss可以理解为预测输出pred与实际输出Y之间的差距,其中pred和Y均为one-hot型。 计算loss的意义在于为接下来的optimizer提供优化的指标,即optimizer优化的目的为最小化loss。 在使用softmax层进行分类时,loss一般使用交叉熵cross_en...
从RNN的输出结果到loss的计算
首先在得到embeddingout的结构后,声明一个RNN单元,大小为10 cell = tf.nn.rnn_cell.BasticRNNCell(num_utis = 10) 计算output和state output,state = tf.nn.dynamic_rnn(cell,embedding_output,dtype = tf.float32) 然后可以添加droupout o
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 大学里面的java班 深度学习tensorflow课程