Tensorflow: Como obter um tensor pelo nome?

Estou tendo problemas para recuperar um tensor pelo nome, nem sei se é possível.

Eu tenho uma função que cria meu gráfico:

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

Eu quero acessar a variável S1_conv1 fora desta função. Eu tentei:

with tf.variable_scope('scale_1') as scope_conv: 
 tf.get_variable_scope().reuse_variables()
 ft=tf.get_variable('Scale1_first_relu')

Mas isso está me dando um erro:

ValueError: Compartilhamento insuficiente: A variável scale_1 / Scale1_first_relu não existe, não é permitida. Você quis definir reutilizar = Nenhum no VarScope?

Mas isso funciona:

with tf.variable_scope('scale_1') as scope_conv: 
 tf.get_variable_scope().reuse_variables()
 ft=tf.get_variable('W_S1_conv1')

Eu posso contornar isso com

return S3_conv1,regularizer, S1_conv1

mas eu não quero fazer isso.

Acho que meu problema é que S1_conv1 não é realmente uma variável, é apenas um tensor. Existe uma maneira de fazer o que eu quero?

questionAnswers(3)

yourAnswerToTheQuestion