class_docstr: Like PseudoFP16Initializer above, except the primary blob is taken to
  be the 32-bit precision parameter, and the 16-bit version of the blob
  is stored in blob_copy instead.
class_docstr_tok: ["Like","PseudoFP16Initializer","above",",","except","the","primary","blob","is","taken","to","be","the","32-bit","precision","parameter",",","and","the","16-bit","version","of","the","blob","is","stored","in","blob_copy","instead","."]
code: def create_param(self, param_name, init_net, shape):
      # create master fp32 copy
      param_fp32 = init_net.__getattr__(self.operator_name)(
          [], param_name, shape=shape, **self.operator_kwargs
      )
      # cast to fp16 copy
      param_fp16 = init_net.FloatToHalf(
          param_fp32, param_name + "_fp16"
      )
  
      return ParameterInfo(
          param_id=None,
          param=param_fp32,
          shape=shape,
          blob_copy={DataType.FLOAT16: param_fp16},
      )
  
file_path: pytorch/caffe2/python/modeling/initializers.py
imports: from caffe2.python.core import DataType, BlobReference, ScopedBlobReference
  from caffe2.python.modeling.parameter_info import ParameterInfo
label_desc: Use image node_id 2 for calling the ReversePseudoFP16Initializer obj's underlying member method code with example usage: obj.create_param(param_name, init_net, shape) and returns: ParameterInfo