2016-08-05 25 views
2

Gibt es irgendeine Möglichkeit, eine Berechnung auf einem Tensor im Graphen durchzuführen. mein GraphBerechnung auf einem Tensor als numpy Array in Graphen?

Beispiel:

slim = tf.contrib.slim 

def slim_graph(images, train=False): 
    with slim.arg_scope([slim.conv2d, slim.fully_connected], 
        activation_fn=tf.nn.relu, 
        weights_initializer=tf.truncated_normal_initializer(0.0, 0.01), 
        weights_regularizer=slim.l2_regularizer(0.0005)): 
     net = slim.repeat(images, 2, slim.conv2d, 64, [3, 3], scope='conv1') 
     // Do my compute by numpy on net 

     np_array_result = my_func(net) 

     // It will return a numpy array 
     // Use numpy array as input of graph 

     net = slim.max_pool2d(np_array_result, [2, 2], scope='pool1') 

     ... 
     return logits 
  • Können wir irgendwas wie das?
  • Wie erhalten Sie Feature-Maps im Graphen zur Berechnung?

I Graph in 2 Teile und verwenden Session.run trennen kann ([Part1]) Danach wird das Ergebnis füttern Eingangs es meine Funktion verwenden, dann Session.run ([Part2])

Aber es scheint komisch.

+0

ja, in 2 Teile zu trennen, wie Sie gezeigt haben, ist der Weg, es zu tun –

+0

@YaroslavBulatov: Wenn ich net weiterleiten, scheint es in Ordnung. Wie wir Verlustfunktion und Gradienten ausführen, wenn Trainingsschritt? Berechnen Sie einfach die Verluste, nachdem Sie das Ergebnis von Teil2 erhalten haben und wenden Sie Gradienten an? – kju

Antwort

1

Sie können tf.py_func Wrapper für Python-Funktionen verwenden.