In DQNAgent, I think you may need to call `detach()` at line 90 to detach the target network from gradient evaluation.