前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tf.py_func

tf.py_func

作者头像
狼啸风云
修改2022-09-04 20:57:02
1.5K0
修改2022-09-04 20:57:02
举报
代码语言:javascript
复制
tf.py_func(
    func,
    inp,
    Tout,
    stateful=True,
    name=None
)

封装一个python函数并将其用作TensorFlow op。给定一个python函数func,它以numpy数组作为参数并返回numpy数组作为输出,将这个函数包装为张量流图中的一个操作。下面的代码片段构造了一个简单的TensorFlow图,它调用np.sinh() NumPy函数作为图中的操作:

代码语言:javascript
复制
def my_func(x):
  # x will be a numpy array with the contents of the placeholder below
  return np.sinh(x)
input = tf.placeholder(tf.float32)
y = tf.py_func(my_func, [input], tf.float32)

注意:tf.py_func()操作有以下已知的限制:

  • 函数体(即func)不会在GraphDef中序列化。因此,如果需要序列化模型并在不同的环境中恢复模型,则不应使用此函数。
  • 该操作必须在与调用tf.py_func()的Python程序相同的地址空间中运行。如果使用分布式TensorFlow,则必须运行tf.train。服务器与调用tf.py_func()的程序处于相同的进程中,您必须将创建的操作固定到该服务器中的设备上(例如,使用tf.device():)。

参数:

  • func: 一个Python函数,它接受ndarray对象作为参数并返回一个ndarray对象列表(或单个ndarray)。这个函数必须接受inp中有多少张量就有多少个参数,这些参数类型将匹配相应的tf。inp中的张量对象。返回的ndarrays必须匹配已定义的Tout的数字和类型。重要提示:func的输入和输出numpy ndarrays不能保证是副本。在某些情况下,它们的底层内存将与相应的TensorFlow张量共享。就地修改或在py中存储func输入或返回值。
  • inp: 一个张量对象的列表。
  • Tout: tensorflow数据类型的列表或元组,如果只有一个tensorflow数据类型,则使用单个tensorflow数据类型,指示func返回什么。
  • stateful: (布尔)。如果为真,则应该认为该函数是有状态的。如果一个函数是无状态的,当给定相同的输入时,它将返回相同的输出,并且没有可观察到的副作用。诸如公共子表达式消除之类的优化只在无状态操作上执行。
  • name: 操作的名称(可选)。

返回值:

  • func计算的张量或单个张量的列表。

原链接: https://tensorflow.google.cn/versions/r1.10/api_docs/python/tf/py_func?hl=en

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年06月17日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档