Volatile variables does not require gradient computation by default (check .requires_grad). Volatile property is also transfered to the variables on the upper computational graph.  Could you check other variables’ requires_grad property to be sure that training is happening?