Example #1
0
 def valid_func(image, label):
     model.eval()
     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) / dist.get_world_size()
         acc1 = dist.all_reduce_sum(acc1) / dist.get_world_size()
         acc5 = dist.all_reduce_sum(acc5) / dist.get_world_size()
     return loss, acc1, acc5
Example #2
0
 def train_func(image, label):
     model.train()
     logits = model(image)
     loss = F.cross_entropy_with_softmax(logits, label, label_smooth=0.1)
     acc1, acc5 = F.accuracy(logits, label, (1, 5))
     optimizer.backward(loss)  # compute gradients
     if dist.is_distributed():  # all_reduce_mean
         loss = dist.all_reduce_sum(loss) / dist.get_world_size()
         acc1 = dist.all_reduce_sum(acc1) / dist.get_world_size()
         acc5 = dist.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 train_func():
     loss = model.calc_loss()
     optimizer.backward(loss)  # compute gradients
     if dist.is_distributed():  # all_reduce_mean
         loss = dist.all_reduce_sum(loss,
                                    "train_loss") / dist.get_world_size()
     return loss