2016-08-05 45 views
2

有沒有什麼辦法對圖中的張量做一些計算。在張量上作爲numpy數組在圖中計算?

比如我圖:

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 
  • 我們能做到出頭的那樣?
  • 如何獲得圖中的特徵映射來計算?

我可以圖形分成2份,並使用Session.run([part1的]) 之後使用該結果輸入我的功能,然後將其饋送到Session.run([2部分])

但它似乎很奇怪。

+0

是的,像你展示的那樣分成2個部分是做這件事的方式 –

+0

@YaroslavBulatov:當我做轉發網絡時,它似乎沒問題。 訓練步驟時我們如何運行損失函數和梯度?在得到第二部分的結果之後只需計算損失並對其應用梯度? – kju

回答

1

您可以使用tf.py_func包裝的python函數。

相關問題