Example #1
0
def test_enable_and_disable_observer():
    net = init_qat_net()
    enable_observer(net)
    assert net.quant.act_observer.enabled == True
    assert net.linear.weight_observer.enabled == True
    assert net.linear.act_observer.enabled == True
    disable_observer(net)
    assert net.quant.act_observer.enabled == False
    assert net.linear.weight_observer.enabled == False
    assert net.linear.act_observer.enabled == False
Example #2
0
 def calculate_scale(image, label):
     model.eval()
     enable_observer(model)
     logits = model(image)
     loss = F.loss.cross_entropy(logits, label, label_smooth=0.1)
     acc1, acc5 = F.topk_accuracy(logits, label, (1, 5))
     if dist.is_distributed():  # all_reduce_mean
         loss = dist.functional.all_reduce_sum(loss) / dist.get_world_size()
         acc1 = dist.functional.all_reduce_sum(acc1) / dist.get_world_size()
         acc5 = dist.functional.all_reduce_sum(acc5) / dist.get_world_size()
     return loss, acc1, acc5
Example #3
0
 def calculate_scale(image, label):
     model.eval()
     enable_observer(model)
     logits = model(image)
     loss = F.cross_entropy_with_softmax(logits, label, label_smooth=0.1)
     acc1, acc5 = F.accuracy(logits, label, (1, 5))
     if dist.is_distributed():  # all_reduce_mean
         loss = dist.all_reduce_sum(loss, "valid_loss") / dist.get_world_size()
         acc1 = dist.all_reduce_sum(acc1, "valid_acc1") / dist.get_world_size()
         acc5 = dist.all_reduce_sum(acc5, "valid_acc5") / dist.get_world_size()
     return loss, acc1, acc5
Example #4
0
def init_observer(module, data):
    enable_observer(module)
    disable_fake_quant(module)
    module(data)
    disable_observer(module)
    enable_fake_quant(module)