首页 > 解决方案 > 如何获取使用两次的变量

问题描述

我的问题是关于 tf.function-decorated 函数,它抱怨该变量被使用了两次?

ValueError: tf.function-decorated function tried to create variables on non-first call.

我如何在 colab/jupyter 笔记本中调试它以获取此变量的名称?

标签: tensorflow2.0

解决方案


你应该看看这篇文章的这一部分——它包含了你现在面临的问题的描述。

简而言之,您在函数内部定义 a tf.Variable(一个或多个)。即使您仅调用此函数一次,也会tf.function执行该函数超过 1 次以将其转换为其图形表示,从而tf.function引发您遇到的异常。

您必须重构代码才能在函数体之外声明任何变量。在撰写本文时,无法知道哪个变量导致了错误(因为曾经tf.Variable在对象中声明会使 tf.function 引发相同的错误)


推荐阅读