我用 Tensorflow
和 skflow
创建神经网络;由于某种原因,我想获得给定输入的一些内部张量的值,所以我使用 myClassifier.get_layer_value(input, "tensorName")
, myClassifier
是 skflow.estimators.TensorFlowEstimator
.
但是,我发现很难找到张量名称的正确语法,即使知道它的名字(我在操作和张量之间感到困惑),所以我使用tensorboard绘制图形并查找名称 .
有没有办法在不使用张量板的情况下枚举图中的所有张量?
8 回答
你可以做
另外,如果您在IPython笔记本中进行原型设计,可以直接在笔记本中显示图形,请参阅Alexander的Deep Dream中的
show_graph
函数notebook通过使用get_operations,有一种方法可以比雅罗斯拉夫的答案稍快一些 . 这是一个简单的例子:
tf.all_variables()
可以为您提供所需的信息 .此外,this commit今天在TensorFlow Learn中提供了在估算器中提供函数
get_variable_names
,您可以使用它来轻松检索所有变量名称 .接受的答案只会为您提供一个包含名称的字符串列表 . 我更喜欢一种不同的方法,它可以(几乎)直接访问张量:
list_of_tuples
现在包含每个张量,每个张量都在一个元组内 . 您也可以调整它以直接获得张量:我想这也会做:
但与萨尔瓦多和雅罗斯拉夫的答案相比,我不知道哪一个更好 .
以前的答案很好,我只是想分享一个我写的选择Tensors的实用函数:
所以如果你有一个带有ops的图表:
然后跑
收益:
这对我有用:
由于OP要求提供张量列表而不是操作/节点列表,因此代码应略有不同: