2016-12-01 14 views
5

Tôi đang cố gắng lấy tất cả các biến trong phạm vi biến, như được giải thích here. Tuy nhiên, dòng tf.get_collection(tf.GraphKeys.VARIABLES, scope='my_scope') đang trả về một danh sách trống mặc dù có các biến trong phạm vi đó.Tensorflow: tf.get_collection Không Trả về Biến trong Phạm vi

Dưới đây là một số mã ví dụ:

import tensorflow as tf 

with tf.variable_scope('my_scope'): 
    a = tf.Variable(0) 
print tf.get_collection(tf.GraphKeys.VARIABLES, scope='my_scope') 

mà in [].

Làm cách nào để nhận các biến được khai báo trong 'my_scope'?

+0

làm cảnh báo cho người đọc trong tương lai, lưu ý rằng 'name_scope' và' variable_scope' không giống nhau. –

Trả lời

9

Tên bộ sưu tập tf.GraphKeys.VARIABLES không được dùng nữa kể từ TensorFlow 0,12. Sử dụng tf.GraphKeys.GLOBAL_VARIABLES sẽ cho kết quả mong đợi:

with tf.variable_scope('my_scope'): 
    a = tf.Variable(0) 
print tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES, scope='my_scope') 
# ==> '[<tensorflow.python.ops.variables.Variable object at 0x7f33f67ebbd0>]' 
+0

Một số thông báo phản đối trong khi chạy sẽ tốt đẹp:) – Bily

+0

đối với tôi vẫn chưa hoạt động. Tôi có cần phải chuyển đồ thị ở đâu đó hoặc một cái gì đó như thế không? –

+0

Tôi đã thử sử dụng chính đối tượng đồ thị một cách trực tiếp và không hoạt động: 'graph.get_collection (name = 'scope_name')'. Bất kỳ ý tưởng whats sai? –

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