簡體   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