At what point are you comparing initial_current_params with final_current_params?
At the end of your program, initial_current_params and final_current_params will have the same values because they point to the same Parameters. (The parameters are updated in place and initial_current_params isn’t a copy).
To get a copy of the parameter values:
initial_current_params = [p.data.clone() for p in current_Q.parameters()]