Thank you so much for your reply.
Now things are hopefully clearer.
However, I am not using .int() in the forward path.  I am using a quantization function similar to this one here:
https://github.com/eladhoffer/utils.pytorch/blob/master/quantize.py 7
For copying a network I use the following:
        float_model_dict = cnn.state_dict()

and for quantization I use:
        for key, value in float_model_dict.items():
            quant_model_dict[key] = quant(value)

where quant is the quantization function. Then for loading a quantized model I use:
        cnn.load_state_dict(quant_model_dict)

Then I do Finally, I load the original model back and I update the weights as follows:
        cnn.load_state_dict(float_model_dict)
        optimizer.step()

is what I am doing write for that purpose? what is the best way to copy a network, do some math on it and load it again?
Thanks