2016-01-11 18 views
5

Giả sử xVariable, tôi đã thấy sử dụng op.name như tf.scalar_summary(x.op.name, x) trong hướng dẫn. Tôi tự hỏi liệu tôi có thể thay thế x.op.name bằng số x.name nói chung hay không.Sự khác nhau giữa `variable.name` và` variable.op.name` là gì?

Sự khác nhau giữa hai loại là gì? Họ có hoán đổi cho nhau không?

with tf.name_scope('ab'): 
    a = tf.Variable(tf.constant(1), name="v1") 

a.name 
u'ab_1/v1:0' 

a.op.name 
u'ab_1/v1' 

Trả lời

9

Ngay bây giờ Variable.name bản đồ tài sản để tên của mutable Tensor trong đó biến được lưu trữ (chủ yếu vì một Variable thể được sử dụng bất cứ nơi nào một Tensor dự kiến). Tên Tensor được tạo ra từ tên của các hoạt động sản xuất chúng (một trường hợp này là Variable op) và chỉ số của đầu ra mà tensor tương ứng.

Bạn có thể sử dụng miễn phí tf.scalar_summary(x.name, x) thay cho tf.scalar_summary(x.op.name, x), nhưng hiển thị kết quả sẽ chứa dư thừa ":<N>" trong thẻ.

+0

'op.name' là gì? Hoặc, thuộc tính 'op' là gì? – colinfang

+3

Thuộc tính 'op' của' Tensor' hoặc 'Variable' là một con trỏ tới nút trong đồ thị TensorFlow tạo ra tensor đó hoặc — trong trường hợp' Biến '— sở hữu bộ lưu trữ cho tensor đó và tạo ra một tham chiếu có thể thay đổi được với bộ nhớ đó. Ops có tên đơn giản hơn nói chung vì đồ thị TensorFlow được biểu diễn dưới dạng tập hợp các op được đặt tên và mỗi tensor được đặt tên ngầm dựa trên op tạo ra nó. – mrry

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