Hi everyone. I am developing a new method to learn the weight of each sample(not each batch or each class). But i get some error message, so i try to get some help from you, thanks for your reading!
At first, i wanna to use the loss function pytorch officially provided
nn.BCEWithLogitsLoss(weight=weight_score)
so i write a critetion, when i want to compute the loss wight sample_weight, i will call the forward function
class criterion(nn.Module):
def init(self):
super(criterion, self).init()
def forward(self, true, pred, score):
loss_fuc = nn.BCEWithLogitsLoss(weight=score)
return loss_fuc(pred, true)
But there is a error,
The size of tensor a (321) must match the size of tensor b (16) at non-singleton dimension 3
i don`t konw how to solve it, i get the shape of [true, pre, score] as follows:
torch.Size([16, 1, 321, 321])
torch.Size([16, 1, 321, 321])
torch.Size([16])
# batch_size = 16
So the key problem is “How to add a learnable weight of each sample when i compute loss?”
Thanks for your reading, i really want to solve this problem and continue my experiment
I will appreciate if there is another better solution for this problem, thanks again