Type erroe in tensorflow
来源:互联网 发布:七天网络账号 编辑:程序博客网 时间:2024/06/14 19:08
has invalid type<type 'numpy.ndarray'>, must be a string or Tensor
TypeError: Can not convert a float32 into a Tensor or Operation.
错误
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…..但是也很有趣.
阅读全文
0 0
- Type erroe in tensorflow
- ERROE
- ERROE
- tensorflow data type
- Update TensorFlow in Mac
- Seq2Seq in Tensorflow
- Seq2Seq in Tensorflow
- Mask RCNN in TensorFlow
- TensorFlow in Go
- LSTM in tensorflow
- 跑通 MobileNet in Tensorflow
- Custom Gradients in TensorFlow
- Tied weights in Tensorflow
- "nan" error in tensorflow
- Type-Conversion in Javascript
- reference type in cpp
- Type cast in C++
- Type in PowerShell
- MySQL语句整理
- pycharm的快捷键
- Android 异步消息处理
- linux下mysql ERROR 2002 (HY000)错误解决方法
- 关于加密和加签的说明
- Type erroe in tensorflow
- 171031_扭矩和功率的计算公式推导及记忆方法
- Android Handler中计时延迟的补偿方法
- weekly contest 56 第一题 1-bit and 2-bit Characters
- 如何快速验证你的创业想法是否可行?这里有7大策略
- html显示隐藏表格内外边框
- Maven(一)
- Ubuntu已经达到 MaxReports 限制,没有写入 apport 报告
- 英语之连词规则