Tensorflow: 如何通过名称获取张量?
Tensorflow: 如何通过名称获取张量?
我无法通过名称恢复一个张量,甚至不知道是否可能。
我有一个创建图表的函数:
def create_structure(tf, x, input_size,dropout): with tf.variable_scope("scale_1") as scope: W_S1_conv1 = deep_dive.weight_variable_scaling([7,7,3,64], name='W_S1_conv1') b_S1_conv1 = deep_dive.bias_variable([64]) S1_conv1 = tf.nn.relu(deep_dive.conv2d(x_image, W_S1_conv1,strides=[1, 2, 2, 1], padding='SAME') + b_S1_conv1, name="Scale1_first_relu") . . . return S3_conv1,regularizer
我想在函数外部访问变量S1_conv1。我尝试了:
with tf.variable_scope('scale_1') as scope_conv: tf.get_variable_scope().reuse_variables() ft=tf.get_variable('Scale1_first_relu')
但是这给我一个错误:
ValueError: Under-sharing: Variable scale_1/Scale1_first_relu does not exist, disallowed. Did you mean to set reuse=None in VarScope?
但是这个可以工作:
with tf.variable_scope('scale_1') as scope_conv: tf.get_variable_scope().reuse_variables() ft=tf.get_variable('W_S1_conv1')
我可以通过以下方式解决这个问题:
return S3_conv1,regularizer, S1_conv1
但是我不想这样做。
我认为我的问题是S1_conv1实际上不是一个变量,它只是一个张量。有没有办法实现我想要的?