keras - keras中的weighted_masked_objective
问题描述
根据Keras Code,Keras 计算损失值时会考虑可选的权重和掩码。
for i in range(len(self.outputs)):
if i in skip_target_indices:
continue
y_true = self.targets[i]
y_pred = self.outputs[i]
weighted_loss = weighted_losses[i]
sample_weight = sample_weights[i]
mask = masks[i]
loss_weight = loss_weights_list[i]
with K.name_scope(self.output_names[i] + '_loss'):
output_loss = weighted_loss(y_true, y_pred,
sample_weight, mask)
if len(self.outputs) > 1:
self.metrics_tensors.append(output_loss)
self.metrics_names.append(self.output_names[i] + '_loss')
if total_loss is None:
total_loss = loss_weight * output_loss
else:
total_loss += loss_weight * output_loss
另一方面,在Keras 文档中,我看到在 compile 函数中引入了基本的损失函数,然后可以在 fit 命令中引入样本或类权重。我不确定如何将第一个代码中的“权重和掩码”与第二个文档中的“样本和类权重”相关联。谁能给我更多解释?
我的应用程序实际上是一个卷积 LSTM 网络,我在其中输入一系列图像,并希望网络生成像素类的输出图(具有相同大小的输入图),但在训练期间某些像素没有有效标签。我应该使用重量还是面具,样本还是班级?
解决方案
推荐阅读
- db2 - 我在哪里可以下载 IBM DB2 ADO.NET 连接器?
- sql - 在包含硬编码 where 子句的查询上使用 pyodbc 参数太少会出错?
- rust - 在 Rust 中返回一个可变引用
- reactjs - 将 tailwindcss 添加到默认的 create-react-app 模板而不更改 react-script 运行命令
- mysql - MySQL (MariaDB) 上的第 5 个百分位
- r - 如何创建引用另一列的新列?
- php - ajax请求后PHP中的变量丢失
- java - SQLite Exception: near ")": 语法错误(代码 1 SQLITE_ERROR),不知道怎么回事
- html - 如何使此导航栏具有正确的高度?
- javascript - 将标签的值更改为用户名输入框当前未提交的值