我在tensorflow中有成本函数。
activation = tf.add(tf.mul(X, W), b)
cost = (tf.pow(Y-y_model, 2)) # use sqr error for cost function
我正在尝试this example。如何将其更改为rmse cost function?
答案 0 :(得分:44)
A* B::getAobj()
{
return obj;
}
答案 1 :(得分:15)
在TF中实现它的方法是dump()
。
要记住的重要一点是,不需要使用优化器最小化RMSE损失。使用相同的结果,您可以最小化tf.sqrt(tf.reduce_mean(tf.squared_difference(Y1, Y2)))
甚至tf.reduce_mean(tf.squared_difference(Y1, Y2))
,但由于它们的操作图较小,因此可以更快地进行优化。
但如果您只想获取RMSE的值,则可以使用此功能。
答案 2 :(得分:5)
(1)你确定需要这个吗?最小化l2 loss将得到与最小化RMSE错误相同的结果。 (通过数学计算:你不需要取平方根,因为最小化x ^ 2仍然最小化x为x> 0,并且你知道一组正方形的总和是正的。最小化x * n使x最小化对于常数n)。
(2)如果你需要知道RMSE错误的数值,那么直接从definition of RMSE实现它:
tf.sqrt(tf.reduce_sum(...)/n)
(您需要知道或计算n - 总和中元素的数量,并在调用reduce_sum时适当设置缩小轴。)
答案 3 :(得分:4)
现在我们有tf.losses.mean_squared_error
因此,
RMSE = tf.sqrt(tf.losses.mean_squared_error(prediction, label))
答案 4 :(得分:2)
对于想要将RMSE用作指标的人
<a class="mr-2" href="{% url 'user-feed' post.author.username %}">{{ post.author }}</a>
使用方法示例
rmse = tf.keras.metrics.RootMeanSquaredError()