The class version doesn’t really have any “smart,” loss-specific
internals.

Ah, I see. Hm.

As written, your loss doesn’t care at all about the values of
output[0, 1] , output[0, 2] , output[2, 1] , and output[2, 1] .
So, in principle, these values – and the weights that produce
them – could drift off and become large. My gut tells me that it
might be beneficial (although hardly essential) to regulate these
output values (that don’t logically matter).

So including output[0, 1] , output[0, 2] , output[2, 1] , and output[2, 1] in the loss calculation even though they don’t matter has a regulating effect so that the network finds some weights that continually predict [0, 0] for [t_start, t_end] when class = 0, and penalises any changes that move away from that? I guess my original line of thinking was that having the network predict [t_start, t_end] for class = 0 would ‘distract’ from learning good weights for when I do care about [t_start, t_end] when class = 1. But I guess that’s theory vs. practice. Thanks for your help!