根据文档,我可以tf.py_func用来定义自己的操作.它将接收Numpy数组,并且必须返回Numpy数组.它没有明确写在文档中,但我得出结论,它将绑定到CPU设备?
如果我将其与可能在GPU上运行的其他操作相结合,TF会贪婪地向GPU移动尽可能多的计算并自动在GPU和CPU之间传输内存tf.py_func吗?(就像Theano一样.)
是否有类似的tf.py_func定义GPU操作?
py_func是一个奇怪的 - 它在与用于创建op的解释器相同的Python解释器中运行Python代码.因此,如果您的周围操作是GPU,则会有GPU < - > CPU传输.此外,将有移动Python的地址空间和TensorFlow地址空间之间的数据复制(即的memcpy 这里)
如果你问如何在GPU上运行Python代码,那就是Numba.如果你在TensorFlow GPU中询问如何使用类似"功能"的东西,那就是Defun.通常,TensorFlow正朝着定义足够numpy特征的方向移动,这样您就不需要使用numpy,而是可以使用原生TF基元来实现您的函数.
在依赖TensorFlow引擎的同时,还有另一种潜在的Python-land方式.您可以创建一个实现模拟Python数字类型接口的Python包装器,但将实际工作委托给底层TensorFlow引擎.有点像numpy如何实现接口并将基础工作委托给BLAS库.
通过一些技巧,您可以使数据始终保留在GPU上.这里概述了概念验证实施
| 归档时间: |
|
| 查看次数: |
1891 次 |
| 最近记录: |