我有張量流的成本函數。如何在張量流中設置rmse成本函數
activation = tf.add(tf.mul(X, W), b)
cost = (tf.pow(Y-y_model, 2)) # use sqr error for cost function
我正在嘗試this example。我怎樣才能改變它的成本函數?
我有張量流的成本函數。如何在張量流中設置rmse成本函數
activation = tf.add(tf.mul(X, W), b)
cost = (tf.pow(Y-y_model, 2)) # use sqr error for cost function
我正在嘗試this example。我怎樣才能改變它的成本函數?
(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時適當地設置減速軸)。
@dga這裏不是'tf.sqrt(tf.reduce_mean(...))'是一個更好的選擇嗎? – goelakash
@goelakash - 可能!我一直在嘗試將我關聯的典型RMSE公式進行最清晰的音譯,但實際上,'tf.reduce_mean'是更好的選擇。 – dga
由於你看起來相當損失計算,你可能能夠幫助我解決這個問題:[question](https://stackoverflow.com/questions/44717224/when-using-rmse-loss-in-tensorflow-i -receive-very-small-loss-values-smalerl-than)@dga – thigi
tf.sqrt(tf.reduce_mean(tf.square(tf.subtract(targets, outputs))))
至少請接受答案:D –
實現它在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的值,則可以使用此函數。
嗨@Viki,你能接受我的回答! –