def compute(self, simulation, closest_rsu): neural_net = Neural_Network() X = self.training_data.pop() y = self.training_label.pop() # print(X) # print(y) with autograd.record(): output = self.net(X) if cfg['attack'] == 'label' and len( closest_rsu.accumulative_gradients ) < cfg['num_faulty_grads']: loss = neural_net.loss(output, 9 - y) else: loss = neural_net.loss(output, y) loss.backward() grad_collect = [] for param in self.net.collect_params().values(): if param.grad_req != 'null': grad_collect.append(param.grad().copy()) self.gradients = grad_collect