繁体   English   中英

如何在TensorFlow中定义自己的运算符

[英]How do I define my own operators in TensorFlow

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

正如评论所建议的那样,有一个向TensorFlow添加操作的操作指南。 本指南介绍了如何添加用C ++实现的新操作。 通常,您应该在以下情况下执行此操作:

  • op不能使用现有的TensorFlow操作来实现(例如, l1_loss 可以使用现有的逐元素简化运算符作为Python函数来实现)。
  • 出于性能(或内存消耗)的原因,C ++实现是必需的。
  • op可以实现为ops的组合, 但是它具有可以比逐个运算的梯度计算更有效(或具有更好的数值稳定性)的梯度。 (这就是tf.nn.l2_loss在C ++中实现为融合操作的原因。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM