localh:

I am curious as to why, for binary classification, the model outputs 2 columns of logits that look like the above instead of 1 column.


You could deal with a binary classification use case in different ways:

You could use a single output and treat the output as the logit (or probability) representing the nagative and positive class. For this use case you would use nn.BCEWithLogitsLoss (or nn.BCELoss, if you are applying a sigmoid at the end. Note that logits + nn.BCEWithLogitsLoss give you more numerical stability)
Alternatively you could treat the binary classification as a 2-class multi-class classification. Foir this approach you would use two output units and either use logits + nn.CrossEntropyLoss or F.log_Softmax + nn.NLLLoss