返回介绍

8.6 覆盖数据流图修饰器

发布于 2024-02-05 23:12:36 字数 1194 浏览 0 评论 0 收藏 0

当在如Jupyter Notebook这样的交互环境中使用TensorFlow时,函数修饰器是非常有用的。通常,在未明确指定使用其他数据流图时,TensorFlow会使用默认的数据流图。然而,在Jupyter Notebook中,解释器的状态会在不同单元(cell)执行期间保持。因此,初始的默认数据流图是始终存在的。

执行再次定义了数据流图运算的某个单元会试图将这些运算添加到它们已经存在的数据流图中。但是,在这种情况下TensorFlow会抛出一个错误。规避该错误的一个简单方法是根据菜单中的选项重新启动kernel并再次运行所有的单元。

然而,还有另外一种更好的方式。你只需创建一个定制的数据流图,并将其设置为默认的。所有的运算都将添加到该数据流图中,而且如果再次运行该单元,将会创建一个新的数据流图。旧的数据流图将被自动清理,因为已经不存在任何指向它的引用。

此外,还有一种更方便的做法——将数据流图的创建放在一个修饰器中,并用它修饰主函数。这个主函数应该定义完整的数据流图,例如定义占位符,并调用其他函数来创建模型。

这样会使上面的例子显得更容易:

以上便是本章的全部内容。接下来的最后一章将对全书进行总结。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文