示例#1
0
 def __init__(self, network, optimizer, sens=1.0):
     super(TrainingWrapper, self).__init__(auto_prefix=False)
     self.network = network
     self.network.set_grad()
     self.weights = ms.ParameterTuple(network.trainable_params())
     self.optimizer = optimizer
     self.grad = C.GradOperation(get_by_list=True, sens_param=True)
     self.sens = sens
     self.reducer_flag = False
     self.grad_reducer = None
     self.parallel_mode = context.get_auto_parallel_context("parallel_mode")
     if self.parallel_mode in [
             ParallelMode.DATA_PARALLEL, ParallelMode.HYBRID_PARALLEL
     ]:
         self.reducer_flag = True
     if self.reducer_flag:
         mean = context.get_auto_parallel_context("gradients_mean")
         if auto_parallel_context().get_device_num_is_set():
             degree = context.get_auto_parallel_context("device_num")
         else:
             degree = get_group_size()
         self.grad_reducer = nn.DistributedGradReducer(
             optimizer.parameters, mean, degree)
示例#2
0
 def __init__(self, net):
     super(GradNetWrap, self).__init__()
     self.net = net
     self.weights = mindspore.ParameterTuple(net.get_parameters())