gpt4 book ai didi

python - Keras 中的 RMSE/RMSLE 损失函数

转载 作者:行者123 更新时间:2023-12-03 01:56:51 25 4
gpt4 key购买 nike

我尝试参加我的第一次 Kaggle 竞赛,其中给出了 RMSLE 作为所需的损失函数。因为我没有找到如何实现这个损失函数,所以我尝试满足于RMSE。我知道这是过去 Keras 的一部分,有什么方法可以在最新版本中使用它,也许可以通过后端使用自定义功能?

这是我设计的神经网络:

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)

我尝试了在 GitHub 上找到的自定义 root_mean_squared_error 函数,但据我所知,语法不是必需的。我认为 y_true 和 y_pred 必须在传递给 return 之前定义,但我不知道到底是如何定义的,我刚刚开始用 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')

感谢您的想法,我感谢您的每一次帮助!

最佳答案

当您使用自定义损失时,您需要将其不带引号,因为您传递的是函数对象,而不是字符串:

def root_mean_squared_error(y_true, y_pred):
return K.sqrt(K.mean(K.square(y_pred - y_true)))

model.compile(optimizer = "rmsprop", loss = root_mean_squared_error,
metrics =["accuracy"])

关于python - Keras 中的 RMSE/RMSLE 损失函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43855162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com