2016-10-15 27 views
5

Tôi muốn tạo một hàm mất tùy chỉnh mà có một hạn trọng lượng đó là cập nhật dựa trên những gì kỷ nguyên Tôi đang ởLàm thế nào để tạo một hàm mất mà thay đổi theo thời đại trong Keras

Ví dụ:. Hãy nói rằng tôi có một chức năng mất mát trong đó có một trọng lượng beta, nơi beta tăng so với 20 kỷ nguyên đầu tiên ...

def custom_loss(x, x_pred): 
    loss1 = objectives.binary_crossentropy(x, x_pred) 
    loss2 = objectives.mse(x, x_pred) 
    return (beta*current_epoch/20) * loss1 + loss2 

Làm thế nào tôi có thể thực hiện một cái gì đó như thế này vào một chức năng mất keras?

Trả lời

0

Nhìn vào tài liệu của họ, họ đề cập rằng bạn có thể sử dụng các hàm biểu tượng theano/Tf trả về vô hướng cho mỗi điểm dữ liệu. Vì vậy, bạn có thể làm một cái gì đó như thế này

loss = tf.contrib.losses.softmax_cross_entropy(x, x_pred) * 
     (beta * current_epoch/20) + 
     tf.contrib.losses.mean_squared_error 

Bạn sẽ phải vượt qua x và x_pred như x và x_pred như tf.placeholders Tôi nghĩ rằng để tạo mô hình bạn có thể sử dụng keras nhưng sau đó một lần nữa bạn sẽ phải chạy biểu đồ tính toán với sess.run()

Tham chiếu: https://blog.keras.io/keras-as-a-simplified-interface-to-tensorflow-tutorial.html#using-keras-models-with-tensorflow

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