【问题标题】:How do I define my own operators in TensorFlow如何在 TensorFlow 中定义自己的运算符
【发布时间】:2015-11-27 10:24:22
【问题描述】:

在 TensorFlow 中,我们可以使用 tf.nn.l2_loss() 进行 L2 正则化。假设我想为 L1 正则化定义自己的正则化运算符(称为 tf.nn.l1_loss())。我该怎么做?我很难在 TensorFlow 源代码中找到运算符定义。

【问题讨论】:

  • 你看过this吗?
  • 啊太棒了。应该先搜索 API 文档。

标签: python deep-learning tensorflow


【解决方案1】:

正如评论所建议的,adding an op to TensorFlow 有一个操作指南。本指南介绍了添加一个用 C++ 实现的新操作。一般来说,您应该在以下情况下这样做:

  • 无法使用现有的 TensorFlow 操作来实现该操作(例如,l1_loss 可以使用现有的element-wisereduction 运算符作为 Python 函数来实现)。
  • 出于性能(或内存消耗)的原因,C++ 实现是必要的。
  • 运算可以实现为运算的组合,它具有比逐个运算计算梯度更有效(或具有更好的数值稳定性)计算的梯度。 (这就是为什么tf.nn.l2_loss 在 C++ 中被实现为一个融合操作。)

【讨论】:

    猜你喜欢
    • 2015-09-22
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    • 1970-01-01
    相关资源
    最近更新 更多