2016-02-19 65 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

相关问题