Convert tensorflow saved_model from float32 to float16

I have a tensorflow saved model with float32 weights in a directory structure like below,

    variables\   (3.6GB)

I would like to cast all weight to float16 in order to reduce the size of the model. I have found tf.cast() method that can be applied to tensors. But it seems that there is no such method for casting the whole weights of a model. I guess that I have to read all layers of the model one by one and manually cast the weight to float16 and then save it using, but I don’t know how to do that.

Note1: I do NOT have access to the python code of the model definition, only the saved model.

Note2: I do NOT want to save it as tflite format.

@Rasoul did you give a try to steps in here?

Well, I have clearly mentioned that I don’t want to use tflite.