If you would like to use a multi-label classification (multiple outputs can have an active or inactive class), then you could use nn.BCEWithLogitsLoss as the criterion and make sure your model outputs have the shape [batch_size, nb_classes].
I’m not sure if -1 and 1 would correspond to a positive and negative case, but the target for nn.BCEWithLogitsLoss should contain values in [0, 1].