我正在训练 PyTorch 模型来执行二元分类。我的少数群体约占数据的 10%,所以我想使用加权损失函数。的文档BCELoss说CrossEntropyLoss我可以为每个示例使用 a 'weight'。
但是,当我声明CE_loss = nn.BCELoss()ornn.CrossEntropyLoss()然后 do CE_Loss(output, target, weight=batch_weights), where output, target, and batch_weightsare Tensors of 时batch_size,我收到以下错误消息:
forward() got an unexpected keyword argument 'weight'
Run Code Online (Sandbox Code Playgroud) 我正在 PyTorch 中训练一个用于二元分类的深度学习模型,并且我有一个包含不平衡类比例的数据集。10%我的少数派课程由给定的观察结果组成。为了避免模型学习只预测多数类,我想WeightedRandomSampler在torch.utils.data我的DataLoader.
假设我有1000观察结果(900在类中0,100在类中1),并且我的数据加载器的批量大小100为。
如果没有加权随机抽样,我预计每个训练周期将包含 10 个批次。