我认为TensorFlow中的tf.py_func
函数不能使用任何TF操作并且基本上应该是纯python / numpy吗?例如,我似乎无法做到这样的事情:
def my_py_func(values):
return tf.greater(values, 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
- 这将允许您在Python函数中使用TensorFlow操作(因为在此上下文中启用了急切执行)功能)。此功能正在积极开发中,因此如果它对您很重要,请确保在Github问题列表中插入。特别是,Python函数也可以在GPU上提供function inverseStartButtonState(enabled, amountOfTime) {
this.enableStartJob = !this.enableStartJob;
if ( !enabled )
{
setTimeout(() => {this.inverseStartButtonState(!enabled); }, amountOfTime);
}
}
执行操作,也是可以区分的。
希望有所帮助。