J'ai du mal à récupérer un tenseur par son nom, je ne sais même pas si c'est possible.
J'ai une fonction qui crée mon graphique :
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
Je veux accéder à la variable S1_conv1 en dehors de cette fonction. J'ai essayé :
with tf.variable_scope('scale_1') as scope_conv:
tf.get_variable_scope().reuse_variables()
ft=tf.get_variable('Scale1_first_relu')
Mais cela me donne une erreur :
Erreur de valeur : Sous-partage : La variable scale_1/Scale1_first_relu n'existe pas, disallowed. Voulez-vous dire que vous avez défini reuse=None dans VarScope ?
Mais ça marche :
with tf.variable_scope('scale_1') as scope_conv:
tf.get_variable_scope().reuse_variables()
ft=tf.get_variable('W_S1_conv1')
Je peux contourner ce problème avec
return S3_conv1,regularizer, S1_conv1
mais je ne veux pas faire ça.
Je pense que mon problème est que S1_conv1 n'est pas vraiment une variable, c'est juste un tenseur. Existe-t-il un moyen de faire ce que je veux ?