P. *_*eri 101 python tensorflow tensorboard skflow
我用Tensorflow和创造神经网络skflow; 出于某种原因,我想获得给定输入的一些内部张量的值,所以我正在使用myClassifier.get_layer_value(input, "tensorName"),myClassifier作为一个skflow.estimators.TensorFlowEstimator.
但是,我发现很难找到张量名称的正确语法,即使知道它的名字(我在操作和张量之间感到困惑),所以我使用tensorboard绘制图形并查找名称.
有没有办法在不使用张量板的情况下枚举图中的所有张量?
Yar*_*tov 180
你可以做
[n.name for n in tf.get_default_graph().as_graph_def().node]
Run Code Online (Sandbox Code Playgroud)
另外,如果您在IPython笔记本中进行原型设计,可以直接在笔记本中显示图形,请参阅show_graphAlexander的Deep Dream 笔记本中的功能
Sza*_*lcs 33
我将尝试总结答案:
获取图中的所有节点:(输入tensorflow.core.framework.node_def_pb2.NodeDef)
all_nodes = [n for n in tf.get_default_graph().as_graph_def().node]
Run Code Online (Sandbox Code Playgroud)
获取图中的所有操作:(输入tensorflow.python.framework.ops.Operation)
all_ops = tf.get_default_graph().get_operations()
Run Code Online (Sandbox Code Playgroud)
获取图中的所有变量:(输入tensorflow.python.ops.resource_variable_ops.ResourceVariable)
all_vars = tf.global_variables()
Run Code Online (Sandbox Code Playgroud)
获取图中的所有张量:(输入tensorflow.python.framework.ops.Tensor)
all_tensors = [tensor for op in tf.get_default_graph().get_operations() for tensor in op.values()]
Run Code Online (Sandbox Code Playgroud)
获取图表中的所有占位符:(输入tensorflow.python.framework.ops.Tensor)
all_placeholders = [placeholder for op in tf.get_default_graph().get_operations() if op.type=='Placeholder' for placeholder in op.values()]
Run Code Online (Sandbox Code Playgroud)
张量流 2
要在 Tensorflow 2 中获取图形,tf.get_default_graph()您不需要先实例化 atf.function并访问该graph属性,例如:
graph = func.get_concrete_function().graph
Run Code Online (Sandbox Code Playgroud)
哪里func是tf.function
Sal*_*ali 23
通过使用get_operations,有一种方法可以比Yaroslav的答案稍快一些.这是一个简单的例子:
import tensorflow as tf
a = tf.constant(1.3, name='const_a')
b = tf.Variable(3.1, name='variable_b')
c = tf.add(a, b, name='addition')
d = tf.multiply(c, a, name='multiply')
for op in tf.get_default_graph().get_operations():
print(str(op.name))
Run Code Online (Sandbox Code Playgroud)
小智 5
我认为这样做也可以:
print(tf.contrib.graph_editor.get_tensors(tf.get_default_graph()))
Run Code Online (Sandbox Code Playgroud)
但是,与萨尔瓦多和雅罗斯拉夫的答案相比,我不知道哪个更好。
接受的答案只会为您提供一个包含名称的字符串列表.我更喜欢一种不同的方法,它可以(几乎)直接访问张量:
graph = tf.get_default_graph()
list_of_tuples = [op.values() for op in graph.get_operations()]
Run Code Online (Sandbox Code Playgroud)
list_of_tuples现在包含每个张量,每个张量都在一个元组内.您也可以调整它以直接获得张量:
graph = tf.get_default_graph()
list_of_tuples = [op.values()[0] for op in graph.get_operations()]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
113107 次 |
| 最近记录: |