Mam problemy z odzyskiwaniem tensora po imieniu, nawet nie wiem, czy to możliwe.Tensorflow: Jak uzyskać tensor po imieniu?
Mam funkcję, która tworzy mój wykres:
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
Chcę uzyskać dostęp do zmiennej S1_conv1 poza tą funkcją. Próbowałem:
with tf.variable_scope('scale_1') as scope_conv:
tf.get_variable_scope().reuse_variables()
ft=tf.get_variable('Scale1_first_relu')
Ale to daje mi błąd:
ValueError: Under-sharing: Zmienna scale_1/Scale1_first_relu nie istnieje, niedozwolone. Czy chcesz ustawić ponowne użycie = Brak w VarScope?
Ale to działa:
with tf.variable_scope('scale_1') as scope_conv:
tf.get_variable_scope().reuse_variables()
ft=tf.get_variable('W_S1_conv1')
mogę obejść ten problem z
return S3_conv1,regularizer, S1_conv1
ale nie chcę tego robić.
Myślę, że moim problemem jest to, że S1_conv1 nie jest zmienną, to tylko tensor. Czy istnieje sposób, aby zrobić to, co chcę?
Dla odniesienia, jeśli potrzebujesz PO zamiast tensora: http://stackoverflow.com/questions/42685994/how-to-get-a-tensorflow-op-by-name –
@apfalz Jak dotrzeć "przykład: 0" dla nazwy tensora? – Bosen
Nie jestem pewien, czy dostaję twoje pytanie, ale w powyższym przykładzie, jeśli wydrukujesz 'e.nazwa', będziesz wiedział, że nazwa to' przykład: 0'. Tensorflow dodaje ': 0' do podanej nazwy. – apfalz