テンソルフローのコスト関数があります。テンソルフローでの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コスト関数に変更するにはどうすればよいですか?
テンソルフローのコスト関数があります。テンソルフローでの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コスト関数に変更するにはどうすればよいですか?
(1)本当に必要ですか? l2 lossを最小化すると、RMSEエラーを最小化するのと同じ結果になります。 (x^2を最小化するとx> 0のxを最小化するので、平方根をとる必要はありません。定数nについて)。
あなたはRMSEエラーの数値を知る必要がある場合(2)、その後、definition of RMSEから直接それを実装:
tf.sqrt(tf.reduce_sum(...)/n)
(Nを知っているか計算する必要がある - の要素数をreduce_sumの呼び出しで、reduce軸を適切に設定します)。
@dga 'tf.sqrt(tf.reduce_mean(...))'はここでより良いオプションになりますか? – goelakash
@goelakash - おそらく!私はリンクした典型的なRMSE式の最も明瞭な音訳をしようとしていましたが、実際には 'tf.reduce_mean'が良い選択です。 – dga
あなたは損失計算にかなり迷っているようですので、この質問で私を助けてくれるかもしれません:[質問](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 –
root mean square errorための式は:
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、あなたは私の答えを受け入れることができますか? –