コード例 #1
0
    def run(self, conf_data):
        """
        executed on cluster run
        :param conf_data:
        :return:
        """
        try:
            # get related nodes
            net_node = self.get_prev_node(grp='netconf')
            data_node = self.get_prev_node(grp='preprocess')
            self._init_node_parm(conf_data['node_id'])

            # set result info cls
            result = TrainSummaryInfo(type=self.eval_result_type)
            result.set_nn_wf_ver_id(conf_data['wf_ver'])
            result.set_nn_id(conf_data['nn_id'])

            # run eval for each network
            result = net_node[0].eval(conf_data['node_id'], conf_data, data=data_node[0], result=result)

            # set parms for db store
            input_data = TrainSummaryInfo.save_result_info(self, result)
            input_data['accuracy'] = result.get_accuracy()
            return input_data
        except Exception as e:
            logging.error(e)
            raise Exception(e)
コード例 #2
0
ファイル: eval_node_extra.py プロジェクト: mchoimis/tensormsa
    def run(self, conf_data):
        """
        executed on cluster run
        :param conf_data:
        :return:
        """
        try:
            # get related nodes
            net_node = self.get_prev_node(grp='netconf')
            data_node = self.get_prev_node(grp='preprocess')
            self._init_node_parm(conf_data['node_id'])

            # set result info cls
            result = TrainSummaryInfo(type=self.eval_result_type)
            result.set_nn_wf_ver_id(conf_data['wf_ver'])
            result.set_nn_id(conf_data['nn_id'])

            # run eval for each network
            result = net_node[0].eval(conf_data['node_id'],
                                      conf_data,
                                      data=data_node[0],
                                      result=result)

            if result is None or result == '':
                return {}
            # set parms for db store
            input_data = TrainSummaryInfo.save_result_info(self, result)
            input_data['accuracy'] = result.get_accuracy()

            condition_data = {}
            condition_data['nn_wf_ver_id'] = conf_data['wf_ver']
            condition_data[
                'condition'] = "3"  # 1 Pending, 2 Progress, 3 Finish, 4 Error
            # Net Version create
            NNCommonManager().update_nn_wf_info(conf_data['nn_id'],
                                                condition_data)

            return input_data
        except Exception as e:
            condition_data = {}
            condition_data['nn_wf_ver_id'] = conf_data['wf_ver']
            condition_data[
                'condition'] = "4"  # 1 Pending, 2 Progress, 3 Finish, 4 Error
            # Net Version create
            NNCommonManager().update_nn_wf_info(conf_data['nn_id'],
                                                condition_data)
            logging.error(e)
            raise Exception(e)
コード例 #3
0
    def run(self, conf_data):
        """
        executed on cluster run
        :param conf_data:
        :return:
        """
        try:
            # get related nodes
            net_node = self.get_prev_node(grp='netconf')
            data_node = self.get_prev_node(grp='preprocess')
            self._init_node_parm(conf_data['node_id'])

            # set result info cls
            result = TrainSummaryInfo(type=self.eval_result_type)
            result.set_nn_wf_ver_id(conf_data['wf_ver'])
            result.set_nn_id(conf_data['nn_id'])

            # run eval for each network
            result = net_node[0].eval(conf_data['node_id'], conf_data, data=data_node[0], result=result)

            if result is None:
                return {}
            # set parms for db store
            input_data = TrainSummaryInfo.save_result_info(self, result)
            input_data['accuracy'] = result.get_accuracy()

            condition_data = {}
            condition_data['nn_wf_ver_id'] = conf_data['wf_ver']
            condition_data['condition'] = "3"  # 1 Pending, 2 Progress, 3 Finish, 4 Error
            # Net Version create
            NNCommonManager().update_nn_wf_info(conf_data['nn_id'], condition_data)

            return input_data
        except Exception as e:
            condition_data = {}
            condition_data['nn_wf_ver_id'] = conf_data['wf_ver']
            condition_data['condition'] = "4"  # 1 Pending, 2 Progress, 3 Finish, 4 Error
            # Net Version create
            NNCommonManager().update_nn_wf_info(conf_data['nn_id'], condition_data)
            logging.error(e)
            raise Exception(e)
コード例 #4
0
    def run(self, conf_data):
        """
        Wide and Deep Network Training 
        :param : conf_data
        :return: None
        """
        logging.info("NeuralNetNode Xgboost Run called") #nodeid 필요

        try:

            self._init_train_parm(conf_data)
            #self._init_value()
            train, test= self.get_input_data()

            spec = importlib.util.spec_from_file_location("data_preprocess", "/hoya_src_root/data_preprocess.py")
            foo = importlib.util.module_from_spec(spec)
            spec.loader.exec_module(foo)
            _label, _label_info, _label_values = foo.label_info()

            y_train = train[_label].ravel()
            x_train = train.drop([_label,"id"], axis=1)

            y_test = test[_label].ravel()
            x_test = test.drop([_label,"id"], axis=1)

            #x_train = train.values  # Creates an array of the train data
            #x_test = test.values  # Creats an array of the test data

            self.load_batch = self.get_eval_batch(self.node_id)  # Train이 Y인것 가져오기 Eval Flag가 Y인거 가져오기
            self.train_batch, self.batch = self.make_batch(self.node_id)

            logging.info("Xgboost Train get batch -> {0}".format(self.batch))
            logging.info("Xgboost Train get batch -> {0}".format(self.load_batch))
            if self.train_batch == None:
                self.model_train_path = ''.join([self.model_path + '/' + self.batch + '.bin'])
            else:
                self.model_train_path = ''.join([self.model_path + '/' + self.train_batch + '.bin'])

            xgb_params = self.get_xgboost_paramter()

            num_rounds = self.conf.get("epoch")
            dtrain = xgb.DMatrix(x_train, y_train)  # training data
            dvalid = xgb.DMatrix(x_test, y_test)  # validation data
            eval_result= {}
            gbm = xgb.train(xgb_params, dtrain, num_rounds,
                            [(dtrain, 'train'),(dvalid,"test")],
                            evals_result= eval_result
                            )  # stop if no improvement in 10 rounds

            gbm.save_model(self.model_train_path )
            predictions = gbm.predict(dvalid)
            train_prediction = gbm.predict(dvalid)

            #trainprediction_xgb = pd.DataFrame({'id': test,
            #                                    'predict': train_prediction})

            #trainprediction_xgb_merge = train_results_xgb.merge(trainprediction_xgb, how='left', on='id')
            # Todo Eval flag 보도록 고치고
            #    "nn_wf_ver_id": self.wf_ver, "nn_batch_ver_id": self.batch}
            config = {"nn_id": self.nn_id, "nn_wf_ver_id": self.wf_ver,
                      "nn_batch_ver_id": self.batch}
            acc_result = TrainSummaryAccLossInfo(config)
            acc_result.loss_info["loss"].extend(eval_result['test']['rmse'])
            acc_result.acc_info["acc"].extend(eval_result['test']['rmse'])
            self.save_accloss_info(acc_result)

            config = {"type": self.model_type, "labels": _label_values, "nn_id":self.nn_id, "nn_wf_ver_id":self.wf_ver}
            eval_result = TrainSummaryInfo(conf=config)
            eval_result.set_nn_batch_ver_id(self.batch)

            eval_result.set_result_info(y_test, train_prediction)

            input_data = TrainSummaryInfo.save_result_info(self, eval_result)
            input_data['accuracy'] = eval_result.get_accuracy()

            return input_data
        except Exception as e:
            logging.info("NeuralNetNodeXgboost Run Exception : {0}".format(e))
            raise Exception(e)