def __init__(self, hetero_nn_param): super(HeteroNNKerasGuestModel, self).__init__() self.bottom_model = None self.interactive_model = None self.top_model = None self.bottom_nn_define = None self.top_nn_define = None self.interactive_layer_define = None self.config_type = None self.optimizer = None self.loss = None self.metrics = None self.hetero_nn_param = None self.transfer_variable = None self.model_builder = None self.bottom_model_input_shape = 0 self.top_model_input_shape = None self.batch_size = None self.is_empty = False self.set_nn_meta(hetero_nn_param) self.model_builder = nn_model.get_nn_builder( config_type=self.config_type) self.data_converter = KerasSequenceDataConverter() self.selector = SelectorFactory.get_selector( hetero_nn_param.selector_param.method, hetero_nn_param.selector_param.selective_size, beta=hetero_nn_param.selector_param.beta, random_rate=hetero_nn_param.selector_param.random_state, min_prob=hetero_nn_param.selector_param.min_prob)
def __init__(self, hetero_nn_param): super(HeteroNNKerasGuestModel, self).__init__() self.bottom_model = None self.interactive_model = None self.top_model = None self.bottom_nn_define = None self.top_nn_define = None self.interactive_layer_define = None self.config_type = None self.optimizer = None self.loss = None self.metrics = None self.hetero_nn_param = None self.transfer_variable = None self.model_builder = None self.bottom_model_input_shape = 0 self.top_model_input_shape = None self.is_empty = False self.set_nn_meta(hetero_nn_param) self.model_builder = nn_model.get_nn_builder( config_type=self.config_type) self.data_converter = KerasSequenceDataConverter()
def _init_model(self, param): super(HomoNNClient, self)._init_model(param) self.batch_size = param.batch_size self.aggregate_every_n_epoch = 1 self.nn_define = param.nn_define self.config_type = param.config_type self.optimizer = param.optimizer self.loss = param.loss self.metrics = param.metrics self.data_converter = nn_model.get_data_converter(self.config_type) self.model_builder = nn_model.get_nn_builder(config_type=self.config_type)
def _init_model(self, param: HomoNNParam): super()._init_model(param=param) self.batch_size = param.batch_size self.aggregate_every_n_epoch = param.aggregate_every_n_epoch self.nn_define = param.nn_define self.config_type = param.config_type self.optimizer = param.optimizer self.loss = param.loss self.metrics = param.metrics self.encode_label = param.encode_label self.data_converter = nn_model.get_data_converter(self.config_type) self.model_builder = nn_model.get_nn_builder(config_type=self.config_type)
def initialize_nn(self, input_shape): """ initializing nn weights """ loss = "keep_predict_loss" self.nn_builder = get_nn_builder(config_type=self.config_type) self.nn: NNModel = self.nn_builder(loss=loss, nn_define=self.nn_define, optimizer=self.optimizer, metrics=None, input_shape=input_shape) LOGGER.debug('printing nn layers structure') for layer in self.nn._model.layers: LOGGER.debug('input shape {}, output shape {}'.format(layer.input_shape, layer.output_shape))
def client_set_params(self, param): self.nn_model = None self._summary = dict(loss_history=[], is_converged=False) self._header = [] self._label_align_mapping = None self.param = param self.enable_secure_aggregate = param.secure_aggregate self.max_aggregate_iteration_num = param.max_iter self.batch_size = param.batch_size self.aggregate_every_n_epoch = param.aggregate_every_n_epoch self.nn_define = param.nn_define self.config_type = param.config_type self.optimizer = param.optimizer self.loss = param.loss self.metrics = param.metrics self.encode_label = param.encode_label self.data_converter = nn_model.get_data_converter(self.config_type) self.model_builder = nn_model.get_nn_builder(config_type=self.config_type)