class_docstr: Used in cases when the parameter should be used at half (16-bit) precision
  for compute purposes (i.e. on the forward and backward pass) but
  needs to be stored and optimized at single (32-bit) precision so tiny
  gradients with small learning rates don't underflow FP16 precision.
  A 32-bit copy of the 16-bit blob is stored in the ParameterInfo.
  This is helpful for mixed-precision training, see
  https://arxiv.org/abs/1710.03740 for details.
class_docstr_tok: ["Used","in","cases","when","the","parameter","should","be","used","at","half","(","16-bit",")","precision","for","compute","purposes","(","i.e",".","on","the","forward","and","backward","pass",")","but","needs","to","be","stored","and","optimized","at","single","(","32-bit",")","precision","so","tiny","gradients","with","small","learning","rates","do","n't","underflow","FP16","precision",".","A","32-bit","copy","of","the","16-bit","blob","is","stored","in","the","ParameterInfo",".","This","is","helpful","for","mixed-precision","training",",","see","https",":","\/\/arxiv.org\/abs\/1710.03740","for","details","."]
code: def create_param(self, param_name, init_net, shape):
      # create master fp32 copy
      param_fp32 = init_net.__getattr__(self.operator_name)(
          [], param_name + "_fp32", shape=shape, **self.operator_kwargs
      )
      # cast to fp16 copy
      param = init_net.FloatToHalf(param_fp32, param_name)
  
      return ParameterInfo(
          param_id=None,
          param=param,
          shape=shape,
          blob_copy={DataType.FLOAT: param_fp32},
      )
  
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 PseudoFP16Initializer obj's underlying member method code with example usage: obj.create_param(param_name, init_net, shape) and returns: ParameterInfo