the op. For example, the "input dtype" here is not the dtype of the
   input tensor passed to the quantized linear op. Though it can still
   be the same as the interface dtype, this is not always the case,
   e.g. the interface dtype is fp32 in dynamic quantization but the
   "input dtype" specified in the DTypeConfig would still be quint8.
   The semantics of dtypes here are the same as the semantics of the
   dtypes specified in the observers.
These dtypes are matched against the ones specified in the userâs
   QConfig. If there is a match, and the QConfig satisfies the
   constraints specified in the DTypeConfig (if any), then we will
   quantize the given pattern using this DTypeConfig. Otherwise, the
   QConfig is ignored and the pattern will not be quantized.
Example usage:
  >>> dtype_config1 = DTypeConfig(
  ...     input_dtype=torch.quint8,
  ...     output_dtype=torch.quint8,
  ...     weight_dtype=torch.qint8,
  ...     bias_dtype=torch.float)
