我的模型有一个输出。但我想将损失分成 3 个不同的部分,以便我可以跟踪每个部分的进度。有没有办法用 keras 做到这一点?
也许我可以将相同的损失分量定义为指标,但有没有更优雅的方法?
您可以将损失定义为 Keras 层,然后可以手动添加所有损失和指标(如果需要)。
长话短说:
None为损失这是在代码中手动添加损失的方式:
loss_layer_names = {"my_loss", ...}
# Adding losses
for name in loss_layer_names:
layer = model.get_layer(name)
loss = (tf.reduce_mean(layer.output, keepdims=True))
model.add_loss(loss)
# Adding metrics
for name in loss_layer_names:
layer = model.get_layer(name)
loss = (tf.reduce_mean(layer.output, keepdims=True))
model.metrics_names.append(name)
model.metrics_tensors.append(loss)
model.compile(optimizer="adam", loss=[None] * len(model.outputs))
Run Code Online (Sandbox Code Playgroud)
modelKeras 模型在哪里
| 归档时间: |
|
| 查看次数: |
4383 次 |
| 最近记录: |