Lots of things can be at play here.
Is the .float() really useful. If so that is going to be relatively expensive (depending on the size of you DQN).
Why do you can .eval() every time? once should be enough no?
How did you install pytorch, do you use MKL/MKLDNN?