详细内容或原文请订阅后点击阅览
TensorFlow — 软件工程的范围
如何像软件工程师一样构建 TensorFlow 图。
来源:Another Datum您已经完成了模型的训练,现在是时候了解一下它学到了什么。您决定哪个张量应该有趣,然后在代码中查找它 - 找出它的名字。然后你突然想到 - 你忘了给它起个名字。您还忘了用命名范围包装逻辑代码块。这意味着您将很难获得对张量的引用。它适用于 Python 脚本和 TensorBoard:
您能看到在张量海洋中迷失的那个小红圈吗?找到它很难……
真扫兴!如果它看起来更像这样,那就更好了:
这更像它!形成逻辑单元的每一组张量都包装在命名范围内。
为什么不能以类似于您的代码的方式自动构建图形?我的意思是,很有可能你没有使用单个函数构建模型,对吧?你的代码库包含多个函数——每个函数都形成一个逻辑单元,值得拥有自己的命名范围!
假设你有一个张量 x,它由函数 f 定义,而函数 f 又被 g 调用。这意味着在编写代码时,你脑海中有这个逻辑结构:g -> f -> x。如果模型能够自动构建,使得张量的名称为 g/f/x,那不是很好吗?
x
f
g
g
f
x
g/f/x
想想看,这很简单。您所要做的就是检查所有函数并添加一行代码:
def f(): with tensorflow.name_scope(‘f’): # 定义张量
def f(): with tensorflow.name_scope(‘f’): # 定义张量
def f():
with tensorflow.name_scope(‘f’):
# 定义张量
那么这种方法有什么问题?
f
tensorflow.name_scope
foo
f
f
tensorflow.name_scope
import
re
def
(
f
):