2017-07-25 159 views
0

我已經做了一個新的操作,我想與AdamOptimizer一起使用它。我按照here的說明爲它創建了一個漸變,並將其添加到我的優化器的var_list中,但Tensorflow表示我的變量沒有處理器。Tensorflow如何支持使用自定義操作符的優化器?

是否支持優化器中的Tensorflow自定義操作? 優化器類是讓我創建一個新的處理器還是必須重寫compute_gradients的一部分?

還等什麼呢自動分化的意思是,由TF文檔指出:

爲了使新的OPS自動分化的工作,你必須註冊,其計算漸變關於OPS的輸入的梯度功能給出關於操作輸出的梯度。

謝謝!

+1

您的意思是添加自定義操作並註冊漸變?該陳述僅僅意味着我們通過應用鏈式規則來推斷梯度。用戶操作與常規操作稍有不同。一個很好的簡單例子應該是sigmoid。 – drpng

+0

不,我正在做一些不同的事情。感謝您對自動分化的澄清! – msun

回答

0

所以我發現我在做的事情不被Tensorflow優化器支持。

我試圖創建一個操作類似於Tensorflow變量的操作(即通過Optimizer::minimize()中的函數獲取更新),但是,我相信TF在處理器和我沒有完全理解的Eigen::Tensors中有些奇怪爲了更新與minimize()梯度,自然這不適用於操作類。