bi_final_model.py

2021/3/2

包括:

  • BinaryMacroStagewiseFinalModel
  • BinaryMacroSinkConnectFinalModel
    类。这个文件似乎主要是写查OP数量的hook的。

Class

BinaryMacroStagewiseFinalModel

继承自final_model中的MacroStagewiseFinalModel类。
比父类多了self.bi_flopsself._bi_flops_calculated两个属性,前者指示BiOP的数量,后者指示BiOP有没有count过。
方法:

  • _hook_intermediate_feature(self, module, inputs, outputs)
    根据module的类型(可为nn.Conv2dops.BinaryConv2dnn.Linear)的数量增加bi_op/flop_op计数。
  • forward(self, *args, **kwargs)
    基本上沿用父类的forward方法,多的东西只有判断bi_op有没有数完,打印log。

BinaryMacroSinkConnectFinalModel

继承自final_model中的MacroSinkConnectFinalModel类。
比父类多了self.bi_flopsself._bi_flops_calculated两个属性,前者指示BiOP的数量,后者指示BiOP有没有count过。
和上面类似,不赘述。