2015-11-21 49 views

回答

5

(1)你確定你需要這個嗎?最小化l2 loss將爲您提供與RMSE誤差最小化相同的結果。 (通過數學計算:不需要取平方根,因爲當x> 0時,使x^2最小化x,並且知道一串方塊的總和爲正數。使x * n最小化x對於常數n)。

(2)如果您需要了解RMSE誤差的數值,然後直接從definition of RMSE實現它:

tf.sqrt(tf.reduce_sum(...)/n) 

(你需要知道或計算出n - 中元素的個數總和,並在調用reduce_sum時適當地設置減速軸)。

+1

@dga這裏不是'tf.sqrt(tf.reduce_mean(...))'是一個更好的選擇嗎? – goelakash

+1

@goelakash - 可能!我一直在嘗試將我關聯的典型RMSE公式進行最清晰的音譯,但實際上,'tf.reduce_mean'是更好的選擇。 – dga

+0

由於你看起來相當損失計算,你可能能夠幫助我解決這個問題:[question](https://stackoverflow.com/questions/44717224/when-using-rmse-loss-in-tensorflow-i -receive-very-small-loss-values-smalerl-than)@dga – thigi

27
tf.sqrt(tf.reduce_mean(tf.square(tf.subtract(targets, outputs)))) 
+0

至少請接受答案:D –

8

公式爲root mean square error是:

enter image description here

實現它在TF的方式是tf.sqrt(tf.reduce_mean(tf.squared_difference(Y1, Y2)))


重要的是要記住的是,沒有必要使優化器的RMSE損失最小化。使用相同的結果,您可以將tf.reduce_mean(tf.squared_difference(Y1, Y2))甚至tf.reduce_sum(tf.squared_difference(Y1, Y2))最小化,但由於它們具有較小的操作圖形,因此它們的優化速度會更快。

但是,如果您只想描述RMSE的值,則可以使用此函數。

相關問題