Source code for master.workflow.netconf.workflow_netconf_wdnn

from master.workflow.netconf.workflow_netconf import WorkFlowNetConf
from master import models
from common.utils import *


[docs]class WorkFlowNetConfWdnn(WorkFlowNetConf): """ """ @property def model_path(self): """ getter for preprocess """ return self.conf['model_path'] @property def hidden_layers(self): """ getter for preprocess """ return self.conf['hidden_layers'] @property def activation_function(self): """ getter for preprocess """ return self.conf['activation_function'] @property def batch_size(self): """ getter for preprocess """ return self.conf['batch_size'] @property def epoch(self): """ getter for preprocess """ return self.conf['epoch'] @property def model_type(self): """ getter for preprocess """ return self.conf['model_type'] @property def train(self): """ getter for preprocess """ return self.conf['train'] if hasattr(self.conf,'train') else True @property def auto_demension(self): """ getter for preprocess """ return self.conf['auto_demension'] if hasattr(self.conf,'auto_demension') else True def __init__(self, key = None): """ init key variable :param key: :return: """ if key is not None : self.key = key self.conf = self.get_step_source(key) self._set_prhb_parms(['model_path', 'encoder_len', 'decoder_len','encoder_depth', 'cell_type'])
[docs] def validation_check(self, json_data): error_msg = "" if ('model_path' not in json_data): error_msg = ''.join([error_msg, 'model_path (str) not defined']) # if ('encoder_len' not in json_data): # error_msg = ''.join([error_msg, 'encoder_len (int) not defined']) # if ('decoder_len' not in json_data): # error_msg = ''.join([error_msg, 'decoder_len (int) not defined']) # if ('encoder_depth' not in json_data): # error_msg = ''.join([error_msg, 'encoder_depth (int) not defined']) # if ('decoder_depth' not in json_data): # error_msg = ''.join([error_msg, 'decoder_depth (int) not defined']) # if ('cell_type' not in json_data): # error_msg = ''.join([error_msg, 'cell_type (str) (vanila, lstm, gru) not defined']) # if ('drop_out' not in json_data): # error_msg = ''.join([error_msg, 'drop_out (float) not defined']) # if ('word_embed_type' not in json_data): # error_msg = ''.join([error_msg, 'word_embed_type (str) (w2v, onehot)not defined']) # if ('word_embed_id' not in json_data): # error_msg = ''.join([error_msg, 'word_embed_id (str) (net id) not defined']) if ('hidden_layers' not in json_data): error_msg = ''.join([error_msg, 'hidden_layers (list) (net id) not defined']) if ('activation_function' not in json_data): error_msg = ''.join([error_msg, 'activation_function (str) (net id) not defined']) if (error_msg == ""): return True else: return error_msg
[docs] def get_step_source(self, nnid): """ getter for source step :return:obj(json) to make view """ try: obj = models.NN_WF_NODE_INFO.objects.get(nn_wf_node_id=self.key) config_data = getattr(obj, 'node_config_data') return config_data except Exception as e: raise Exception(e)
[docs] def set_view_obj(self, nnid, ver, node, input_data): """ set net config data edited on view :param nnid, ver, node, input_data: :return: """ try: if (self.validation_check(input_data)): obj = models.NN_WF_NODE_INFO.objects.get(nn_wf_node_id=str(nnid) + "_" + str(ver) + "_" + str(node)) config_data = getattr(obj, 'node_config_data') config_data['model_path'] = get_model_path(nnid, ver, node) config_data['hidden_layers'] = input_data['hidden_layers'] config_data['activation_function'] = input_data['activation_function'] config_data['batch_size'] = input_data['batch_size'] config_data['epoch'] = input_data['epoch'] config_data['model_type'] = input_data['model_type'] config_data['train'] = input_data['train'] config_data['auto_demension'] = input_data['auto_demension'] if 'auto_demension' in input_data else self.config_data_nvl_bool(config_data, 'auto_demension') # config_data['source_parse_type'] = form # config_data['source_server'] = input_data['source_server'] # config_data['source_sql'] = input_data['source_sql'] # config_data['source_path'] = utils.get_source_path(nnid, wfver, input_data['source_path']) # setattr(obj, 'node_config_data', config_data) setattr(obj, "node_config_data", config_data) obj.save() return input_data except Exception as e: #print(e) raise Exception(e)
#return None
[docs] def config_data_nvl_bool(self, config_data, attribute_name): if attribute_name in config_data: _value = config_data[attribute_name] else: _value = False return _value
[docs] def get_drop_out(self): """ :param node_id: :return: """ if ('conf' not in self.__dict__): self.conf = self.get_view_obj(self.key) return self.conf['drop_out']