2016-04-27 17 views
33

Tôi đang tạo lưới thần kinh với Tensorflowskflow; vì một lý do nào đó, tôi muốn lấy giá trị của một số tensors bên trong cho một đầu vào nhất định, vì vậy tôi đang sử dụng myClassifier.get_layer_value(input, "tensorName"), myClassifier là một skflow.estimators.TensorFlowEstimator. Tuy nhiên, tôi thấy khó tìm cú pháp chính xác của tên tensor, thậm chí biết tên của nó (và tôi bị nhầm lẫn giữa hoạt động và tensors), vì vậy tôi đang sử dụng tensorboard để vẽ biểu đồ và tìm kiếm tên.Trong Tensorflow, lấy tên của tất cả các Tensors trong một đồ thị

Có cách nào để liệt kê tất cả các tensors trong biểu đồ mà không sử dụng tensorboard không?

Trả lời

74

Bạn có thể làm

[n.name for n in tf.get_default_graph().as_graph_def().node] 

Ngoài ra, nếu bạn đang tạo mẫu trong một máy tính xách tay IPython, bạn có thể hiển thị đồ thị trực tiếp trong máy tính xách tay, xem show_graph chức năng trong sâu Giấc mơ của Alexander notebook

+0

Bạn có thể lọc điều này cho ví dụ: các biến bằng cách thêm 'if" Variable "vào n.op' ở cuối của việc hiểu. – Radu

5

tf.all_variables() có thể giúp bạn thông tin bạn muốn.

Ngoài ra, this commit đã thực hiện hôm nay trong TensorFlow Tìm hiểu rằng cung cấp hàm get_variable_names trong trình ước tính mà bạn có thể sử dụng để truy xuất tất cả các tên biến dễ dàng.

+0

Chức năng này không được chấp nhận – CAFEBABE

+3

... và người kế nhiệm của nó là 'tf.global_variables()' – bluenote10

+6

điều này chỉ tìm nạp các biến, chứ không phải là tensors. –

10

Có cách làm nhanh hơn một chút so với câu trả lời của Yaroslav bằng cách sử dụng get_operations. Dưới đây là một ví dụ nhanh:

import tensorflow as tf 
a = tf.constant(1.3, name='const_A') 
b = tf.Variable(3.1, name='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) 
+0

Tôi nghĩ rằng in (str (op.name)) trong dòng cuối cùng là chính xác. – Cristi

1

Tôi nghĩ rằng điều này sẽ làm quá:

print(tf.contrib.graph_editor.get_tensors(tf.get_default_graph())) 

Nhưng so với Salvado và câu trả lời Yaroslav, tôi không biết cái nào là tốt hơn.

Các vấn đề liên quan