Beispiel #1
0
    def _init_model(self, params: LogisticRegressionParam):
        super()._init_model(params)
        self.encrypted_mode_calculator_param = params.encrypted_mode_calculator_param
        if self.role == consts.HOST:
            self.init_param_obj.fit_intercept = False
        self.cipher = PaillierEncrypt()
        self.cipher.generate_key(self.model_param.encrypt_param.key_length)
        self.transfer_variable = SSHEModelTransferVariable()
        self.one_vs_rest_obj = one_vs_rest_factory(self,
                                                   role=self.role,
                                                   mode=self.mode,
                                                   has_arbiter=False)

        self.converge_func_name = params.early_stop
        self.reveal_every_iter = params.reveal_every_iter

        self.q_field = self._transfer_q_field()

        LOGGER.debug(f"q_field: {self.q_field}")

        if not self.reveal_every_iter:
            self.self_optimizer = copy.deepcopy(self.optimizer)
            self.remote_optimizer = copy.deepcopy(self.optimizer)

        self.batch_generator = batch_generator.Guest(
        ) if self.role == consts.GUEST else batch_generator.Host()
        self.batch_generator.register_batch_generator(
            BatchGeneratorTransferVariable(), has_arbiter=False)
        self.fixedpoint_encoder = FixedPointEndec(n=self.q_field)
        self.converge_transfer_variable = ConvergeCheckerTransferVariable()
        self.secure_matrix_obj = SecureMatrix(party=self.local_party,
                                              q_field=self.q_field,
                                              other_party=self.other_party)
Beispiel #2
0
 def __init__(self):
     super().__init__()
     self.data_batch_count = []
     self.role = consts.GUEST
     self.cipher = paillier_cipher.Guest()
     self.batch_generator = batch_generator.Guest()
     self.gradient_loss_operator = hetero_poisson_gradient_and_loss.Guest()
     self.converge_procedure = convergence.Guest()
 def prepare_fit(self, data_instances, validate_data):
     # self.transfer_variable = SSHEModelTransferVariable()
     self.batch_generator = batch_generator.Guest()
     self.batch_generator.register_batch_generator(BatchGeneratorTransferVariable(), has_arbiter=False)
     self.header = copy.deepcopy(data_instances.schema.get("header", []))
     self._abnormal_detection(data_instances)
     self.check_abnormal_values(data_instances)
     self.check_abnormal_values(validate_data)
 def __init__(self):
     super().__init__()
     self.data_batch_count = []
     # self.guest_forward = None
     self.role = consts.GUEST
     self.cipher = paillier_cipher.Guest()
     self.batch_generator = batch_generator.Guest()
     self.gradient_loss_operator = hetero_linr_gradient_and_loss.Guest()
     self.converge_procedure = convergence.Guest()
     self.encrypted_calculator = None
Beispiel #5
0
    def __init__(self):
        super(HeteroNNGuest, self).__init__()
        self.task_type = None
        self.converge_func = None

        self.batch_generator = batch_generator.Guest()
        self.data_keys = []

        self.model_builder = None
        self.label_dict = {}

        self.model = None
        self.history_loss = []
        self.iter_epoch = 0
        self.num_label = 2

        self.input_shape = None
Beispiel #6
0
    def __init__(self):
        super(HeteroNNGuest, self).__init__()
        self.task_type = None
        self.converge_func = None

        self.batch_generator = batch_generator.Guest()
        self.data_keys = []

        self.model_builder = None
        self.label_dict = {}

        self.model = None
        self.role = consts.GUEST
        self.history_loss = []
        self.num_label = 2

        self.input_shape = None
        self._summary_buf = {"history_loss": [],
                             "is_converged": False,
                             "best_iteration": -1}