Hi,
I do not know the implementation of those loss functions exactly (if they are modified), but if a criterion does not have any parameters, then sending to cuda makes no difference as there is no operation to change parameters in cuda.

  
    
    
    Is that ok not using 'criterion.cuda()' before criterion? 
  
  
    Hi, 
If I want to summarize, you only need to use .cuda on criterion if the criterion function has parameters. 
Here is the posts related to this situation: Move the loss function to GPU and Why `criterion.cuda()` is not needed but `model.cuda()` is? 
Bests
  


Bests