Using two different heads for both modalities and nn.CrossEntropyLoss sounds like a good idea.
However, for the sake of completeness, nn.BCELoss might also be used in a multi-label classification use case, i.e. when multiple classes are active for a single sample. In this particular case, @Kushaj’s suggestion could yield better results, so let us know if you were successful.