TypeError: Can not convert a float32 into a Tensor or Operation.

原创 2017年08月09日 21:03:55

错误

TypeError: Can not convert a float32 into a Tensor or Operation.
# 类型错误:不能将一个浮动32转换为一个张量或操作。

TypeError: Fetch argument 2.3025854 has invalid type <class 'numpy.float32'>, must be a string or Tensor. (Can not convert a float32 into a Tensor or Operation.)

如其意,类型错误:不能将一个浮动32转换为一个张量或操作。也就是在计算图实际运算的时候发生的错误,错误为数据类型错误,将应该是传入的张量或者操作的的地方传入了一个 float32 类型的数据.

分析

源码

      for step in range(1000):
            batch_xs, batch_ys = mnist.train.next_batch(100)
            _, Train_Loss = sess.run([Train_Step,Train_Loss], feed_dict={X: batch_xs, Y_true: batch_ys})
            print('Train step :',step,'Train_Losss :',Train_Loss)

错误产生的时候我查了查代码,没明白什么意思,后来debug才发现,是变量在第二遍运行的时候数据类型发生了改变,
变量的数据类型发生了改变

其改变是在第一遍的时候,仔细看源代码,输出的Train_Loss与后面sess.run([Train_Step,Train_Loss], feed_dict={X: batch_xs, Y_true: batch_ys})中的’Train_Loss’同名,显然第一遍运行之后,原本应该传入session的Train_Loss就从张量变成了 float32

解决方案

避免重名,使用不同的名字
如原来的

_, Train_Loss = sess.run([Train_Step,Train_Loss], feed_dict={X: batch_xs, Y_true: batch_ys})

改为

 _, train_loss = sess.run([Train_Step,Train_Loss], feed_dict={X: batch_xs, Y_true: batch_ys})

BUG就消失了
这是一个很低级的BUG…..但是也很有趣.

版权声明:转载请标明出处:http://blog.csdn.net/fontthrone

相关文章推荐

Cannot interpret feed_dict key as Tensor: Can not convert a method into a Tensor.

代码: input1 = tf.placeholder(tf.types.float32) input2 = tf.placeholder(tf.types.float32) output = tf....

builtins.ValueError: could not convert string to float:的问题

builtins.ValueError: could not convert string to float:

TensorFlow 遇到的问题(三)

关键字:TypeError: Cannot interpret feed_dict key as Tensor: Can not convert a int into a Tensor 解释:你...

【Tensorflow】报错:Cannot interpret feed_dict key as Tensor: The name 'x' refers to an operation, # > no

问题描述: 我尝试给一个tensor输入值的时候报错: Cannot interpret feed_dict key as Tensor: The name 'x' refers to an o...
  • ztf312
  • ztf312
  • 2017-06-04 15:12
  • 1861

[tensorflow]TypeError: Fetch argument .+ has invalid type

TypeError: Fetch argument * has invalid type type 'numpy.float32'>, must be a string or Tensor. (Can...

TensorFlow学习(二):变量常量类型

更新时间:2017.2.27 tensorflow 1.0出来了,API和以前有了一些不一样,所以这里把把之前的代码迁移到新的上面去。 格式有问题,慢慢调….一.概览还记的上节TensorFlow...

Tensorflow一些常用基本概念与函数(2)

摘要:本文主要对tf的一些常用概念与方法进行描述。为‘Tensorflow一些常用基本概念与函数’系列之二。
  • lenbow
  • lenbow
  • 2016-08-11 11:38
  • 32582

[tensorflow] feed_dict 传入序列

当前, tensorflow(1.0)还不是很人性化。 在session中传入序列参数到图模型中并不是很方便。 所以,现在只能将序列中每一个元素对应的tensor和实际值对应写入dict进行传送。 比...

Tensorflow踩坑记

这里是踩坑纪录,大家如果想看教程的话请出门右转~从前有个小孩,正在学习TF,一开始,写了个逻辑回归的优化程序:import tensorflow as tf import numpy as npx=t...

TypeError: Cannot convert Type TensorType(float32, matrix).....

TypeError: Cannot convert Type TensorType(float32, matrix)…..最下面链接给的错误是cannot conver… 64 to 32,解决方案是...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)