发新帖

3.2.2代码运行报错:Input 'y' of 'Mul' Op has type float6...

[复制链接]
496 5

快来加入 TensorFlowers 大家庭!

您需要 登录 才可以下载或查看,没有帐号?加入社区

x
Input 'y' of 'Mul' Op has type float64 that does not match type float32 of argument 'x'

是否和
a = tf.get_variable('a', dtype=tf.float32, shape=[], initializer=tf.zeros_initializer)
b = tf.get_variable('b', dtype=tf.float32, shape=[], initializer=tf.zeros_initializer)

这两行的dtype有关?
我修改为tf.float64后,报错:
  File "...", line 63, in imperative_grad
    tape._tape, vspace, target, sources, output_gradients)  # pylint: disable=protected-access
AttributeError: 'Variable' object has no attribute '_id'


是我哪里写的不对么?

精彩评论5

小上帝  TF荚荚  发表于 2018-10-7 22:11:43 | 显示全部楼层
本帖最后由 小上帝 于 2018-10-7 22:13 编辑

我和楼主遇到一样的问题。
第一个类型的问题可以在声明X和y的时候加上dtype=tf.float32
但是这个问题解决后就会出现AttributeError: 'Variable' object has no attribute '_id'错误,循着函数找回去根本不知道怎么改
小上帝  TF荚荚  发表于 2018-10-8 15:32:24 | 显示全部楼层
小上帝 发表于 2018-10-7 22:11
我和楼主遇到一样的问题。
第一个类型的问题可以在声明X和y的时候加上dtype=tf.float32
但是这个问题解决后 ...

我知道问题在哪里了,在开始加上下面这句话就好了
  1. tf.enable_eager_execution
复制代码
意思是使tf开启动态图模式
抖蕊咪发嗖啦嘻  TF荚荚  发表于 2018-10-11 23:10:34 来自手机  | 显示全部楼层
小上帝 发表于 2018-10-8 15:32
我知道问题在哪里了,在开始加上下面这句话就好了
意思是使tf开启动态图模式
...

我加了你那一句还是不行,我python版本是3.6
uio  TF荚荚  发表于 2018-10-21 23:25:54 | 显示全部楼层
小上帝 发表于 2018-10-8 15:32
我知道问题在哪里了,在开始加上下面这句话就好了
意思是使tf开启动态图模式
...

是的,加上这句启动动态图模式即可。
原理是,如果不开启动态图模式,
print("batch %d: loss %f" % (batch_index, loss.numpy()))
这句中的loss是一个张量,无法转化为numpy,开启动态图模式后即可直接转为numpy类型,似乎是这样。
唠嗑24  TF荚荚  发表于 2018-11-8 20:06:29 | 显示全部楼层
改成dtype=tf.float64
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

主题

帖子

6

积分
快速回复 返回顶部 返回列表