def _rank_prunable(self) -> Tensor:
        """
        Returns a 1D tensor of the weights ranked based on their absolute value.
        Sorted to be in ascending order.
        """
        # "We use the simple heuristic to quantify the importance of the
        # weights using their absolute value." (Han et al., 2017)
        # Han, S., Pool, J., Narang, S., Mao, H., Gong, E., Tang, S., Elsen, E.,
        # Vajda, P., Paluri, M., Tran, J., Catanzaro, B., & Dally, W. J. (2017).
        # DSD: Dense-Sparse-Dense Training for Deep Neural Networks.
        # ArXiv:1607.04381 [Cs]. http://arxiv.org/abs/1607.04381
        importance = self.wrappee.weight.abs()
        un_prunable = ~self.unfrozen_mask
        # Mark un-prunable weights using -1.0 so they can be cutout after sort
        importance[un_prunable] = -1.0
        rank = torch.argsort(importance.flatten())
        # Cut out un-prunable weights
        return rank[un_prunable.count_nonzero() :]

        Returns a 1D tensor of the weights ranked based on their absolute value.
        Sorted to be in ascending order.
        
avalanche/models/packnet.py