tensorflow.python.framework.errors_impl.OperatorNotAllowedInGraphError: using a tf.Tensor
as a Python bool
is not allowed in Graph execution. Use Eager execution or decorate this function with @tf.function.
Exception ignored in: >
Traceback (most recent call last):
File "/venv/lib/python3.6/site-packages/tensorflow_core/python/training/server_lib.py", line 158, in del
AttributeError: 'NoneType' object has no attribute 'UnimplementedError'
麻烦问下机器学习PAI,本地单机训练没问题,配了tf_config开启train_distribute: PSStrategy训练报这个错大概是啥问题?
错误信息 "tensorflow.python.framework.errors_impl.OperatorNotAllowedInGraphError: using a tf.Tensor
as a Python bool is not allowed in Graph execution. Use Eager execution or decorate this function with @tf.function." 表示在计算图执行中,使用 tf.Tensor
作为 Python 的布尔值是不允许的。建议在函数上加上 @tf.function
装饰器或者切换到 Eager Execution 模式。
异常信息 "Exception ignored in: > Traceback (most recent call last): File "/venv/lib/python3.6/site-packages/tensorflow_core/python/training/server_lib.py", line 158, in del AttributeError: 'NoneType' object has no attribute 'UnimplementedError'" 是由于某些原因导致服务器对象的销毁(del)时发生了异常。
这两个错误可能与 TensorFlow 的版本、代码逻辑和环境设置有关。我们可以尝试一些常见的解决方案来处理这些问题:
使用 Eager Execution 模式:Eager Execution 模式允许即时执行 TensorFlow 的操作,而不是构建静态图并进行计算。通过将以下代码添加到开头,可以启用 Eager Execution 模式:
import tensorflow as tf
tf.compat.v1.enable_eager_execution()
这样就可以避免第一个错误。
使用 tf.function
装饰器:如果你需要在计算图中运行代码,可以尝试给报错的函数加上 @tf.function
装饰器。这将使函数转换为 TensorFlow 的计算图,从而避免了相关错误。例如:
@tf.function
def my_function(...):
...
这样就可以解决第一个错误。
检查代码逻辑和环境设置:确保你的代码逻辑正确,并且各种配置项(如 tf_config
)已正确设置。
如果以上方法都不能解决问题,还请提供更多详细信息,例如使用的 TensorFlow 版本、完整的错误堆栈跟踪等,以便我们能够更好地帮助你解决问题。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
人工智能平台 PAI(Platform for AI,原机器学习平台PAI)是面向开发者和企业的机器学习/深度学习工程平台,提供包含数据标注、模型构建、模型训练、模型部署、推理优化在内的AI开发全链路服务,内置140+种优化算法,具备丰富的行业场景插件,为用户提供低门槛、高性能的云原生AI工程化能力。