在计算图中(默认计算图或者自定义计算图)可以通过tf.add_to_collection()
函数将资源加入一个或多个集合中,然后通过tf.get_collection()
函数获取一个集合里面的所有资源。
import tensorflow as tf
g = tf.Graph()
with g.as_default():
v1 = tf.Variable(initial_value=tf.zeros(shape=[2,3], dtype=tf.float32),trainable=False,name='v_g')
collection_g = tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES)
for coll in collection_g:
print(coll)
print(coll is v1)
with g.device('/gpu:0'):
with tf.Session(graph=g) as sess:
sess.run(tf.global_variables_initializer())
print(sess.run(v1))
##################################
f = tf.get_default_graph()
with f.as_default():
v1 = tf.Variable(initial_value=tf.ones(shape=[1], dtype=tf.int32),trainable=False,name='v1')
print(v1)
with tf.Session(graph = f) as sess:
sess.run(tf.global_variables_initializer())
print(sess.run(v1)) # 输出: [1]
with f.as_default():
collections = tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES)
for coll in collections:
print(coll)
print(coll is v1)