def METHOD_NAME(self, wrapper: ModuleWrapper, target_name: str, target: Tensor):
    def mean_reduce_func(converted_target: Tensor) -> torch.Tensor:
        return converted_target.detach().mean(dim=-1)
    if self.is_init or not self.check_target(wrapper, target_name):
        return
    target_space = wrapper.quantization_target_spaces[target_name]
    # init_target = target.data.detach().abs().mean() * 2 / (target_space.qmax ** 0.5)
    init_scale_target = torch.tensor([0.01]).to(target.device)
    init_zp_target = torch.tensor([(target_space.qmax - target_space.qmin) / 2]).to(target.device)
    if not target_space._scaler:
        target_space.scale.data = init_scale_target  # type: ignore
        target_space.zero_point.data = init_zp_target  # type: ignore
    else:
        # scale
        new_target_scale = init_scale_target.expand(target.shape).to(target.device)
        new_target_scale = target_space._scaler.shrink(new_target_scale, mean_reduce_func, keepdim=True)
        target_space.scale.data = new_target_scale  # type: ignore
        # zp
        new_target_zp = init_zp_target.expand(target.shape).to(target.device)
        new_target_zp = target_space._scaler.shrink(new_target_zp, mean_reduce_func, keepdim=True)
        target_space.zero_point.data = new_target_zp  # type: ignore