在Tensorflow&#39的py_func中定义张量

时间:2017-12-28 14:45:14

标签: tensorflow

我认为TensorFlow中的tf.py_func函数不能使用任何TF操作并且基本上应该是纯python / numpy吗?例如,我似乎无法做到这样的事情:

def my_py_func(values):
    return tf.greater(values, 1)

1 个答案:

答案 0 :(得分:3)

这是正确的,tf.py_func提供了numpy数组,并且预计也会返回一个numpy数组。

TensorFlow操作(如py_func等)通常不会立即执行,而是返回图形中符号张量的句柄。因此,在tfe.py_func中使用它们并不合理,因为它们只会向某些图形添加操作。

但是,TensorFlow的eager execution功能(blog post)会立即执行TensorFlow操作。

在TensorFlow的未来版本(版本1.5以后)中,您应该能够使用tfe.py_func - 这将允许您在Py​​thon函数中使用TensorFlow操作(因为在此上下文中启用了急切执行)功能)。此功能正在积极开发中,因此如果它对您很重要,请确保在Github问题列表中插入。特别是,Python函数也可以在GPU上提供function inverseStartButtonState(enabled, amountOfTime) { this.enableStartJob = !this.enableStartJob; if ( !enabled ) { setTimeout(() => {this.inverseStartButtonState(!enabled); }, amountOfTime); } } 执行操作,也是可以区分的。

希望有所帮助。