Người dùng đã chỉ ra chính xác rằng bạn cần tf.get_collection()
. Tôi sẽ chỉ đưa ra một ví dụ đơn giản như thế nào để làm điều này:
import tensorflow as tf
with tf.name_scope('some_scope1'):
a = tf.Variable(1, 'a')
b = tf.Variable(2, 'b')
c = tf.Variable(3, 'c')
with tf.name_scope('some_scope2'):
d = tf.Variable(4, 'd')
e = tf.Variable(5, 'e')
f = tf.Variable(6, 'f')
h = tf.Variable(8, 'h')
for i in tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES, scope='some_scope'):
print i # i.name if you want just a name
Chú ý rằng bạn có thể cung cấp bất kỳ graphKeys và phạm vi là một biểu thức chính quy:
phạm vi: (. Tùy chọn) Nếu được cung cấp, danh sách kết quả được lọc thành chỉ bao gồm các mục có thuộc tính tên khớp với re.match. Các mặt hàng không có thuộc tính tên sẽ không bao giờ được trả về nếu phạm vi được cung cấp và lựa chọn hoặc sắp xếp lại có nghĩa là phạm vi không có mã đặc biệt bộ lọc theo tiền tố.
Vì vậy, nếu bạn sẽ vượt qua 'some_scope', bạn sẽ nhận được 6 biến.
Nguồn
2017-05-09 05:14:28
'tf.GraphKeys.VARIABLES' không được dùng nữa trong v0.12 (như tôi đã học được từ câu trả lời này: http://stackoverflow.com/a/40918792/1827383). Thay vào đó, hãy sử dụng 'tf.GraphKeys.GLOBAL_VARIABLES'. –
bạn có phải tạo ra một op ra khỏi đó và sau đó chạy nó trong một phiên? Có vẻ như mã không đầy đủ, bạn có nghĩ là nó tự chứa nó không? –
Cảm ơn câu trả lời của bạn! Làm thế nào về tình trạng này: có hai phạm vi phụ 'tf.variable_scope (1)' và 'tf.variable_scope (2nd)' bên trong một phạm vi 'tf.variable_scope (chính)' và tôi muốn nhận được hai danh sách các phạm vi '1' và '2' để tối ưu hóa riêng biệt. – ytutow