def meta_var_mean_correction(self, dim, *, correction, keepdim=False): dim = utils.reduction_dims(self.shape, dim) if keepdim: output_shape = tuple(self.shape[i] if i not in dim else 1 for i in range(self.ndim)) else: output_shape = utils.compute_reduction_output_shape(self.shape, dim) result1 = self.new_empty(output_shape, dtype=toRealValueType(self.dtype)) result2 = self.new_empty(output_shape) return result1, result2
def _reduction_meta(inp, dims, *, output_dtype=None): """ Meta function for single output reduction operations Stride logic is incorrect """ assert isinstance(inp, TensorLike) if output_dtype is None: output_dtype = inp.dtype output_shape = utils.compute_reduction_output_shape(inp.shape, dims) return TensorMeta(shape=output_shape, dtype=output_dtype, device=inp.device)
def meta_nanmedian(input): output_shape = utils.compute_reduction_output_shape( input.shape, tuple(range(input.dim())) ) return input.new_empty(output_shape)
def _compute_reduction_shape(self, dims, keepdim): if keepdim: return tuple(self.shape[i] if i not in dims else 1 for i in range(self.ndim)) return utils.compute_reduction_output_shape(self.shape, dims)