AttributeError: module...ops‘ has no attribute ‘_TensorLike‘, ValueError: `updates` argument..eager

目的

keras和tensorflow结合使用很方便,然而坑点好多,好坑爹;
*问题是:
AttributeError: module ‘tensorflow.python.framework.ops’ has no attribute ‘_TensorLike’
原因在于keras导入的和tensorflow.keras导入的主次不同,结构有差异;

修改

*修改前
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation
from keras.optimizers import RMSprop

  • 修改后
    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Dense, Dropout, Activation
    from tensorflow.keras.optimizers import RMSprop

中间经历波折

一开始搜索的以前 python3.6 + keras那些是用:
tensorflow_backend.py 的 line703
def is_tensor(x):
return isinstance(x, tf_ops._TensorLike) or tf_ops.is_dense_tensor_like(x)
返回类型修改为:
return isinstance(x, core_tf_types.Tensor) or tf_ops.is_dense_tensor_like(x)
* 结果改了一个bug引入另一个:
* ValueError: updates argument is not supported during eager execution. 并且这个bug只有升级版本,然而我的已经是最新版本;纠结好久,一脸蒙圈。
* 最后恢复修改,重回搜索最开始错误的解法。找到上述一个。

总结

问题修改多尝试几个,如果一个问题的修改引入另一个,那么要么接着改问题;要么就返回原点,重新找答案。即,如果改了一个问题引入另一个,那么也许一开始的解法就是错误的。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值