Tôi cố gắng tham gia cuộc thi Kaggle đầu tiên của mình, trong đó RMSLE
được đưa ra làm chức năng mất yêu cầu. Vì tôi không tìm thấy cách thực hiện điều này loss function
Tôi đã cố gắng giải quyết cho RMSE
. Tôi biết đây là một phần của Keras
trong quá khứ, có cách nào để sử dụng nó trong phiên bản mới nhất, có thể với chức năng tùy chỉnh qua backend
?Chức năng mất RMSE/RMSLE trong Keras
Đây là NN tôi thiết kế:
from keras.models import Sequential
from keras.layers.core import Dense , Dropout
from keras import regularizers
model = Sequential()
model.add(Dense(units = 128, kernel_initializer = "uniform", activation = "relu", input_dim = 28,activity_regularizer = regularizers.l2(0.01)))
model.add(Dropout(rate = 0.2))
model.add(Dense(units = 128, kernel_initializer = "uniform", activation = "relu"))
model.add(Dropout(rate = 0.2))
model.add(Dense(units = 1, kernel_initializer = "uniform", activation = "relu"))
model.compile(optimizer = "rmsprop", loss = "root_mean_squared_error")#, metrics =["accuracy"])
model.fit(train_set, label_log, batch_size = 32, epochs = 50, validation_split = 0.15)
Tôi đã thử một root_mean_squared_error
chức năng tùy biến tôi tìm thấy trên GitHub nhưng đối với tất cả tôi biết cú pháp không phải là những gì được yêu cầu. Tôi nghĩ rằng y_true
và y_pred
sẽ phải được xác định trước khi truyền cho sự trở lại nhưng tôi không có ý tưởng như thế nào một cách chính xác, tôi chỉ mới bắt đầu với lập trình trong python và tôi thực sự không phải là tốt trong toán học ...
from keras import backend as K
def root_mean_squared_error(y_true, y_pred):
return K.sqrt(K.mean(K.square(y_pred - y_true), axis=-1))
Tôi nhận được lỗi sau với chức năng này:
ValueError: ('Unknown loss function', ':root_mean_squared_error')
Cảm ơn ý tưởng của bạn, tôi đánh giá cao mọi trợ giúp!
trình hoàn toàn tốt đẹp, cảm ơn bạn rất nhiều vì đã chỉ ra sai lầm đó. Tôi thực sự không nghĩ về nó theo cách đó vì tôi là người mới lập trình. Bạn sẽ không biết bằng cách nào để chỉnh sửa hàm tùy chỉnh này để nó tính toán sai số LOGARITHMIC vuông trung bình gốc, phải không? – dennis
Nó cung cấp cho tôi chức năng mất không xác định: root_mean_squared_error – Jitesh
@Jitesh Vui lòng không đưa ra nhận xét như vậy, tạo câu hỏi của riêng bạn với mã nguồn. –