2016-02-19 61 views
3

對於我的應用程序,我只能使用預定義的操作來創建一個新函數。在這種情況下是否需要定義一個新的操作?什麼時候應該定義一個新的TensorFlow操作?

僞代碼爲我的功能是:

z1 = myGauss(arg, arg2) 

def myGauss(arg, arg2): 
    # Here I only used defined tensorflow operations 

回答

5

如果你能實現自己爲自己設定與現有的OPS的成分做的,那麼這是偉大的!你不需要需要創建一個新的操作。

但是有一些情況,我們認爲有必要建立一個新的運算,:

  • 有時你可以通過融合 OPS一起到一個單一的運算來獲得性能。例如,許多"training" ops都具有融合實現,儘管它們最初是使用簡單操作實現的。

  • 另一個例子是當你想定義一個ops組合的梯度(因爲它更有效或穩定的考慮整個表達式)。這是像tf.nn.softmax_cross_entropy_with_logits()這樣的操作符的基本原理。

+1

你有任何意見上使用[tf.py_func(FUNC,INP,吹捧,名稱=無)](https://www.tensorflow.org/versions/r0.7/api_docs/python/ script_ops.html#py_func)說定義一個新的圖層或丟失函數?我主要問自v0.6.0的索引是不支持的。 – McMDA

相關問題