Esempio n. 1
0
    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