class_docstr: A structured pruning algorithm that prunes the filters with the
  smallest APoZ(average percentage of zeros) of output activations.
  Hengyuan Hu, Rui Peng, Yu-Wing Tai and Chi-Keung Tang,
  "Network Trimming: A Data-Driven Neuron Pruning Approach towards Efficient Deep Architectures", ICLR 2016.
  https://arxiv.org/abs/1607.03250
class_docstr_tok: ["A","structured","pruning","algorithm","that","prunes","the","filters","with","the","smallest","APoZ","(","average","percentage","of","zeros",")","of","output","activations",".","Hengyuan","Hu",",","Rui","Peng",",","Yu-Wing","Tai","and","Chi-Keung","Tang",",","''","Network","Trimming",":","A","Data-Driven","Neuron","Pruning","Approach","towards","Efficient","Deep","Architectures","''",",","ICLR","2016.","https",":","\/\/arxiv.org\/abs\/1607.03250"]
code: def get_channel_sum(self, wrapper, wrapper_idx):
      assert wrapper_idx is not None
      activations = self.pruner.collected_activation[wrapper_idx]
      if len(activations) < self.statistics_batch_num:
          # collected activations is not enough
          return None
      return self._calc_apoz(activations).to(
          wrapper.module.weight.device
      )
  
imports: import logging
  import math
  import numpy
  import torch
  from .weight_masker import WeightMasker
label_desc: Use image node_id 3 for calling the ActivationAPoZRankFilterPrunerMasker obj's underlying member method code with example usage: obj.get_channel_sum(wrapper, wrapper_idx) and returns: self, None