# RandomStructured Source: https://www.tensorplay.cn/docs/generated/tensorplay.ao.pruning.RandomStructured.html ```python class tensorplay.ao.pruning.RandomStructured(amount: int | float, dim: int = -1) ``` Zero out entire randomly selected channels of a tensor. Parameters: - amount – quantity of channels to prune. A float in [0, 1] denotes the fraction of channels to prune; an int denotes the absolute number of channels to prune. - dim – axis along which channels are defined. Default: -1. ```python classmethod apply(module: Module, name: str, amount: int | float, dim: int = -1) → BasePruningMethod ``` Install random structured pruning for module[name]. Parameters: - module – module containing the tensor to prune. - name – parameter name within module on which pruning acts. - amount – quantity of channels to prune. A float in [0, 1] denotes the fraction of channels to prune; an int denotes the absolute number of channels to prune. - dim – axis along which channels are defined. Default: -1. ```python apply_mask(module: Module) → Tensor ``` Return the pruned version of the tensor held by module. Fetches the mask and the original values from the module and returns their elementwise product. Parameters: module – module holding the pruned tensor. Returns: The product of the mask and the original values. ```python compute_mask(t: Tensor, default_mask: Tensor) → Tensor ``` Compute a channel mask for t by drawing channels at random. Parameters: - t – tensor whose channels are pruned. - default_mask – mask accumulated from previous pruning iterations; must be respected by the new mask. Same shape as t. Returns: The mask to apply to t, with the same shape as t. Raises: [IndexError](https://docs.python.org/3/builtins/exceptions.html#IndexError) – if self.dim is not a valid axis of t. ```python prune(t: Tensor, default_mask: Tensor | None = None, importance_scores: Tensor | None = None) → Tensor ``` Return a pruned copy of the input tensor t. Applies the rule implemented by [compute_mask()](#tensorplay.ao.pruning.RandomStructured.compute_mask) without any module-side reparameterization. Parameters: - t – tensor to prune (same shape as default_mask). - importance_scores – tensor of importance scores with the same shape as t; each entry ranks the corresponding element of t. When unspecified, t itself is used. - default_mask – mask from a previous pruning iteration, if any. Pruning must respect the entries it already zeroes. When unspecified, a mask of ones is used. Returns: The pruned version of t. ```python remove(module: Module) → None ``` Make the current pruning of module permanent. The pruned values remain pruned: the product of mask and original values is written back into the parameter name, and the auxiliary parameter name + '_orig' and buffer name + '_mask' are dropped. > **Note** > > Pruning itself is NOT undone or reversed!