def _adjust_sym_val(self):
        """For sub-byte dtype var, adjust the sym_val to make sure it reflects the true dtype."""
        if types.is_list(self.sym_type):
            return

        if not types.is_sub_byte(self.dtype):
            return

        if isinstance(self.sym_val, (np.generic, np.ndarray)):
            np_val = self._sym_val.val
            if (
                np_val.dtype.metadata is None
                or types.SUB_BYTE_DTYPE_METADATA_KEY not in np_val.dtype.metadata
            ):
                target_np_dtype = types.nptype_from_builtin(self.dtype)
                self._sym_val.val = np_val.astype(target_np_dtype)
For sub-byte dtype var, adjust the sym_val to make sure it reflects the true dtype.
coremltools/converters/mil/mil/var.py