def forward(self, x: Tensor) -> Tuple[Tensor, Tensor, Tensor]: scale = self.scaling_impl(x) mask = x.abs().ge(self.threshold * scale) y = mask.float() * ternary_sign_ste(x) y = y * scale y = self.delay_wrapper(x, y) return y, scale, self.bit_width()
def forward(self, x: Tensor, zero_hw_sentinel: Tensor) -> Tuple[Tensor, Tensor, Tensor]: scale = self.scaling_impl(zero_hw_sentinel) mask = x.abs().ge(self.threshold * scale) y = mask.float() * ternary_sign_ste(x) y = y * scale return y, scale, zero_hw_sentinel + self.bit_width