From 1da71c8a9805f2f5834fcfbc692f70c79ed76d53 Mon Sep 17 00:00:00 2001 From: leondavi Date: Sat, 8 Jun 2024 03:21:20 +0300 Subject: [PATCH 1/7] Remove Redundant files --- src_py/apiServer/NerlDB.py | 110 ----------------- src_py/apiServer/NerlDatasetDB.py | 195 ------------------------------ src_py/apiServer/test.py | 7 -- 3 files changed, 312 deletions(-) delete mode 100644 src_py/apiServer/NerlDB.py delete mode 100644 src_py/apiServer/NerlDatasetDB.py delete mode 100644 src_py/apiServer/test.py diff --git a/src_py/apiServer/NerlDB.py b/src_py/apiServer/NerlDB.py deleted file mode 100644 index 0ae45767f..000000000 --- a/src_py/apiServer/NerlDB.py +++ /dev/null @@ -1,110 +0,0 @@ - - -class BatchTrainDB: - def __init__(self, worker_name, source_name, batch_id, batch_size, duration = None): - self.worker_name = worker_name - self.source_name = source_name - self.batch_id = batch_id - #self.batch_size = batch_size - self.loss_value = None - self.duration = duration - - def get_as_triplet(self): - return self.worker_name, self.batch_id, self.loss_value - - def get_source_name(self): - return self.source_name - -class BatchPredictDB: - def __init__(self, worker_name, source_name, batch_id, batch_size, label_dim = 1, duration = None): - self.worker_name = worker_name - self.source_name = source_name - self.batch_id = batch_id - self.duration = duration - #self.label_dim = label_dim - self.source_name = None - #self.labels = [ [ None ] * label_dim ] * batch_size - - def set_label_dim(self, dim): - self.label_dim = dim - - def get_as_triplet(self): - return self.worker_name, self.batch_id, self.labels - - def add_label(self, sample_index, label): - if len(label) != self.label_dim: - raise Exception("label dim is not as expected") - if sample_index >= self.batch_size: - raise Exception("sample_index exceeds batch_size") - self.labels[sample_index] = label - - def add_value(self, sample_index, label_index, value): - if label_index >= self.label_dim: - raise Exception("label_index is not as expected") - if sample_index >= self.batch_size: - raise Exception("sample_index exceeds batch_size") - self.labels[sample_index][label_index] = value - - -class WorkerDB: - PHASE_TRAINING = 0 - PHASE_PREDICTION = 1 - - def __init__(self, worker_name, batch_size): - self.worker_name = worker_name - self.train_dict = {} # dictionary of batch_id -> BatchTrainDB of this worker - self.predict_dict = {} # dictionary of batch_id -> BatchPredictDB of this worker - self.batch_size = batch_size - - def add_train_batch(self, batch_id, batch_size, source_name): - self.train_dict[batch_id] = BatchTrainDB(self.worker_name, source_name, batch_id, batch_size) - - def add_predict_batch(self, batch_id, batch_size): - self.predict_dict[batch_id] = BatchPredictDB(self.worker_name, batch_id, batch_size) - - def get_as_sorted_by_batch_ids(self, phase): - batches_list = list(range(0, self.batch_size)) - res_list = [None] * self.batch_size - for key in batches_list: - if key in self.train_dict: - if phase == WorkerDB.PHASE_TRAINING: - res_list[key] = self.train_dict[key] - elif phase == WorkerDB.PHASE_PREDICTION: - res_list[key] = self.predict_dict[key] - else: - raise Exception("phase is not as expected") - return res_list - -class ClientDB: - def __init__(self): - self.worerksDBs = {} # dictionary of worker_name -> WorkerDB - - def add_worker(self, worker_name, batch_size): - self.worerksDBs[worker_name] = WorkerDB(worker_name, batch_size) - -class NerlDB: - def __init__(self) -> None: - self.clientsDBs = {} # dictionary of client_name -> ClientDB - - def add_client(self, client_name): - self.clientsDBs[client_name] = ClientDB() - - def get_client(self, client_name): - if client_name not in self.clientsDBs: - raise Exception(f"client {client_name} not found in DB") - return self.clientsDBs[client_name] - - def get_total_workers_count(self): - res = 0 - for client_name, clientDB in self.clientsDBs.items(): - res += len(clientDB.worerksDBs) - return res - - def get_workers_brain_data(self, phase = None, filter_by_client = [], filter_by_worker = []): - res = [] - for client_name, clientDB in self.clientsDBs.items(): - if not filter_by_client or (client_name in filter_by_client): - for worker_name, workerDB in clientDB.worerksDBs.items(): - if not filter_by_worker or (worker_name in filter_by_worker): - res.append(workerDB.get_as_sorted_by_batch_ids(phase)) - return res \ No newline at end of file diff --git a/src_py/apiServer/NerlDatasetDB.py b/src_py/apiServer/NerlDatasetDB.py deleted file mode 100644 index 2bf45ea60..000000000 --- a/src_py/apiServer/NerlDatasetDB.py +++ /dev/null @@ -1,195 +0,0 @@ - -from abc import ABC, abstractmethod -import pandas as pd -import math -import hashlib - - -class DataSetDB(ABC): # Abstract Class - PHASE_TRAINING = 0 - PHASE_PREDICTION = 1 - - def __init__(self, data_set_name, batch_size): - self.batch_size = batch_size - self.data_set_name = data_set_name - - def numof_samples_to_batches(self, numof_samples : int): - return math.floor(numof_samples / self.batch_size) -# example csv_db = DatasetCsvDB() -# csv_db.sources_to_sources_db_dict['s1'] = DataSetSourceDB() from init -# csv_db.sources_to_sources_db_dict['s1'].get_phase() -class DataSetSourceDB(DataSetDB): - def __init__(self, data_set_name, batch_size, numof_batches, phase): - super().__init__(data_set_name, batch_size) - self.source_name = None # ties this sourceDB to a specific source from DC - self.batch_iterator = 0 # batch iterator allows to follow sent/received batches status - self.batch_stop_index = numof_batches # marks batch where source should stop sending batches - self.batch_stop_original = numof_batches - self.phase = phase - - self.validate_batch_iterators() - - def get_phase(self): - return self.phase - - def set_source(self, source_name): - self.source_name = source_name - - def get_source(self): - return self.source_name - - def validate_batch_iterators(self): - assert self.batch_stop_index >= self.batch_iterator - assert self.batch_iterator >= 0 - return True - - # use the iterator to control multiple phases of source that sends batches - # E.g., source sends x/n batches for training, then sends y/n batches for prediction - # then source sends (n-x)/n batches for training, then sends (n-y)/n batches for prediction - # returns False if iterator is out of bounds - def increment_batch_iterator(self, val = 1): - if self.batch_iterator + val > self.batch_stop_idx: - return False - self.batch_iterator += val - return True - - def reset_batch_iterator(self, phase): - self.batch_iterator = 0 - self.validate_batch_iterators() - - def get_batch_iterator(self): - return self.batch_iterator - - def set_batch_stop_idx(self, new_value, phase): - self.batch_stop_idx = new_value - self.validate_batch_iterators() - - # def set_batch_stop_original_value(self, new_value, phase): - # if phase == DataSetDB.PHASE_TRAINING: - # self.batch_stop_original_value = new_value - # elif phase == DataSetDB.PHASE_PREDICTION: - # self.batch_stop_original_value = new_value - # self.validate_batch_iterators() - - # def get_batch_stop_idx(self, phase): - # if phase == DataSetDB.PHASE_TRAINING: - # return self.batch_stop_idx_train - # elif phase == DataSetDB.PHASE_PREDICTION: - # return self.batch_stop_idx_predict - - # def get_batch_stop_original_value(self, phase): - # if phase == DataSetDB.PHASE_TRAINING: - # return self.batch_stop_original_value - # elif phase == DataSetDB.PHASE_PREDICTION: - # return self.batch_stop_original_value - - -class DataSetCsvDB(DataSetDB): - def __init__(self, csv_dataset_path, csv_temp_path, batch_size): - super().__init__(csv_dataset_path, batch_size) - - self.sources_to_sources_db_dict = {} # dictionary of source_name -> DataSetSourceDB Instance - self.source_db_name_to_source_db_inst = {} # dictionary of source_db_name -> DataSetSourceDB Instance - self.sources_dbs_name_to_offset_indexes_hash = {} # dictionary of source_db_name -> offset to sample index - - self.csv_dataset_path = csv_dataset_path - self.csv_temp_path = csv_temp_path # where to save to and where to send from the train and predict csv data - self.sha_to_name_and_path = {} # dictionary of sha256 hash -> (source_name, csv_dataset_path) - self.list_dbs_to_send = [] - - def add_source_db(self, source_name, source_db_name, target_workers_names_list, starting_offset, numof_batches, phase): - assert source_db_name not in self.source_db_name_to_source_db_inst - assert source_db_name not in self.sources_dbs_name_to_offset_indexes_hash - assert source_db_name not in self.sha_to_name_and_path - - self.sources_to_sources_db_dict[source_name] = DataSetSourceDB(source_db_name, self.batch_size, numof_batches, phase) - self.source_db_name_to_source_db_inst[source_db_name] = self.sources_to_sources_db_dict[source_name] - self.sources_dbs_name_to_offset_indexes_hash[source_db_name] = starting_offset - # self.generate_hash_source_csv_db_sha(source_db_name) - - - def get_source_db_name_and_path_by_sha(self, sha): - return self.sha_to_name_and_path[sha] - - def generate_hash_source_csv_db_sha(self, source_db_name): # will be useful in future if source using more than a single csv file - sha256_hash = hashlib.sha256() - with open(f"{self.csv_dataset_path}_{source_db_name}","rb") as f: - # Read and update hash string value in blocks of 4K - for byte_block in iter(lambda: f.read(4096),b""): - sha256_hash.update(byte_block) - sha_res = sha256_hash.hexdigest() - self.sha_to_name_and_path[sha_res] = (source_db_name, self.csv_dataset_path) - return sha_res - - def calculate_total_possible_numof_batches(self): - df = pd.df.read_csv(self.csv_dataset_path) - total_num_of_batches = len(df) / self.batch_size - return math.floor(total_num_of_batches) - - - - def get_source_db(self, source_db_name): - assert source_db_name in self.sources_dict - return self.sources_dict[source_db_name] - - def get_global_sample_index(self, source_db_name, batch_idx, sample_within_batch_idx, phase): - assert sample_within_batch_idx < self.batch_size - if phase == DataSetCsvDB.PHASE_TRAINING: - return self.sources_dbs_to_starting_indexes_train_hash[source_db_name] + batch_idx * self.batch_size + sample_within_batch_idx - elif phase == DataSetCsvDB.PHASE_PREDICTION: - return self.sources_dbs_to_starting_indexes_predict_hash[source_db_name] + batch_idx * self.batch_size + sample_within_batch_idx - - def get_batch_samples_data(self, source_db_name, batches_index_list, phase): - starting_offset_index = None - if phase == DataSetCsvDB.PHASE_TRAINING: - starting_offset_index = self.sources_dbs_to_starting_indexes_train_hash[source_db_name] - else: - starting_offset_index = self.sources_dbs_to_starting_indexes_predict_hash[source_db_name] - - df = pd.df.read_csv(self.csv_dataset_path, skiprows=starting_offset_index, nrows=self.batch_size * len(batches_index_list)) - return df - - - def generate_data_for_source(self, source_db_name, phase): # TODO change this code to be based on phase - """ - Generated files for each source: - 1. training csv file: __training.csv - 2. prediction csv file: __predict.csv - - return - - filepath_train - - filepath_predict - - filename_train - - filename_predict - - number_of_samples_train - - number_of_samples_predict - """ - - # assert source_db_name in self.sources_dict - # source_db_inst = self.source_db_name[source_db_name] - - # starting_offset_index = self.sources_dbs_to_offset_indexes_train_hash[source_db_name] - # starting_offset_index_predict = self.sources_dbs_to_offset_indexes_predict_hash[source_db_name] - - # number_of_samples_train = source_db_inst.get_batch_stop_idx(DataSetSourceDB.PHASE_TRAINING) * self.batch_size - # number_of_samples_predict = source_db_inst.get_batch_stop_idx(DataSetSourceDB.PHASE_PREDICTION) * self.batch_size - - # df_train = pd.df.read_csv(self.csv_dataset_path, skiprows=starting_offset_index_train, nrows=number_of_samples_train) - # df_predict = pd.df.read_csv(self.csv_dataset_path, skiprows=starting_offset_index_predict, nrows=number_of_samples_predict) - - # filename_train = f"{source_db_name}_{super().data_set_name}_training.csv" - # filepath_train = f"{super().temp_path}/{filename_train}" - # df_train.to_csv(filepath_train , index=False) - - # filename_predict = f"{source_db_name}_{super().data_set_name}_predict.csv" - # filepath_predict = f"{super().temp_path}/{filename_predict}" - # df_predict.to_csv(filepath_predict , index=False) - - # if phase == DataSetCsvDB.PHASE_PREDICTION: - # pass # generate data without labels - - - # return filepath_train, filepath_predict,\ - # filename_train, filename_predict,\ - # number_of_samples_train, number_of_samples_predict - pass \ No newline at end of file diff --git a/src_py/apiServer/test.py b/src_py/apiServer/test.py deleted file mode 100644 index c676515e0..000000000 --- a/src_py/apiServer/test.py +++ /dev/null @@ -1,7 +0,0 @@ -from NerlDatasetDB import * - -nerlnet_csv_db = DataSetCsvDB("/home/nerlnet/nerlnet/nerlnet/src_py/apiServer/nerlnet_csv_db.csv", "/home/nerlnet/nerlnet/nerlnet/src_py/apiServer/nerlnet_csv_db_temp", 50) - -nerlnet_csv_db.add_source_db("source1","source1_db", "w1,w2,worker3", 0, 100, DataSetCsvDB.PHASE_TRAINING) -nerlnet_csv_db.add_source_db("source2","source_db2" "w1,w2,worker3", 0, 100, DataSetCsvDB.PHASE_TRAINING) -nerlnet_csv_db.generate_data_for_source("source1") \ No newline at end of file From 3632843d73468fe2c903291328b244a1ada080a1 Mon Sep 17 00:00:00 2001 From: leondavi Date: Thu, 27 Jun 2024 18:18:37 +0300 Subject: [PATCH 2/7] [ONN] Add batch norm layer to nerlplanner --- src_cpp/common/worker_definitions_ag.h | 4 ++-- src_erl/NerlnetApp/src/Bridge/layers_types_ag.hrl | 13 +++++++------ src_erl/NerlnetApp/src/Bridge/models_types_ag.hrl | 2 +- .../src/Bridge/neural_networks_testing_models.hrl | 6 +++--- src_erl/NerlnetApp/src/dc_definitions_ag.hrl | 2 +- src_erl/NerlnetApp/src/nerlnetApp.app.src | 2 +- src_erl/NerlnetApp/src/nerlnetApp_app.erl | 4 ++-- src_erl/NerlnetApp/src/router_definitions_ag.hrl | 2 +- src_erl/NerlnetApp/src/source_definitions_ag.hrl | 2 +- src_erl/NerlnetApp/src/worker_definitions_ag.hrl | 2 +- src_py/nerlPlanner/Definitions.py | 4 ++-- src_py/nerlPlanner/JsonElementWorkerDefinitions.py | 11 ++++++----- 12 files changed, 28 insertions(+), 26 deletions(-) diff --git a/src_cpp/common/worker_definitions_ag.h b/src_cpp/common/worker_definitions_ag.h index 6de8c4fc3..17ed216e4 100644 --- a/src_cpp/common/worker_definitions_ag.h +++ b/src_cpp/common/worker_definitions_ag.h @@ -1,11 +1,11 @@ #pragma once // This file was auto generated -// Generated by Nerlplanner version: 1.0.2 +// Generated by Nerlplanner version: 1.0.3 namespace nerlnet { -enum LayerTypeEnum{LAYER_TYPE_DEFAULT=0,LAYER_TYPE_SCALING=1,LAYER_TYPE_CONV=2,LAYER_TYPE_PERCEPTRON=3,LAYER_TYPE_POOLING=4,LAYER_TYPE_PROBABILISTIC=5,LAYER_TYPE_LSTM=6,LAYER_TYPE_RECCURRENT=7,LAYER_TYPE_UNSCALING=8,LAYER_TYPE_FLATTEN=9,LAYER_TYPE_BOUNDING=10}; +enum LayerTypeEnum{LAYER_TYPE_DEFAULT=0,LAYER_TYPE_SCALING=1,LAYER_TYPE_CONV=2,LAYER_TYPE_PERCEPTRON=3,LAYER_TYPE_POOLING=4,LAYER_TYPE_PROBABILISTIC=5,LAYER_TYPE_BATCHNORMALIZATION=6,LAYER_TYPE_LSTM=7,LAYER_TYPE_RECCURRENT=8,LAYER_TYPE_UNSCALING=9,LAYER_TYPE_FLATTEN=10,LAYER_TYPE_BOUNDING=11}; enum ProbabilisticActivationEnum{PROBABILISTIC_ACTIVATION_BINARY=1,PROBABILISTIC_ACTIVATION_LOGISTIC=2,PROBABILISTIC_ACTIVATION_COMPETITIVE=3,PROBABILISTIC_ACTIVATION_SOFTMAX=4}; enum ScalingEnum{SCALING_NONE=1,SCALING_MINMAX=2,SCALING_MEANSTD=3,SCALING_STD=4,SCALING_LOG=5}; enum BoundingEnum{BOUNDING_NONE=1,BOUNDING_BOUNDING=2}; diff --git a/src_erl/NerlnetApp/src/Bridge/layers_types_ag.hrl b/src_erl/NerlnetApp/src/Bridge/layers_types_ag.hrl index 0bc61793b..341ee11b8 100644 --- a/src_erl/NerlnetApp/src/Bridge/layers_types_ag.hrl +++ b/src_erl/NerlnetApp/src/Bridge/layers_types_ag.hrl @@ -1,5 +1,5 @@ % This is an auto generated .hrl file -% DC Fields Generated by Nerlplanner version: 1.0.2 +% DC Fields Generated by Nerlplanner version: 1.0.3 -define(LAYERS_TYPE_DEFAULT_IDX,"0"). -define(LAYERS_TYPE_SCALING_IDX,"1"). @@ -7,8 +7,9 @@ -define(LAYERS_TYPE_PERCEPTRON_IDX,"3"). -define(LAYERS_TYPE_POOLING_IDX,"4"). -define(LAYERS_TYPE_PROBABILISTIC_IDX,"5"). --define(LAYERS_TYPE_LSTM_IDX,"6"). --define(LAYERS_TYPE_RECCURRENT_IDX,"7"). --define(LAYERS_TYPE_UNSCALING_IDX,"8"). --define(LAYERS_TYPE_FLATTEN_IDX,"9"). --define(LAYERS_TYPE_BOUNDING_IDX,"10"). +-define(LAYERS_TYPE_BATCHNORMALIZATION_IDX,"6"). +-define(LAYERS_TYPE_LSTM_IDX,"7"). +-define(LAYERS_TYPE_RECCURRENT_IDX,"8"). +-define(LAYERS_TYPE_UNSCALING_IDX,"9"). +-define(LAYERS_TYPE_FLATTEN_IDX,"10"). +-define(LAYERS_TYPE_BOUNDING_IDX,"11"). diff --git a/src_erl/NerlnetApp/src/Bridge/models_types_ag.hrl b/src_erl/NerlnetApp/src/Bridge/models_types_ag.hrl index 557fce500..8aa8d264e 100644 --- a/src_erl/NerlnetApp/src/Bridge/models_types_ag.hrl +++ b/src_erl/NerlnetApp/src/Bridge/models_types_ag.hrl @@ -1,5 +1,5 @@ % This is an auto generated .hrl file -% DC Fields Generated by Nerlplanner version: 1.0.2 +% DC Fields Generated by Nerlplanner version: 1.0.3 -define(MODEL_TYPE_NN_IDX,"0"). -define(MODEL_TYPE_APPROXIMATION_IDX,"1"). diff --git a/src_erl/NerlnetApp/src/Bridge/neural_networks_testing_models.hrl b/src_erl/NerlnetApp/src/Bridge/neural_networks_testing_models.hrl index 80f70dfac..b9a89cf1f 100644 --- a/src_erl/NerlnetApp/src/Bridge/neural_networks_testing_models.hrl +++ b/src_erl/NerlnetApp/src/Bridge/neural_networks_testing_models.hrl @@ -19,7 +19,7 @@ _ModelTypeCNN = "0", _ModelArgsCNN = "", _LayersSizesCNN = "28x28x1k5x5x1x6p0s1t1,28x28x6k2x2p0s2,14x14x6k4x4x6x12p0s1t0,1,32,10", - _LayersTypesCNN = "2,4,2,9,3,5", + _LayersTypesCNN = "2,4,2,10,3,5", _LayersFunctionalityCodesCNN = "6,2,6,6,6,4", % change scaler functionality to 6 to check exception handling _LearningRateCNN = "0.01", _EpochsCNN = "50", @@ -33,7 +33,7 @@ _ModelTypeAEC = "9", _ModelArgsAEC = "", _LayersSizesAEC = "32,16,8,4,8,16,32,32", % last layer (perceptron) should be the same as the input layer , followed by bounding layer - _LayersTypesAEC = "1,3,3,3,3,3,3,10", + _LayersTypesAEC = "1,3,3,3,3,3,3,11", _LayersFunctionalityCodesAEC = "1,11,11,11,11,11,11,1", _LearningRateAEC = "0.01", _EpochsAEC = "50", @@ -47,7 +47,7 @@ _ModelTypeAE = "8", _ModelArgsAE = "", _LayersSizesAE = "32,16,8,4,8,16,32,32", % last layer (perceptron) should be the same as the input layer , followed by bounding layer - _LayersTypesAE = "1,3,3,3,3,3,3,10", + _LayersTypesAE = "1,3,3,3,3,3,3,11", _LayersFunctionalityCodesAE = "1,11,11,11,11,11,11,1", _LearningRateAE = "0.01", _EpochsAE = "50", diff --git a/src_erl/NerlnetApp/src/dc_definitions_ag.hrl b/src_erl/NerlnetApp/src/dc_definitions_ag.hrl index 73ab3cc53..ddb8eed78 100644 --- a/src_erl/NerlnetApp/src/dc_definitions_ag.hrl +++ b/src_erl/NerlnetApp/src/dc_definitions_ag.hrl @@ -1,5 +1,5 @@ % This is an auto generated .hrl file -% DC Fields Generated by Nerlplanner version: 1.0.2 +% DC Fields Generated by Nerlplanner version: 1.0.3 -define(DC_KEY_NERLNET_SETTINGS_ATOM,nerlnetSettings). -define(DC_KEY_FREQUENCY_ATOM,frequency). diff --git a/src_erl/NerlnetApp/src/nerlnetApp.app.src b/src_erl/NerlnetApp/src/nerlnetApp.app.src index 20c69a4ca..062f5a3cc 100644 --- a/src_erl/NerlnetApp/src/nerlnetApp.app.src +++ b/src_erl/NerlnetApp/src/nerlnetApp.app.src @@ -1,6 +1,6 @@ {application, nerlnetApp, [{description, "Nerlnet OTP Application"}, - {vsn, "1.4.0"}, + {vsn, "1.5.1"}, {registered, []}, {mod, {nerlnetApp_app, []}}, {applications, diff --git a/src_erl/NerlnetApp/src/nerlnetApp_app.erl b/src_erl/NerlnetApp/src/nerlnetApp_app.erl index 2f228d785..acd389431 100644 --- a/src_erl/NerlnetApp/src/nerlnetApp_app.erl +++ b/src_erl/NerlnetApp/src/nerlnetApp_app.erl @@ -20,8 +20,8 @@ -behaviour(application). -include("nerl_tools.hrl"). --define(NERLNET_APP_VERSION, "1.5.0"). --define(NERLPLANNER_TESTED_VERSION,"1.0.2"). +-define(NERLNET_APP_VERSION, "1.5.1"). +-define(NERLPLANNER_TESTED_VERSION,"1.0.3"). -export([start/2, stop/1]). diff --git a/src_erl/NerlnetApp/src/router_definitions_ag.hrl b/src_erl/NerlnetApp/src/router_definitions_ag.hrl index 98dc37206..fa1d89851 100644 --- a/src_erl/NerlnetApp/src/router_definitions_ag.hrl +++ b/src_erl/NerlnetApp/src/router_definitions_ag.hrl @@ -1,5 +1,5 @@ % This is an auto generated .hrl file -% Source Fields Generated by Nerlplanner version: 1.0.2 +% Source Fields Generated by Nerlplanner version: 1.0.3 -define(ROUTER_POLICY_ROUTINGTABLE_IDX,"0"). diff --git a/src_erl/NerlnetApp/src/source_definitions_ag.hrl b/src_erl/NerlnetApp/src/source_definitions_ag.hrl index cac5e234a..7005e2ecd 100644 --- a/src_erl/NerlnetApp/src/source_definitions_ag.hrl +++ b/src_erl/NerlnetApp/src/source_definitions_ag.hrl @@ -1,5 +1,5 @@ % This is an auto generated .hrl file -% Source Fields Generated by Nerlplanner version: 1.0.2 +% Source Fields Generated by Nerlplanner version: 1.0.3 -define(SOURCE_POLICY_CASTING_IDX,"0"). -define(SOURCE_POLICY_ROUNDROBIN_IDX,"1"). diff --git a/src_erl/NerlnetApp/src/worker_definitions_ag.hrl b/src_erl/NerlnetApp/src/worker_definitions_ag.hrl index 57bf2761d..08fb097f1 100644 --- a/src_erl/NerlnetApp/src/worker_definitions_ag.hrl +++ b/src_erl/NerlnetApp/src/worker_definitions_ag.hrl @@ -1,5 +1,5 @@ % This is an auto generated .hrl file -% Worker Fields Generated by Nerlplanner version: 1.0.2 +% Worker Fields Generated by Nerlplanner version: 1.0.3 -define(WORKER_FIELD_KEY_MODEL_TYPE,modelType). -define(WORKER_FIELD_KEY_MODEL_ARGS,modelArgs). diff --git a/src_py/nerlPlanner/Definitions.py b/src_py/nerlPlanner/Definitions.py index d70512d36..277898a2a 100644 --- a/src_py/nerlPlanner/Definitions.py +++ b/src_py/nerlPlanner/Definitions.py @@ -1,8 +1,8 @@ import subprocess from logger import * -VERSION = "1.0.2" -NERLNET_VERSION_TESTED_WITH = "1.5.0" +VERSION = "1.0.3" +NERLNET_VERSION_TESTED_WITH = "1.5.1" NERLNET_TMP_PATH = "/tmp/nerlnet" NERLNET_GRAPHVIZ_OUTPUT_DIR = f"{NERLNET_TMP_PATH}/nerlplanner" NERLNET_GLOBAL_PATH = "/usr/local/lib/nerlnet-lib/NErlNet" diff --git a/src_py/nerlPlanner/JsonElementWorkerDefinitions.py b/src_py/nerlPlanner/JsonElementWorkerDefinitions.py index c5fecfe0f..6bd51bfba 100644 --- a/src_py/nerlPlanner/JsonElementWorkerDefinitions.py +++ b/src_py/nerlPlanner/JsonElementWorkerDefinitions.py @@ -12,11 +12,12 @@ ("Perceptron" , "3"), ("Pooling" , "4"), ("Probabilistic" , "5"), - ("LSTM" , "6"), - ("Reccurrent" , "7"), - ("Unscaling" , "8"), - ("Flatten" , "9"), - ("Bounding" , "10"), + ("BatchNormalization" , "6"), + ("LSTM" , "7"), + ("Reccurrent" , "8"), + ("Unscaling" , "9"), + ("Flatten" , "10"), + ("Bounding" , "11"), ] ) From 1fe53ed207bbfc45c1d3bb006c7f4b27bbe963b2 Mon Sep 17 00:00:00 2001 From: leondavi Date: Fri, 28 Jun 2024 19:30:52 +0300 Subject: [PATCH 3/7] [NERLPLANNER] Fix missing bounding layer doc --- src_py/nerlPlanner/JsonElementWorker.py | 1 + src_py/nerlPlanner/JsonElementWorkerDefinitions.py | 7 +++++++ src_py/nerlPlanner/WinWorkerDialog.py | 3 ++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src_py/nerlPlanner/JsonElementWorker.py b/src_py/nerlPlanner/JsonElementWorker.py index 1eb033cd2..729e27655 100644 --- a/src_py/nerlPlanner/JsonElementWorker.py +++ b/src_py/nerlPlanner/JsonElementWorker.py @@ -206,6 +206,7 @@ def get_as_dict(self, documentation = True): (KEY_LAYERS_FUNCTIONS_POOLING_DOC, VAL_LAYERS_FUNCTIONS_POOLING_DOC), (KEY_LAYERS_FUNCTIONS_PROBABILISTIC_DOC, VAL_LAYERS_FUNCTIONS_PROBABILISTIC_DOC), (KEY_LAYERS_FUNCTIONS_SCALER_DOC, VAL_LAYERS_FUNCTIONS_SCALER_DOC), + (KEY_LAYERS_FUNCTIONS_BOUNDING_DOC, VAL_LAYERS_FUNCTIONS_BOUNDING_DOC), (KEY_LOSS_METHOD, self.LossMethod), (KEY_LOSS_METHOD_DOC, VAL_LOSS_METHOD_DOC), (KEY_LEARNING_RATE, self.LearningRate), diff --git a/src_py/nerlPlanner/JsonElementWorkerDefinitions.py b/src_py/nerlPlanner/JsonElementWorkerDefinitions.py index 6bd51bfba..629f11139 100644 --- a/src_py/nerlPlanner/JsonElementWorkerDefinitions.py +++ b/src_py/nerlPlanner/JsonElementWorkerDefinitions.py @@ -59,6 +59,11 @@ ("Avg" , "3")] ) +BatchNomalizationMap = OrderedDict( + [("none" , "1"), + ] +) + ActivationFunctionsMap = OrderedDict( [("Threshold" , "1"), ("Sign" , "2"), @@ -155,6 +160,7 @@ def doc_print_dict(d):#define d KEY_LAYERS_FUNCTIONS_SCALER_DOC = "_doc_layer_functions_scaler" KEY_LAYERS_FUNCTIONS_POOLING_DOC = "_doc_layer_functions_pooling" KEY_LAYERS_FUNCTIONS_PROBABILISTIC_DOC = "_doc_layer_functions_probabilistic" +KEY_LAYERS_FUNCTIONS_BOUNDING_DOC = "_doc_layer_functions_bounding" KEY_LOSS_METHOD = "lossMethod" KEY_LOSS_METHOD_DOC = "_doc_lossMethod" KEY_EPOCHS = "epochs" @@ -183,6 +189,7 @@ def doc_print_dict(d):#define d VAL_LAYERS_FUNCTIONS_POOLING_DOC = f"{doc_print_dict(PoolingMethodMap)}" VAL_LAYERS_FUNCTIONS_PROBABILISTIC_DOC = f"{doc_print_dict(ProbabilisticActivationFunctionMap)}" VAL_LAYERS_FUNCTIONS_ACTIVATION_DOC = f"{doc_print_dict(ActivationFunctionsMap)}" +VAL_LAYERS_FUNCTIONS_BOUNDING_DOC = f"{doc_print_dict(BoundingMethodMap)}" VAL_LOSS_METHOD_DOC = f"{doc_print_dict(LossMethodMapping)}" VAL_EPOCHS_DOC = "Positve Integer" VAL_LEARNING_RATE_DOC = "Positve float" diff --git a/src_py/nerlPlanner/WinWorkerDialog.py b/src_py/nerlPlanner/WinWorkerDialog.py index 149492191..6502c6482 100644 --- a/src_py/nerlPlanner/WinWorkerDialog.py +++ b/src_py/nerlPlanner/WinWorkerDialog.py @@ -166,7 +166,8 @@ def ui_update_all_values(WorkerWindow): FlattenDictStr = f'Flatten:\n{pretty_print_dict(FlattenMethodMap)}' BoundingDictStr = f'Bounding:\n{pretty_print_dict(BoundingMethodMap)}' ProbabilisticDictStr = f'Probabilistic:\n{pretty_print_dict(ProbabilisticActivationFunctionMap)}' - sg.popup_ok(f"Layer Functions Codes:\n{ActivationDictStr}\n{PoolingDictStr}\n{ScalerDictStr}\n{FlattenDictStr}\n{BoundingDictStr}\n{ProbabilisticDictStr}", keep_on_top=True, title="Layer Type Codes") + BatchNormalizationDictStr = f'Batch Normalization:\n{pretty_print_dict(BatchNomalizationMap)}' + sg.popup_ok(f"Layer Functions Codes:\n{ActivationDictStr}\n{PoolingDictStr}\n{ScalerDictStr}\n{FlattenDictStr}\n{BoundingDictStr}\n{ProbabilisticDictStr}\n{BatchNormalizationDictStr}", keep_on_top=True, title="Layer Type Codes") if event == KEY_LEARNING_RATE_INPUT: LearningRate = values[event] From 36212816f336bc8a62aaaadfc6976da99bc105eb Mon Sep 17 00:00:00 2001 From: leondavi Date: Sun, 30 Jun 2024 22:49:11 +0300 Subject: [PATCH 4/7] [NERLPLANNER] Add BatchNorm to selection --- src_py/nerlPlanner/WinWorkerDialog.py | 17 ++++++++++++++--- src_py/nerlPlanner/WinWorkerDialogDefnitions.py | 1 + 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src_py/nerlPlanner/WinWorkerDialog.py b/src_py/nerlPlanner/WinWorkerDialog.py index 6502c6482..3c22fe012 100644 --- a/src_py/nerlPlanner/WinWorkerDialog.py +++ b/src_py/nerlPlanner/WinWorkerDialog.py @@ -267,9 +267,15 @@ def LayerMethodSelection(): sg.Listbox(list(ScalingMethodMap.keys()),size=(20,15), enable_events=True, key=KEY_LAYER_METHOD_SELECTION_DIALOG_LISTBOX_SCALER)], [ sg.Text("Bounding",expand_x=True), sg.Text('Flatten', expand_x=True), sg.Text('Probabilistic', expand_x=True)], [ - sg.Listbox(list(BoundingMethodMap.keys()),size=(20,15), enable_events=True, key=KEY_LAYER_METHOD_SELECTION_DIALOG_LISTBOX_BOUNDING), - sg.Listbox(list(FlattenMethodMap.keys()),size=(20,15), enable_events=True, key=KEY_LAYER_METHOD_SELECTION_DIALOG_LISTBOX_FLATTEN), - sg.Listbox(list(ProbabilisticActivationFunctionMap.keys()),size=(20,15), enable_events=True, key=KEY_LAYER_METHOD_SELECTION_DIALOG_LISTBOX_PROBABILISTIC) + sg.Listbox(list(BoundingMethodMap.keys()),size=(20,5), enable_events=True, key=KEY_LAYER_METHOD_SELECTION_DIALOG_LISTBOX_BOUNDING), + sg.Listbox(list(FlattenMethodMap.keys()),size=(20,5), enable_events=True, key=KEY_LAYER_METHOD_SELECTION_DIALOG_LISTBOX_FLATTEN), + sg.Listbox(list(ProbabilisticActivationFunctionMap.keys()),size=(20,5), enable_events=True, key=KEY_LAYER_METHOD_SELECTION_DIALOG_LISTBOX_PROBABILISTIC) + ], + [ + sg.Text("BatchNorm",expand_x=True), sg.Text(' ', expand_x=True), sg.Text(' ', expand_x=True) + ], + [ + sg.Listbox(list(BatchNomalizationMap.keys()),size=(20,5), enable_events=True, key=KEY_LAYER_METHOD_SELECTION_DIALOG_LISTBOX_BATCH_NORMALIZATION), ], [sg.Text('Selection', expand_x=True, enable_events=True, key=KEY_LAYER_METHOD_SELECTION_TEXT),sg.Button('Select', expand_x=True, key=KEY_LAYER_METHOD_SELECTION_BUTTON)]] @@ -309,6 +315,11 @@ def LayerMethodSelection(): global_layer_method_selection_code = FlattenMethodMap[layer_method_selection] layer_selection_win[KEY_LAYER_METHOD_SELECTION_TEXT].update(f'Selected {layer_method_selection} code: {global_layer_method_selection_code}') + if event == KEY_LAYER_METHOD_SELECTION_DIALOG_LISTBOX_BATCH_NORMALIZATION: + layer_method_selection = values[KEY_LAYER_METHOD_SELECTION_DIALOG_LISTBOX_BATCH_NORMALIZATION][0] + global_layer_method_selection_code = BatchNomalizationMap[layer_method_selection] + layer_selection_win[KEY_LAYER_METHOD_SELECTION_TEXT].update(f'Selected {layer_method_selection} code: {global_layer_method_selection_code}') + if event == KEY_LAYER_METHOD_SELECTION_BUTTON: break diff --git a/src_py/nerlPlanner/WinWorkerDialogDefnitions.py b/src_py/nerlPlanner/WinWorkerDialogDefnitions.py index cabef3a6e..9ed41c320 100644 --- a/src_py/nerlPlanner/WinWorkerDialogDefnitions.py +++ b/src_py/nerlPlanner/WinWorkerDialogDefnitions.py @@ -55,6 +55,7 @@ KEY_LAYER_METHOD_SELECTION_DIALOG_LISTBOX_SCALER = '-LAYER-METHOD-SELECTION-DIALOG-LISTBOX-SCALER-' KEY_LAYER_METHOD_SELECTION_DIALOG_LISTBOX_FLATTEN = '-LAYER-METHOD-SELECTION-DIALOG-LISTBOX-FLATTEN-' KEY_LAYER_METHOD_SELECTION_DIALOG_LISTBOX_BOUNDING = '-LAYER-METHOD-SELECTION-DIALOG-LISTBOX-BOUNDING-' +KEY_LAYER_METHOD_SELECTION_DIALOG_LISTBOX_BATCH_NORMALIZATION = '-LAYER-METHOD-SELECTION-DIALOG-LISTBOX-BATCH-NORMALIZATION-' KEY_LAYER_METHOD_SELECTION_DIALOG_LISTBOX_PROBABILISTIC = '-LAYER-METHOD-SELECTION-DIALOG-LISTBOX-PROBABILISTIC-' KEY_LAYER_METHOD_SELECTION_TEXT = '-LAYER-METHOD-SELECTION-TEXT-' KEY_LAYER_METHOD_SELECTION_BUTTON = '-LAYER-METHOD-SELECTION-BUTTON-' From 993ea68b3a54af38230f5b172be266d487b585e9 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Tue, 2 Jul 2024 18:35:53 +0000 Subject: [PATCH 5/7] insert model and batch layer --- src_cpp/opennnBridge/nerlWorkerOpenNN.cpp | 9 ++++++++ .../Bridge/neural_networks_testing_models.hrl | 21 ++++++++++++++++--- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src_cpp/opennnBridge/nerlWorkerOpenNN.cpp b/src_cpp/opennnBridge/nerlWorkerOpenNN.cpp index 031d93075..205584cce 100644 --- a/src_cpp/opennnBridge/nerlWorkerOpenNN.cpp +++ b/src_cpp/opennnBridge/nerlWorkerOpenNN.cpp @@ -486,6 +486,15 @@ namespace nerlnet } break; } + case LAYER_TYPE_BATCHNORMALIZATION: + { + int layer_size = curr_layer->get_dim_size(DIM_X_IDX); + BatchNormalizationLayer* newLayer; + newLayer->set(layer_size); + neural_network_ptr->add_layer(newLayer); + + break; + } } curr_layer = curr_layer->get_next_layer_ptr(); } diff --git a/src_erl/NerlnetApp/src/Bridge/neural_networks_testing_models.hrl b/src_erl/NerlnetApp/src/Bridge/neural_networks_testing_models.hrl index b9a89cf1f..ff5e7d36b 100644 --- a/src_erl/NerlnetApp/src/Bridge/neural_networks_testing_models.hrl +++ b/src_erl/NerlnetApp/src/Bridge/neural_networks_testing_models.hrl @@ -19,7 +19,7 @@ _ModelTypeCNN = "0", _ModelArgsCNN = "", _LayersSizesCNN = "28x28x1k5x5x1x6p0s1t1,28x28x6k2x2p0s2,14x14x6k4x4x6x12p0s1t0,1,32,10", - _LayersTypesCNN = "2,4,2,10,3,5", + _LayersTypesCNN = "2,4,2,9,3,5", _LayersFunctionalityCodesCNN = "6,2,6,6,6,4", % change scaler functionality to 6 to check exception handling _LearningRateCNN = "0.01", _EpochsCNN = "50", @@ -29,11 +29,26 @@ _DistributedSystemTypeCNN = "0", _DistributedSystemArgCNN = ""} ). +-define(CNN_1D_TESTING_NN,{ _ModelIdCNN_1D = erlang:unique_integer([positive]), + _ModelTypeCNN_1D = "0", + _ModelArgsCNN_1D = "", + _LayersSizesCNN_1D = "70x1x1k5x1x1x128p0s1t1 cnn ,66x1x128k2x1p0s1 pool,65x1x128k5x1x128x128p0s1t1 cnn,61x1x128k2x1p0s1 pool, + 60x1x128k5x1x128x64p0s1t0 cnn,1 flat,64 p, 32 p, 16 p,9 softmax", + _LayersTypesCNN_1D = "2,4,2,4,2,10,3,3,3,5", + _LayersFunctionalityCodesCNN = "", % change scaler functionality to 6 to check exception handling + _LearningRateCNN_1D = "0.01", + _EpochsCNN_1D = "50", + _OptimizerTypeCNN_1D = "5", + _OptimizerArgsCNN_1D = "", + _LossMethodCNN_1D = "2", + _DistributedSystemTypeCNN_1D = "0", + _DistributedSystemArgCNN_1D = ""} ). + -define(AEC_TESTING_NN,{ _ModelIdAEC = erlang:unique_integer([positive]), _ModelTypeAEC = "9", _ModelArgsAEC = "", _LayersSizesAEC = "32,16,8,4,8,16,32,32", % last layer (perceptron) should be the same as the input layer , followed by bounding layer - _LayersTypesAEC = "1,3,3,3,3,3,3,11", + _LayersTypesAEC = "1,3,3,3,3,3,3,10", _LayersFunctionalityCodesAEC = "1,11,11,11,11,11,11,1", _LearningRateAEC = "0.01", _EpochsAEC = "50", @@ -47,7 +62,7 @@ _ModelTypeAE = "8", _ModelArgsAE = "", _LayersSizesAE = "32,16,8,4,8,16,32,32", % last layer (perceptron) should be the same as the input layer , followed by bounding layer - _LayersTypesAE = "1,3,3,3,3,3,3,11", + _LayersTypesAE = "1,3,3,3,3,3,3,10", _LayersFunctionalityCodesAE = "1,11,11,11,11,11,11,1", _LearningRateAE = "0.01", _EpochsAE = "50", From 752884a2cce0a2ac603c62387444cc6b8e44586d Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Thu, 4 Jul 2024 20:42:15 +0000 Subject: [PATCH 6/7] 1d conv worker --- .../src/Bridge/neural_networks_testing_models.hrl | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src_erl/NerlnetApp/src/Bridge/neural_networks_testing_models.hrl b/src_erl/NerlnetApp/src/Bridge/neural_networks_testing_models.hrl index ff5e7d36b..ddf7f6864 100644 --- a/src_erl/NerlnetApp/src/Bridge/neural_networks_testing_models.hrl +++ b/src_erl/NerlnetApp/src/Bridge/neural_networks_testing_models.hrl @@ -19,7 +19,7 @@ _ModelTypeCNN = "0", _ModelArgsCNN = "", _LayersSizesCNN = "28x28x1k5x5x1x6p0s1t1,28x28x6k2x2p0s2,14x14x6k4x4x6x12p0s1t0,1,32,10", - _LayersTypesCNN = "2,4,2,9,3,5", + _LayersTypesCNN = "2,4,2,10,3,5", _LayersFunctionalityCodesCNN = "6,2,6,6,6,4", % change scaler functionality to 6 to check exception handling _LearningRateCNN = "0.01", _EpochsCNN = "50", @@ -32,10 +32,9 @@ -define(CNN_1D_TESTING_NN,{ _ModelIdCNN_1D = erlang:unique_integer([positive]), _ModelTypeCNN_1D = "0", _ModelArgsCNN_1D = "", - _LayersSizesCNN_1D = "70x1x1k5x1x1x128p0s1t1 cnn ,66x1x128k2x1p0s1 pool,65x1x128k5x1x128x128p0s1t1 cnn,61x1x128k2x1p0s1 pool, - 60x1x128k5x1x128x64p0s1t0 cnn,1 flat,64 p, 32 p, 16 p,9 softmax", + _LayersSizesCNN_1D = "70x1x1k5x1x1x128p0s1t0,66x1x128k2x1p0s1,65x1x128k5x1x128x128p0s1t0,61x1x128k2x1p0s1,60x1x128k5x1x128x64p0s1t0,1,64,32,16,9", _LayersTypesCNN_1D = "2,4,2,4,2,10,3,3,3,5", - _LayersFunctionalityCodesCNN = "", % change scaler functionality to 6 to check exception handling + _LayersFunctionalityCodesCNN_1D = "6,2,6,2,6,1,6,6,6,4", % change scaler functionality to 6 to check exception handling _LearningRateCNN_1D = "0.01", _EpochsCNN_1D = "50", _OptimizerTypeCNN_1D = "5", @@ -48,7 +47,7 @@ _ModelTypeAEC = "9", _ModelArgsAEC = "", _LayersSizesAEC = "32,16,8,4,8,16,32,32", % last layer (perceptron) should be the same as the input layer , followed by bounding layer - _LayersTypesAEC = "1,3,3,3,3,3,3,10", + _LayersTypesAEC = "1,3,3,3,3,3,3,11", _LayersFunctionalityCodesAEC = "1,11,11,11,11,11,11,1", _LearningRateAEC = "0.01", _EpochsAEC = "50", @@ -62,7 +61,7 @@ _ModelTypeAE = "8", _ModelArgsAE = "", _LayersSizesAE = "32,16,8,4,8,16,32,32", % last layer (perceptron) should be the same as the input layer , followed by bounding layer - _LayersTypesAE = "1,3,3,3,3,3,3,10", + _LayersTypesAE = "1,3,3,3,3,3,3,11", _LayersFunctionalityCodesAE = "1,11,11,11,11,11,11,1", _LearningRateAE = "0.01", _EpochsAE = "50", @@ -72,5 +71,5 @@ _DistributedSystemTypeAE = "0", _DistributedSystemArgAE = ""} ). --define(NEURAL_NETWORK_TESTING_MODELS_LIST, [?PERCEPTRON_TESTING_NN ,?AEC_TESTING_NN , ?CNN_TESTING_NN]). --define(NEURAL_NETWORK_TESTING_MODELS_LIST_NAMES, ["Perceptron" ,"AEC" ,"CNN"]). \ No newline at end of file +-define(NEURAL_NETWORK_TESTING_MODELS_LIST, [?PERCEPTRON_TESTING_NN ,?AEC_TESTING_NN , ?CNN_TESTING_NN,?CNN_1D_TESTING_NN]). +-define(NEURAL_NETWORK_TESTING_MODELS_LIST_NAMES, ["Perceptron" ,"AEC" ,"CNN","CNN_1D"]). \ No newline at end of file From cc6afabb1fe5bfa56e86ea6b58fdd5777e6dc630 Mon Sep 17 00:00:00 2001 From: leondavi Date: Sat, 6 Jul 2024 02:46:42 +0300 Subject: [PATCH 7/7] Version Update of Nerlplanner --- src_cpp/common/worker_definitions_ag.h | 2 +- src_erl/NerlnetApp/src/Bridge/layers_types_ag.hrl | 2 +- src_erl/NerlnetApp/src/Bridge/models_types_ag.hrl | 2 +- src_erl/NerlnetApp/src/dc_definitions_ag.hrl | 2 +- src_erl/NerlnetApp/src/router_definitions_ag.hrl | 2 +- src_erl/NerlnetApp/src/source_definitions_ag.hrl | 2 +- src_erl/NerlnetApp/src/worker_definitions_ag.hrl | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src_cpp/common/worker_definitions_ag.h b/src_cpp/common/worker_definitions_ag.h index 6de8c4fc3..2e4ea2f5c 100644 --- a/src_cpp/common/worker_definitions_ag.h +++ b/src_cpp/common/worker_definitions_ag.h @@ -1,7 +1,7 @@ #pragma once // This file was auto generated -// Generated by Nerlplanner version: 1.0.2 +// Generated by Nerlplanner version: 1.0.3 namespace nerlnet { diff --git a/src_erl/NerlnetApp/src/Bridge/layers_types_ag.hrl b/src_erl/NerlnetApp/src/Bridge/layers_types_ag.hrl index 0bc61793b..2f1af62cf 100644 --- a/src_erl/NerlnetApp/src/Bridge/layers_types_ag.hrl +++ b/src_erl/NerlnetApp/src/Bridge/layers_types_ag.hrl @@ -1,5 +1,5 @@ % This is an auto generated .hrl file -% DC Fields Generated by Nerlplanner version: 1.0.2 +% DC Fields Generated by Nerlplanner version: 1.0.3 -define(LAYERS_TYPE_DEFAULT_IDX,"0"). -define(LAYERS_TYPE_SCALING_IDX,"1"). diff --git a/src_erl/NerlnetApp/src/Bridge/models_types_ag.hrl b/src_erl/NerlnetApp/src/Bridge/models_types_ag.hrl index 557fce500..8aa8d264e 100644 --- a/src_erl/NerlnetApp/src/Bridge/models_types_ag.hrl +++ b/src_erl/NerlnetApp/src/Bridge/models_types_ag.hrl @@ -1,5 +1,5 @@ % This is an auto generated .hrl file -% DC Fields Generated by Nerlplanner version: 1.0.2 +% DC Fields Generated by Nerlplanner version: 1.0.3 -define(MODEL_TYPE_NN_IDX,"0"). -define(MODEL_TYPE_APPROXIMATION_IDX,"1"). diff --git a/src_erl/NerlnetApp/src/dc_definitions_ag.hrl b/src_erl/NerlnetApp/src/dc_definitions_ag.hrl index 73ab3cc53..ddb8eed78 100644 --- a/src_erl/NerlnetApp/src/dc_definitions_ag.hrl +++ b/src_erl/NerlnetApp/src/dc_definitions_ag.hrl @@ -1,5 +1,5 @@ % This is an auto generated .hrl file -% DC Fields Generated by Nerlplanner version: 1.0.2 +% DC Fields Generated by Nerlplanner version: 1.0.3 -define(DC_KEY_NERLNET_SETTINGS_ATOM,nerlnetSettings). -define(DC_KEY_FREQUENCY_ATOM,frequency). diff --git a/src_erl/NerlnetApp/src/router_definitions_ag.hrl b/src_erl/NerlnetApp/src/router_definitions_ag.hrl index 98dc37206..fa1d89851 100644 --- a/src_erl/NerlnetApp/src/router_definitions_ag.hrl +++ b/src_erl/NerlnetApp/src/router_definitions_ag.hrl @@ -1,5 +1,5 @@ % This is an auto generated .hrl file -% Source Fields Generated by Nerlplanner version: 1.0.2 +% Source Fields Generated by Nerlplanner version: 1.0.3 -define(ROUTER_POLICY_ROUTINGTABLE_IDX,"0"). diff --git a/src_erl/NerlnetApp/src/source_definitions_ag.hrl b/src_erl/NerlnetApp/src/source_definitions_ag.hrl index cac5e234a..7005e2ecd 100644 --- a/src_erl/NerlnetApp/src/source_definitions_ag.hrl +++ b/src_erl/NerlnetApp/src/source_definitions_ag.hrl @@ -1,5 +1,5 @@ % This is an auto generated .hrl file -% Source Fields Generated by Nerlplanner version: 1.0.2 +% Source Fields Generated by Nerlplanner version: 1.0.3 -define(SOURCE_POLICY_CASTING_IDX,"0"). -define(SOURCE_POLICY_ROUNDROBIN_IDX,"1"). diff --git a/src_erl/NerlnetApp/src/worker_definitions_ag.hrl b/src_erl/NerlnetApp/src/worker_definitions_ag.hrl index 57bf2761d..08fb097f1 100644 --- a/src_erl/NerlnetApp/src/worker_definitions_ag.hrl +++ b/src_erl/NerlnetApp/src/worker_definitions_ag.hrl @@ -1,5 +1,5 @@ % This is an auto generated .hrl file -% Worker Fields Generated by Nerlplanner version: 1.0.2 +% Worker Fields Generated by Nerlplanner version: 1.0.3 -define(WORKER_FIELD_KEY_MODEL_TYPE,modelType). -define(WORKER_FIELD_KEY_MODEL_ARGS,modelArgs).