Nan gradient after loss.backward() because of Pow()

oh you were right!!! That line produced Nan values. Now I see why did you ask me to print out.

------------self.w--------

 Parameter containing:
tensor([[[[-0.3731,  2.3884,  0.9738],
          [-0.9576,  0.7097, -0.3284],
          [-0.1237, -0.4981, -0.0105]]]], requires_grad=True)

---------self.myParam--------

 Parameter containing:
tensor([0.2613], requires_grad=True)


---self.w**self.myParam---

 tensor([[[[   nan, 1.2555, 0.9931],
          [   nan, 0.9143,    nan],
          [   nan,    nan,    nan]]]], grad_fn=<PowBackward1>)


----------tempVar---------

 tensor([[[[    nan,  1.2555,  0.9931],
          [    nan,  0.9143,     nan],
          [-0.1237,     nan, -0.0105]]]], grad_fn=<SWhereBackward>)