AttributeError: ‘Tensor‘ object has no attribute ‘_numpy‘

问题描述:

在tf2.x环境下,自定义损失函数出错,想查看y_pred和y_true的值,使用K.eval(y_pred),y_pred.numpy()报错:
AttributeError: ‘Tensor’ object has no attribute ‘_numpy’

解决方法:

在model.compile()中将run_eagerly改为True,可以查看,但是运行速度会慢

分析原因:

run_eagerly参数设置模型是创建动态图还是静态图(默认是静态图,False)
Running eagerly 意味着你的模型会一步一步的运行,就像python code一样。动态图机制可能会使模型运行的缓慢,因为它使用不了以前版本静态图的优化方法;但是它的优点就是容易让你去debug
默认情况下,我们去compile你的模型,让它变成一个静态图,以获得最好的performance
参考博客
在tf2.x中,默认每个tensor都是有numpy的,但是在keras里面是没有的
github问题描述

你可能感兴趣的:(NLP(自然语言处理))