It seems that
ImageDataBunch cannot set the label weight since I am doing unbalanced multi-label classification problem. Is there any way to do it?
Additionally, I found binary_cross_entropy_with_logits is the default loss function for the multi-label problem, but I don’t know how to set the
pos_weight parameter, it seems to be useful for label weight, I don’t know, I tried this:
learner = create_cnn(data=data, arch=arch, loss_func=nn.BCEWithLogitsLoss(pos_weight=torch.from_numpy(my_weight)), ... )
But I got an exception when I fit:
RuntimeError: TensorIterator expected type torch.DoubleTensor but got torch.cuda.FloatTensor
I changed to:
RuntimeError: TensorIterator expected type torch.FloatTensor but got torch.cuda.FloatTensor
So how to handle the unbalanced multi-label problem? Thanks much!