コード例 #1
0
ファイル: mult_quantizer.py プロジェクト: bot-motion/gap_sdk
 def dequantize(self, G: NNGraph):
     qrecs = G.quantization
     LOG.info("dequantizing graph parameters")
     for _, node, _, fnode in G.nodes_iterator():
         qrec = qrecs[NodeId(node, fnode)]
         anode = node if fnode is None else fnode
         handler = self.handlers[1].get(anode.__class__)
         if handler:
             handler.dequantize(anode, qrec)
コード例 #2
0
 def dequantize(self, G: NNGraph):
     qrecs = G.quantization
     LOG.info("dequantizing graph parameters")
     for _, node, _, fnode in G.nodes_iterator():
         qrec = qrecs[NodeId(node, fnode)]
         if isinstance(node, ConstantInputParameters):
             node.value = qrec.out_q[0].dequantize(node.value)
         else:
             anode = node if fnode is None else fnode
             if isinstance(anode, (FcParameters, Conv2DParameters)):
                 if anode.has_bias:
                     anode.biases = qrec.biases_q.dequantize(anode.biases)
                 anode.weights = qrec.weights_q.dequantize(anode.weights)
コード例 #3
0
 def report(self, G: NNGraph, stats):
     dump_stats = OrderedDict()
     for step_idx, node, fusion_idx, fnode in G.nodes_iterator(self._yield_fusions):
         stat = stats[NodeId(node, fnode)]
         stat = copy.deepcopy(stat)
         if fusion_idx:
             name = "{}_{}".format(node.name, fusion_idx)
             idx = "{}_{}".format(step_idx, fusion_idx)
         else:
             name = node.name
             idx = str(step_idx)
         dump_stats[name] = stat
         stat['idx'] = idx
     return dump_stats_table(dump_stats, do_totals=self._do_totals, threshold=self._threshold)