gpt4 book ai didi

python - Keras损失似乎是错误的——加权和是错误的

转载 作者:太空宇宙 更新时间:2023-11-03 20:24:58 25 4
gpt4 key购买 nike

我使用带有 tensorflow 后端的 Keras 来训练具有多个输出但只有一个损失的模型(输出层“部分”上的 MSE)。定义如下:

model = Model(inputs=[image, year], outputs=outputs) # outputs is a list of 8 output layers
model_parallel = keras.utils.multi_gpu_model(model, gpus=2, cpu_merge=True, cpu_relocation=False)
losses = {'parts': keras.losses.mean_squared_error}
loss_weights = {'parts': 1.}
model_parallel.compile(loss=losses,
loss_weights=loss_weights,
optimizer=keras.optimizers.RMSprop(lr=args.lr)
)
model_parallel.fit_generator(generator=generator_training,
epochs=args.epochs,
verbose=1
)

fit_generator 打印总损失和我的 parts_loss:

33/5730 [..............................] - ETA: 14:28:59 - loss: 117.6318 - parts_loss: 97.1686

为什么总损失(=所有损失的加权和)与parts_loss不同?

最佳答案

总损失与 parts_loss 不同,因为它包含正则化项。换句话说,loss 计算为 loss = parts_loss + k*R,其中 R 是正则化项(通常是 L1 或 L2 范数)模型的权重)和 k 一个超参数,用于控制正则化损失在总损失中的贡献。

关于python - Keras损失似乎是错误的——加权和是错误的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57902381/

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