2015-11-21 34 views
6

Tôi có chức năng chi phí trong lưu lượng.cách đặt chức năng chi phí rmse trong tensorflow

activation = tf.add(tf.mul(X, W), b) 
cost = (tf.pow(Y-y_model, 2)) # use sqr error for cost function 

Tôi đang cố gắng this example. Làm thế nào tôi có thể thay đổi nó để rmse chức năng chi phí?

+0

Xin chào @Viki, bạn có thể chấp nhận câu trả lời của tôi không! –

Trả lời

5

(1) Bạn có chắc là bạn cần điều này không? Giảm thiểu số l2 loss sẽ cho bạn kết quả tương tự như giảm thiểu lỗi RMSE. (Đi qua toán học: Bạn không cần phải lấy căn bậc hai, bởi vì việc giảm thiểu x^2 vẫn giảm thiểu x cho x> 0, và bạn biết rằng tổng của một loạt các ô vuông là dương. Giảm thiểu x * n giảm thiểu x cho hằng số n).

(2) Nếu bạn cần phải biết giá trị số của sai số RMSE, sau đó thực hiện nó trực tiếp từ definition of RMSE:

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

(Bạn cần phải biết hay tính toán n - số phần tử trong tổng hợp, và thiết lập trục giảm một cách thích hợp trong cuộc gọi đến reduce_sum).

+1

@dga Sẽ không 'tf.sqrt (tf.reduce_mean (...))' là một lựa chọn tốt hơn ở đây? – goelakash

+1

@goelakash - có lẽ! Tôi đã cố gắng chuyển ngữ rõ ràng nhất của công thức RMSE điển hình mà tôi đã liên kết, nhưng trong thực tế, 'tf.reduce_mean' là một lựa chọn tốt hơn. – dga

+0

Vì bạn có vẻ khá thua lỗ nên bạn có thể giúp tôi với câu hỏi này: [câu hỏi] (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

ít nhất hãy chấp nhận câu trả lời: D –

8

Công thức root mean square error là:

enter image description here

Cách để thực hiện nó vào TF là tf.sqrt(tf.reduce_mean(tf.squared_difference(Y1, Y2))).


Điều quan trọng cần nhớ là không cần giảm thiểu RMSE với trình tối ưu hóa. Với cùng một kết quả, bạn có thể giảm thiểu chỉ tf.reduce_mean(tf.squared_difference(Y1, Y2)) hoặc thậm chí tf.reduce_sum(tf.squared_difference(Y1, Y2)) nhưng vì chúng có biểu đồ hoạt động nhỏ hơn, chúng sẽ được tối ưu hóa nhanh hơn.

Nhưng bạn có thể sử dụng chức năng này nếu bạn chỉ muốn khai thác giá trị của RMSE.

Các vấn đề liên quan