Yes, working on log probabilities is not a bad idea, but be cautious, in the code snipped you send me the log softmax is applied on channels (dim=1) instead of spatial dimensions.
Yes, sorry, I do some errors when writing code too quickly ^^ I indeed wanted to say this:
heatmap = torch.rand(1,16,1,160,160).to(DEVICE)
heatmap = heatmap/torch.sum(heatmap , dim=(2,3,4), keepdim=True)

And yes, when someone say “linear activation”, usually it means no activation function at output of the layer (as classical layers are linear).