我尝试参加我的第一次 Kaggle 比赛RMSLE
给出作为所需的损失函数。因为我没有找到如何实现这个loss function
我试图满足于RMSE
。我知道这是一部分Keras
过去,有什么方法可以在最新版本中使用它,也许通过定制功能backend
?
这是我设计的神经网络:
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)
我尝试了定制root_mean_squared_error
我在 GitHub 上找到了函数,但据我所知,语法不是必需的。我觉得y_true
和y_pred
必须在传递给返回之前定义,但我不知道到底是如何定义的,我刚刚开始用 python 编程,我的数学真的不太好......
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))
我使用此函数收到以下错误:
ValueError: ('Unknown loss function', ':root_mean_squared_error')
感谢您的想法,我感谢每一个帮助!