RMSE/ RMSLE-Verlust-Funktion im Keras

Ich versuche, an meinem ersten Kaggle-Wettbewerb, wo RMSLE ist gegeben, da die geforderte-Verlust-Funktion. Denn ich habe nichts gefunden, wie zum implementieren dieser loss function ich habe versucht, dich für RMSE. Ich weiß, das war Teil Keras in der Vergangenheit, gibt es eine Möglichkeit, es zu benutzen in der neuesten version, vielleicht mit einer benutzerdefinierten Funktion, die über backend?

Dies ist der NN, die ich entworfen:

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)

Habe ich versucht, eine benutzerdefinierte root_mean_squared_error Funktion fand ich auf GitHub, aber ich weiß die syntax ist nicht das, was erforderlich ist. Ich denke, die y_true und die y_pred müssten definiert werden, bevor Sie an die zurückgeben, aber ich habe keine Ahnung wie genau, ich habe gerade angefangen mit der Programmierung in python, und ich bin wirklich nicht gut in Mathe...

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)) 

Erhalte ich den folgenden Fehler mit dieser Funktion:

ValueError: ('Unknown loss function', ':root_mean_squared_error')

Vielen Dank für Eure Ideen, ich Schätze jede Hilfe!

  • Die root_mean_squared_error Sie definiert, scheint gleichbedeutend mit 'mse'(mean squared error) in keras. Nur zur info.
InformationsquelleAutor dennis | 2017-05-08
Schreibe einen Kommentar