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

1个回答

可以是placeholder

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某些函数的小坑(持续更新)
刚刚接触tensorflow,正在跟tutorial学习。英文的官网经常上不了(shadowsocks不太稳定),退而求其次看极客学院翻译的中文教程.看见其中的一些奇奇怪怪的函数,这里mark一下nn.sparse_softmax_cross_entropy_with_logits()这个函数看名字都知道,是将稀疏表示的label与输出层计算出来结果做对比,函数的形式和参数如下:nn.sparse_
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...
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损失函数专题
一、分类问题损失函数——交叉熵(crossentropy) 交叉熵刻画了两个概率分布之间的距离,是分类问题中使用广泛的损失函数。给定两个概率分布p和q,交叉熵刻画的是两个概率分布之间的距离: 我们可以通过Softmax回归将神经网络前向传播得到的结果变成交叉熵要求的概率分布得分。在TensorFlow中,Softmax回归的参数被去掉了,只是一个额外的处理层,将神经网络的输出变成一个概
tensorflow中常见的loss函数
       损失函数(loss/cost)用于描述模型预测值与真实值的差距大小.       一般常见的有两种算法----均值平方差(MSE) 和 交叉熵。       参考:https://blog.csdn.net/qq_42413820/article/details/809360921)均值平方差    在tensorflow中没有独立的MSE函数,不过可以自己组合:    MSE = ...
机器学习-关于自定义损失函数(tensorflow笔记)
对于回归问题,最常用的损失函数是均方误差(MSE,mean squared error),但是对于实际问题,MSE可能是最接近于真实答案,但却不是能使实际问题利益最大化的选择。比如对于预测商品销量的问题,如果预测多了(预测值大于真实销量),损失的是商品的成本,如果预测少了(预测值小于真实销量),损失的是商品的利润。那有可能多预测一个少挣1元,而少预测一个就可能少挣10元。因此需要将损失函数与利润直...
TensorFlow学习(七):基本神经网络"组件"
基本的神经网络的激活函数和分类的函数
SSD算法Tensorflow版详解(二)
Loss函数计算SSD的Loss函数包含两项:(1)预测类别损失(2)预测位置偏移量损失:Loss中的N代表着被挑选出来的默认框个数(包括正样本和负样本),L(los)即位置偏移量损失是Smooth L1 loss(是默认框与GTbox之间的位置偏移与网络预测出的位置偏移量之间的损失),L(conf)即预测类别损失是多类别softmax loss,α的值设置为1.  Smooth L1 loss定...
[052]TensorFlow Layers指南:基于CNN的手写数字识别
TensorFlow Layers module 为容易的创建一个神经网络提供了高水平的API接口。它提供了很多方法帮助创建dense(全连接)层和卷积层,增加激活函数和应用dropout做归一化。在这个教程中,你会学到如何用layers构建一个卷积神经网络用于识别手写体数字,基于MNIST数据集。MNIST 数据集包括手写体数字0~9的6万个训练数据和1万个测试数据,并格式化为28*28像素单色图
【tensorflow 深度学习】10.用tensorflow处理自己的数据
1.数据    再kaggle里下载猫狗的图片数据,各12500张作为训练集,下载另外12500张作为训练集。这是一个二分类问题,可以让猫的标签为0,狗的标签为1。2.步骤    (1).生成图片和图片对应标签的lists。    (2).用lists列表生成tensorflow queue队列。    (3).使用一种tensorflow中的读取器读取队列。    (4).使用一种tensorf...
tensorflow的基本用法(四)——placeholder
tensorflow的基本用法(四)——placeholder
TensorFlow 训练多个loss函数技巧: 训练步骤,冻结部分层(freeze some scopes),从tensorboard检查问题
这两天使用TensorFlow训练一个多个损失函数的网络模型,自己搭建网络,调参训练,由于网络是一个两阶段的网络,具有三个损失函数,其中两个损失函数监督第一个阶段,一个损失函数家督第二个阶段,而且损失函数监督的并不全是最后一层,还有中间层,这需要调整我的训练方式。 训练方式 先分别训练第一阶段的两个损失函数 固定住第一阶段的网络的参数,只训练第二阶段网络参数 调整三个loss函数的正则化参...
(tensorflow)——tf.estimator自定义估算器使用方法
1 简介 在TensorFlow的UG中,他们强烈的建议在写Tensorflow程序时使用estimator的API,使用后发现的确好用!在github上一些开源程序也已经开始使用estimator,比如DeeplabV3+,关于DeeplabV3+的代码注释可以参考我的另一篇博客。 官方原话: We strongly recommend writing TensorFlow programs w...
Tensorflow不定长卷积与解卷积
Tensorflow不定长卷积与解卷积   在用CNN处理某些图像或时序输入时,需要考虑输入长度不固定的情况。例如在做场景文字识别时,输入的图像是已经被检测出来的长方形的包含文字的图像,这些 “检测框” 的长度不一。一般有两种做法,第一种从数据下手,将输入 padding 或 resize,所谓 padding 即给定一个固定长度,将短于该长度的样本补零,将长于该长度的样本截断或丢弃,所谓 res...
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
python中如何对Tensor变量赋值,输出,以placeholder为例
赋值必须用feed_dict 例如: import numpy as np import tensorflow as tf z1 = tf.placeholder(tf.float32,[3,2]) z2 = tf.placeholder(tf.float32,[2,3]) output = tf.matmul(z1,z2) temp1 = [[1,2],[4,2],[4
【tensorflow学习】卷积神经网络CNN(mnist数据集)
一、 导入数据from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets('MNIST_data/', one_hot=True)每个example的类label以one-hot形式设定。二、 运行TensorFlow的InteractiveSessionsess = tf.
构造函数里面的函数可不可以是private的
同上.我笨但我肯问,谢谢各位老大解答
tensorflow训练出现nan的讨论
本文讲述tensorflow训练时出现nan的原因,及其解决办法
TensorFlow 基本用法(一)
介绍在官方文档中MNIST入门中用到的函数 1. tf.placeholder(dtype, shape=None, name=None) dtype:数据类型 shape:数据形状 name:操作的命名(可以不指定) 返回值为Tensor类型 x = tf.placeholder("float", [None,784]) #None表示该维度长度任意 #返回值为Tensor("Pl...
Tensorflow实现损失函数
学习了一下用Tensorflow实现损失函数并且可视化的方法,代码如下,比较了4种回归算法的损失函数和4种分类算法的损失函数。 import matplotlib.pyplot as plt sess = tf.Session() # 用matplot绘制回归算法的损失函数 x_vals = tf.linspace(-1.,1.,500) target = tf.constant(0.) l2_
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.placeholder()函数
tensorflow.placeholder()函数 tensorflow.placeholder(dtype, shape=None, name=None) 此函数可以理解为形参,用于定义过程,在执行的时候再赋具体的值,placeholder相当于定义了一个位置,这个位置中的数据在程序运行时再指定。 参数: dtype:数据类型。常用的是tf.float32,tf.f
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 的逻辑回归详解
Logistic ( 逻辑回归 ) 一、基本概念简介以及理论讲解 1.1、回归 回归一般用于解决那些连续变量的问题,如:线性回归,它是通过最小化误差函数,来不断拟合一条直线,以计算出权重 w 和 偏差 b 的过程,它的目标是基于一个连续方程去预测一个值。 这里要讲解的 Logistic 回归,却常用于分类问题,也就是将观测值贴上某个标签,或者是分入某个预先定义的类别之中。回归应该...
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四种Cross Entropy算法实现和应用
交叉熵(Cross Entropy)是Loss函数的一种(也称为损失函数或代价函数),用于描述模型预测值与真实值的差距大小,常见的Loss函数就是均方平方差(Mean Squared Error),定义如下: ​  平方差很好理解,预测值与真实值直接相减,为了避免得到负数取绝对值或者平方,再做平均就是均方平方差。注意这里预测值需要经过sigmoid激活函数,得到取值范围在0到1之间的预测值。平方
TensorFlow基本概念
tensorflow 提供两个层次的API,底层的TensorFlow Core提供完整的控制,适用于研究者。高层的使用起来则更简单,如tf.contrib.learn,但是contrib仍在更新中TensorFlow Core层的操作TensorFlow中的数据单元都是用tensor表示,tensor的rank代表它的维度 使用时首先需要import import tensorflow as t
TensorFlow 实战之实现卷积神经网络
   本文根据最近学习TensorFlow书籍网络文章的情况,特将一些学习心得做了总结,详情如下.如有不当之处,请各位大拿多多指点,在此谢过。 一、相关性概念   1、卷积神经网络(ConvolutionNeural Network,CNN)             19世纪60年代科学家最早提出感受野(ReceptiveField)。当时通过对猫视觉皮层细胞研究,科学家发现每一个视觉神经...
tensorflow学习笔记——传入值之placeholder,feed_dict用法
描述 tensorflow中需要传入值时,要同时用到placeholder、feed_dict。 - placeholder定义输入值的类型,以及数据结构 - feed_dict,表示python中的字典(python中dist是字典,元素是键值对的存储模式),用于接收真实的输入值。 相关公式 矩阵乘法中的两个矩阵,以及输出结果为: [102131]×⎡⎣⎢310221⎤⎦⎥=[5...
深度学习手记(二)之占位符Placeholder
TensorFlow是一种符号式编程,它里面有各种计算流图和变量,今天来介绍一种占位符,它的好处是可以避免生成大量常量来提供输入数据,提高了计算图的利用率。其实,今天介绍这个Placeholder占位符还有一个原因:就是使用它经常会出现下面问题: (1)ValueError: Cannot feed value of shape (2,) for Tensor ‘input_2:0’, whic...
Google深度学习笔记 TensorFlow实现与优化深度神经网络
Google深度学习笔记 TensorFlow实现与优化深度神经网络
一次读写一个字符(fgetc fputc)
一次读写一个字符(fgetc fputc)#include "stdafx.h" #if 0 写往往比较简单,读略微复杂一些,需要判断何时读到文件结尾 所有对文件的读,进行判文件结尾都通过相应函数的返回值(EOF) 来进行判断,尽量少用feof(); 文本操作: ----写入一个字符 char fputc ( char ch, FILE * stream ); //写入成功,返回写入...
Tensorflow and CNNs 使用tensorflow构建卷积神经网络
本文是我在学习cnn时看到的一个教程,觉得不错,就翻译一下。才疏学浅,如有疏漏,还请见谅。 原文:A Guide to TF Layers: Building a Convolutional Neural Network 是来自TensorFlow的开发者文档 TensorFlow的layers模块提供了比较高级的API,使得我们能可以很方便的构建各种神经网络。它提供的方法可以方便的添加
Tensorflow学习笔记-输入数据处理框架
输入数据处理框架 # 创建文件列表,并通过文件列表来创建文件队列。在调用输入数据处理流程前,需要统一 # 所有的原始数据格式,并将它们存储到TFRecord文件中 # match_filenames_once 获取符合正则表达式的所有文件 files = tf.train.match_filenames_once('path/to/file-*-*') #
Tensorflow实例:实现经典损失函数
Tensorflow实现经典损失函数 神经网络模型的效果以及优化的目标是通过损失函数(Loss function)来定义的。如何判断一个输出向量和期望的向量有多接近呢? 交叉熵(cross entropy) 交叉熵刻画了两个概率分布之间的距离,它是分类问题中使用比较广的一种损失函数。给定两个概率分布p和q,通过q来表示p的交叉熵为: H(p,q)=−∑p(x)logq(x)H(p,q)...
罗斯基白话:TensorFlow+实战系列(三)常用损失函数与参数优化
主要总结常见损失函数以及神经网络的参数优化
处理placeHolder 的图片内容类型
对单元格里面放的 图片的 placeholderImage改变一下类型,原理是:   placeholderImage 后面应该放的是 UIImage  , 为了控制UIImage的内容大小的类型,我们需要有UIImageView, 才能控制它的类型,那么我们就可以利用将UIImageView(UIView) 转化为UIImage的 方法,我们对UIImageView 进行一下内容设置和填充一下
文章热词 tensorflow安装部署 tensorflow卷积网络 tensorflow的变量 tensorflow线性回归 tensorflow简介
相关热词 c++里面的for循环 c# 里面的静态代码块 c++里面的队列 人工智能方面的课程 人工智能方面的培训