tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'x_1' with dtype float and shape [?,227,227,3]
记一次超级蠢超级折磨我的bug。
报错内容:
tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'x_1' with dtype float and shape [?,227,227,3]
[[Node: x_1 = Placeholder[dtype=DT_FLOAT, shape=[?,227,227,3], _device="/job:localhost/replica:0/task:0/device:GPU:0"]()]]
[[Node: fc3/_33 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device_incarnation=1, tensor_name="edge_110_fc3", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]
错误理解起来很简单,没有给placeholder ‘x_1’赋值。
这是我的预测代码:
image = Image.open(imagefile)
image = image.resize([227, 227])
image_array = np.array(image)
image_array = image_array.astype(float)
image = np.reshape(image_array, [1, 227, 227, 3])
saver = tf.train.import_meta_graph("/home/ubuntu/demo/package/5.8_2000op_256batch/AlexNetModel.ckpt.meta")
graph = tf.get_default_graph()
prediction = graph.get_tensor_by_name("fc3:0")
x = graph.get_tensor_by_name("x:0")
with tf.Session() as sess:
saver.restore(sess, "/home/ubuntu/demo/package/5.8_2000op_256batch/AlexNetModel.ckpt")
Predict = sess.run(prediction, feed_dict={x: image})
max_index = np.argmax(Predict)
if max_index==0:
return "cat"
else:
return "dog"
之前是觉得image格式有问题,不能作为输入给x。
因为最初始,源码是这样写的:
image = Image.open(imagefile)
image = image.resize([227, 227])
image_array = np.array(image)
image = tf.cast(image_array,tf.float32)
image = tf.image.per_image_standardization(image)
image = tf.reshape(image, [1, 227, 227, 3])
而使用tf的方法,返回值是一个tensor,而tensor是无法赋值给placeholder定义的数据类型。
- sess.run()第一个参数是要fetch的变量,这个变量的类型只能是tensor或者string, 后面如果要加
feed_dict = {}, 注意feed的数据类型可以是Python scalars, strings, lists, numpy ndarrays, or TensorHandles,不能是tensor.fecth得到的变量是<type 'numpy.ndarray'>。一句话就是,在运行图的时,tensor用sess.run()取出来,然后再feed进去。
所以就把image的形状变化,tf.reshape()改为了np.reshape(),但是还有问题,报错为上面的You must feed a value for placeholder tensor 'x_1' with dtype float and shape [?,227,227,3].......
完了彻底把我整懵逼了,不知道应该给x什么样的输入了,但是又好奇怪,placeholder tensor 'x_1'那里来的,没有定义过 'x_1'这种东西呀。贴一下训练代码,placeholder的申请。
x = tf.placeholder(tf.float32, [None, 227, 227, 3],name='x')
y = tf.placeholder(tf.float32, [None, n_classes])
感觉没问题啊,挺好的啊。如果代码真的是这样确实没啥问题挺好的,关键是自己脑残,x = tf.placeholder(tf.float32, [None, 227, 227, 3],name='x')申请了两遍

删掉一个。OK了。很烦,困扰了自己好几天
tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'x_1' with dtype float and shape [?,227,227,3]的更多相关文章
- InvalidArgumentError: You must feed a value for placeholder tensor 'Placeholder_1' with dtype float and shape [?,10]
在莫烦Python教程的“Dropout 解决 overfitting”一节中,出现错误如下: InvalidArgumentError: You must feed a value for plac ...
- Tensorflow报错:InvalidArgumentError: You must feed a value for placeholder tensor 'input_y' with dtype
此错误神奇之处是每次第一次运行不会报错,第二次.第三次第四次....就都报错了.关掉重启,又不报错了,运行完再运行一次立马报错!搞笑! 折磨了我半天,终于被我给解决了! 问题解决来源于这边博客:htt ...
- faster-rcnn错误信息 : tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [21] rhs shape= [2]
faster-rcnn错误信息 : tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shap ...
- tensorflow.python.framework.errors_impl.OutOfRangeError: FIFOQueue
tensorflow.python.framework.errors_impl.OutOfRangeError: FIFOQueue 原创文章,请勿转载哦~!! 觉得有用的话,欢迎一起讨论相互学习~F ...
- Tensorflow 报错:tensorflow.python.framework.errors_impl.InternalError: Failed to create session.
问题描述 IDE:pycharm,环境中安装tensorflow-gpu 1.8.0 ,Cuda9 ,cudnn 7,等,运行代码 报错如下 tensorflow.python.framework.e ...
- 【err】tensorflow.python.framework.errors_impl.OutOfRangeError: RandomShuffleQueue
problem Traceback (most recent call last): File , in _do_call return fn(*args) File , in _run_fn opt ...
- ''tensorflow.python.framework.errors_impl.ResourceExhaustedError: OOM when allocating tensor with shape[?]'' 错误分析
这是tensorflow 一个经常性错误,错误的原因在于:显卡内存不够. 解决方法就是降低显卡的使用内存,途径有以下几种措施: 1 减少Batch 的大小 2 分析错误的位置,在哪一层出现显卡不够,比 ...
- tensorflow.python.framework.errors_impl.PermissionDeniedError: /data; Permission denied
在linux系统中,tensorflow跑mnist数据集出现错误,本应该自动下载的数据集 将mnist自动下载的路径,由/data/mnist之前的/删掉即可.改为data/mnist.
- 手写数字识别 ----在已经训练好的数据上根据28*28的图片获取识别概率(基于Tensorflow,Python)
通过: 手写数字识别 ----卷积神经网络模型官方案例详解(基于Tensorflow,Python) 手写数字识别 ----Softmax回归模型官方案例详解(基于Tensorflow,Pytho ...
随机推荐
- [noi.ac省选模拟赛]第10场题解集合
题目 比赛界面. T1 不难想到,对于一个与\(k\)根棍子连接的轨道,我们可以将它拆分成\(k+1\)个点,表示这条轨道不同的\(k+1\)段. 那么,棍子就成为了点与点之间的边.可以发现,按照棍子 ...
- Rectangle【思维+模拟】
Rectangle 题目链接(点击) frog has a piece of paper divided into nn rows and mm columns. Today, she would l ...
- 面试必问:分布式锁实现之zk(Zookeeper)
点赞再看,养成习惯,微信搜索[三太子敖丙]关注这个互联网苟且偷生的工具人. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的 ...
- CSS基础之简单介绍
网页诞生初期,没有描述样式的语言,创建了很多用于描述样式的标签.但这些标签破坏了html作为一门结构语言的表现. 于是,W3C在1995年开始起草CSS,提出将结构和样式分离的解决方案. 元素 元素是 ...
- numpy中的max和maximum
numpy科学计算包中有两个函数np.max()和np.maximum(),他们的功能截然不同.简单而言即前者作用于ndarray对象,求的是它自身的最大.而后者是一个数学上的取$\max$的效果,它 ...
- Zookeeper——分布式一致性协议及Zookeeper Leader选举原理
文章目录 一.引言 二.从ACID到CAP/BASE 三.分布式一致性协议 1. 2PC和3PC 2PC 发起事务请求 事务提交/回滚 3PC canCommit preCommit doCommit ...
- 解决错误 CS1617 Invalid option '7.1' for /langversion; must be ISO-1, ISO-2, Default or an integer in range 1 to 6.
解决错误 CS1617 Invalid option '7.1' for /langversion; must be ISO-1, ISO-2, Default or an integer in ra ...
- opencv C++构造并访问单通道和多通道Mat。
一:构造并访问单通道. int main(){ cv::Mat m=(cv::Mat_<int>(3,2)<<1,2,3,4,5,6); for(int i=0;i<m. ...
- 微信小程序-返回并更新上一页面的数据
小程序开发过程中经常有这种需求,需要把当前页面数据传递给上一个页面,但是wx.navigateBack()无法传递数据. 一般的办法是把当前页面数据放入本地缓存,上一个页面再从缓存中取出. 除此之外还 ...
- Java Agent(上)
1.java agent是什么? --->对用户透明,不侵入用户业务代码.让java虚拟机加载agent jar 2.java agent有什么用? --->应用场景例如:调用链追踪项目, ...