tf.py_func函数总结


参考链接:https://blog.csdn.net/jiongnima/article/details/80555387

tf.py_func(

  func,

  inp,

  Tout,

  stateful=True,

  name=None

)

在使用tf.py_func的过程中,主要核心是使用前三个参数。

第一个参数func,是最重要的,是一个用户自定义的函数,输入numpy array, 输出也是numpy array, 在该函数中,可以自由使用np.操作。

第二个参数inp,是func函数接收的输入,是一个列表

第三个参数Tout,指定了func函数返回的numpy array转化成tensor后的格式,如果是返回个值,就是一个列表元组;如果只有一个返回值,就是一个单独的dtype类型(当然也可以用列表括起来)

最后来看看tf.py_func的输出:

Returns:

A list of Tensor or a single Tensor which func computes.

输出是一个tensor(张量)列表或单个tensor。

到这里,tf.py_func的原理也就逐渐明晰了。首先,tf.py_func接收的是tensor(张量),然后将其转化为numpy array送入func(就是自定义的那条函数),最后再将func函数输出的Numpy array转化为tensor返回。

在使用过程中,有两个需要注意的地方,第一就是func函数的返回值类型一定要和Tout指定的tensor类型一致。第二就是,如下图所示,tf.py_func()中的func是脱离Graph的。在func中不能定义可训练的参数参与网络训练(反传)。

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM