Skip to content

Commit 179fb2e

Browse files
leondavihalfway258
andauthored
Worker ets (#185)
* [WORKER] Clean redundatnt prints and code * [GENWORKER] WIP implement workers and change worker to ets support * [GENWORKER] WIP add new hrl * update phase * federated flow * federated avg weights * full federated flow * json stantard * final federated flow * CI pass? * CI pass * comments * working CI version * federeated nif compatability * remove print * synth exp --------- Co-authored-by: halfway258 <[email protected]>
1 parent 5cf3ba7 commit 179fb2e

35 files changed

+769
-1665
lines changed

NerlnetTest.sh

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
11
#!/bin/bash
2-
# set -e # TODO remove
3-
# cd src_py/apiServer
4-
# python3 experiment_flow_test.py
5-
# cd -
62

73
function print()
84
{
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
{
2+
"NerlNetSettings":
3+
{
4+
"frequency": "5",
5+
"batchSize": "10"
6+
}
7+
,
8+
"devices": [
9+
{
10+
"host": "192.168.0.108",
11+
"entities": "mainServer,c1,c2,s1,r1,nerlGUI,apiServer",
12+
"desc": "entity names are atoms (start with lowercase letter). special entities have immutable names"
13+
}
14+
],
15+
"apiServer":
16+
{
17+
"host": "192.168.0.108",
18+
"port": "8095",
19+
"args": ""
20+
}
21+
,
22+
"nerlGUI":
23+
{
24+
"host": "192.168.0.108",
25+
"port": "8096",
26+
"args": ""
27+
}
28+
,
29+
"mainServer":
30+
{
31+
"host": "192.168.0.108",
32+
"port": "8080",
33+
"args": ""
34+
}
35+
,
36+
"workers": [
37+
{
38+
"name": "w1",
39+
"modelType_desc": "E_APPROXIMATION = 1, E_CLASSIFICATION = 2, E_FORECASTING = 3 , E_NCODER_DECODER = 4, E_CUSTOMNN = 5, E_AE = 6, E_AEC = 7, E_FEDERATED_CLIENT = 8, E_FEDERATED_SERVER = 9",
40+
"modelType": "8",
41+
"scalingMethod_desc": "Non-Scaling = 1 , MinimumMaximum = 2 , MeanStandardDeviation = 3 , StandardDeviation = 4 , Logarithm = 5",
42+
"scalingMethod": "1",
43+
"layerTypesList_desc": "E_LAYER_TYPE_DEFAULT(perceptron) = 0, E_LAYER_TYPE_SCALING = 1, E_LAYER_TYPE_CONVOLUTIONAL = 2 , E_LAYER_TYPE_PERCEPTRON = 3 , E_LAYER_TYPE_POOLING = 4 , E_LAYER_TYPE_PROBABILISTIC = 5 , E_LAYER_TYPE_LSTM = 6 , E_LAYER_TYPE_RECURRENT = 7 , E_LAYER_TYPE_UNSCALING = 8 , E_LAYER_TYPE_BOUNDING = 9 ",
44+
"layerTypesList": "[4,1,1,1,0,0,0]",
45+
"layersSizes": "[4,1,1,13,10,6,5]",
46+
"layersActivationFunctions_desc": "Threshold = 1, SymmetricThreshold = 2 ,Logistic = 3 ,HyperbolicTangent = 4 ,Linear = 5,RectifiedLinear = 6 ,ExponentialLinear = 7 ,ScaledExponentialLinear = 8 ,SoftPlus = 9 ,SoftSign = 10 ,HardSigmoid = 11",
47+
"layersActivationFunctions": "[4,1,1,6,6,11,11]",
48+
"lossMethod_desc": "SUM_SQUARED_ERROR = 1, MSE = 2 /* MSE - Mean Squared Error */, E_LOSS_METHOD_NSE = 3 /* NSE - Normalized Squared Error */, MINKOWSKI_ERROR = 4, WSE = 5 /* WSE - Weighted Squared Error */, CEE = 6 /* CEE - Cross Entropy Error */",
49+
"lossMethod": "2",
50+
"learningRate": "0.01",
51+
"optimizer_desc": "0- NONE, 1- SGD, 2- MINI_BATCH_SGD, 3- MOMENTUM, 4- NAG, 5- ADAGRAD, 6- ADAM",
52+
"optimizer":"6",
53+
"federatedServer_desc": "federatedServer = name of fedServerWorker (if modelType==8), syncCount = after how many batches to sync/update weights",
54+
"federatedServer": "w2",
55+
"syncCount": "10"
56+
},
57+
{
58+
"name": "w2",
59+
"_comment0": "E_APPROXIMATION = 1, E_CLASSIFICATION = 2, E_FORECASTING = 3 , E_NCODER_DECODER = 4, E_CUSTOMNN = 5, E_AE = 6, E_AEC = 7, E_FEDERATED_CLIENT = 8, E_FEDERATED_SERVER = 9",
60+
"modelType": "9",
61+
"scalingType_comment1": "Non-Scaling = 1 , MinimumMaximum = 2 , MeanStandardDeviation = 3 , StandardDeviation = 4 , Logarithm = 5",
62+
"scalingMethod": "1",
63+
"_commnet_layer_type": "E_LAYER_TYPE_DEFAULT(perceptron) = 0, E_LAYER_TYPE_SCALING = 1, E_LAYER_TYPE_CONVOLUTIONAL = 2 , E_LAYER_TYPE_PERCEPTRON = 3 , E_LAYER_TYPE_POOLING = 4 , E_LAYER_TYPE_PROBABILISTIC = 5 , E_LAYER_TYPE_LSTM = 6 , E_LAYER_TYPE_RECURRENT = 7 , E_LAYER_TYPE_UNSCALING = 8 , E_LAYER_TYPE_BOUNDING = 9 ",
64+
"layerTypesList": "[4,1,1,1,0,0,0]",
65+
"layersSizes": "[4,1,1,13,10,6,5]",
66+
"_comment2": "Activation functions explain: Threshold = 1, SymmetricThreshold = 2 ,Logistic = 3 ,HyperbolicTangent = 4 ,Linear = 5,RectifiedLinear = 6 ,ExponentialLinear = 7 ,ScaledExponentialLinear = 8 ,SoftPlus = 9 ,SoftSign = 10 ,HardSigmoid = 11",
67+
"layersActivationFunctions": "[4,1,1,6,6,11,11]",
68+
"_comment4": "LOSS: SUM_SQUARED_ERROR = 1, MSE = 2 /* MSE - Mean Squared Error */, E_LOSS_METHOD_NSE = 3 /* NSE - Normalized Squared Error */, MINKOWSKI_ERROR = 4, WSE = 5 /* WSE - Weighted Squared Error */, CEE = 6 /* CEE - Cross Entropy Error */",
69+
"lossMethod": "2",
70+
"_comment5": "TODO explain learningRate",
71+
"learningRate": "0.01",
72+
"_comment3": "OptimizerExplain: 0- NONE, 1- SGD, 2- MINI_BATCH_SGD, 3- MOMENTUM, 4- NAG, 5- ADAGRAD, 6- ADAM",
73+
"optimizer":"6",
74+
"_comment6": "Federated options: federatedServer = name of fedServerWorker, syncCount = after how many batches to sync/update weights",
75+
"federatedServer": "w2",
76+
"syncCount": "10"
77+
}
78+
],
79+
"clients": [
80+
{
81+
"name": "c1",
82+
"port": "8081",
83+
"workers": "w1"
84+
},
85+
{
86+
"name": "c2",
87+
"port": "8082",
88+
"workers": "w2"
89+
}
90+
],
91+
"sources": [
92+
{
93+
"name": "s1",
94+
"port": "8091",
95+
"method_desc": "methods allowed: '1': sends each sample to all clients listed, '2': round robin between all clients",
96+
"method": "1"
97+
}
98+
],
99+
"routers": [
100+
{
101+
"name": "r1",
102+
"port": "8084"
103+
}
104+
]
105+
}
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
{
2+
"NerlNetSettings":
3+
{
4+
"frequency": "5",
5+
"batchSize": "50"
6+
}
7+
,
8+
"devices": [
9+
{
10+
"host": "192.168.0.108",
11+
"entities": "mainServer,c1,s1,r1,nerlGUI,apiServer"
12+
}
13+
],
14+
"apiServer":
15+
{
16+
"host": "192.168.0.108",
17+
"port": "8095",
18+
"args": ""
19+
}
20+
,
21+
"nerlGUI":
22+
{
23+
"host": "192.168.0.108",
24+
"port": "8096",
25+
"args": ""
26+
}
27+
,
28+
"mainServer":
29+
{
30+
"host": "192.168.0.108",
31+
"port": "8080",
32+
"args": ""
33+
}
34+
,
35+
"workers": [
36+
{
37+
"name": "w1",
38+
"modelId": "1",
39+
"_comment0": "E_APPROXIMATION = 1, E_CLASSIFICATION = 2, E_FORECASTING = 3 , E_NCODER_DECODER = 4, E_CUSTOMNN = 5, E_AE = 6, E_AEC = 7",
40+
"modelType": "5",
41+
"scalingType_comment1": "Non-Scaling = 1 , MinimumMaximum = 2 , MeanStandardDeviation = 3 , StandardDeviation = 4 , Logarithm = 5",
42+
"scalingMethod": "1",
43+
"_commnet_layer_type": "E_LAYER_TYPE_DEFAULT(perceptron) = 0, E_LAYER_TYPE_SCALING = 1, E_LAYER_TYPE_CONVOLUTIONAL = 2 , E_LAYER_TYPE_PERCEPTRON = 3 , E_LAYER_TYPE_POOLING = 4 , E_LAYER_TYPE_PROBABILISTIC = 5 , E_LAYER_TYPE_LSTM = 6 , E_LAYER_TYPE_RECURRENT = 7 , E_LAYER_TYPE_UNSCALING = 8 , E_LAYER_TYPE_BOUNDING = 9 ",
44+
"layerTypesList": "[3,1,1,1,0,0]",
45+
"layersSizes": "[3,1,1,5,3,3]",
46+
"_comment2": "Activation functions explain: Threshold = 1, SymmetricThreshold = 2 ,Logistic = 3 ,HyperbolicTangent = 4 ,Linear = 5,RectifiedLinear = 6 ,ExponentialLinear = 7 ,ScaledExponentialLinear = 8 ,SoftPlus = 9 ,SoftSign = 10 ,HardSigmoid = 11",
47+
"layersActivationFunctions": "[3,1,1,6,6,11]",
48+
"federatedMode": "0",
49+
"countLimit": "10",
50+
"_comment4": "LOSS: SUM_SQUARED_ERROR = 1, MSE = 2 /* MSE - Mean Squared Error */, E_LOSS_METHOD_NSE = 3 /* NSE - Normalized Squared Error */, MINKOWSKI_ERROR = 4, WSE = 5 /* WSE - Weighted Squared Error */, CEE = 6 /* CEE - Cross Entropy Error */",
51+
"lossMethod": "2",
52+
"_comment5": "TODOTODO explain learningRate",
53+
"learningRate": "0.01",
54+
"_comment3": "OptimizerExplain: 0- NONE, 1- SGD, 2- MINI_BATCH_SGD, 3- MOMENTUM, 4- NAG, 5- ADAGRAD, 6- ADAM",
55+
"optimizer":"6"
56+
}
57+
],
58+
"clients": [
59+
{
60+
"name": "c1",
61+
"port": "8081",
62+
"workers": "w1"
63+
}
64+
],
65+
"sources": [
66+
{
67+
"name": "s1",
68+
"port": "8091",
69+
"method": "1",
70+
"COMMENTS": "method allowed: '1': sends each exapme to all clients listed, '2': round robin between all clients"
71+
}
72+
],
73+
"routers": [
74+
{
75+
"name": "r1",
76+
"port": "8084"
77+
}
78+
]
79+
}

inputJsonFiles/Architecture/arch_1PC2Clients4WorkerHealth_david.json

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"NerlNetSettings":
33
{
4-
"frequency": "5",
4+
"frequency": "100",
55
"batchSize": "10"
66
}
77
,
@@ -55,9 +55,7 @@
5555
"_comment5": "TODOTODO explain learningRate",
5656
"learningRate": "0.01",
5757
"_comment3": "OptimizerExplain: 0- NONE, 1- SGD, 2- MINI_BATCH_SGD, 3- MOMENTUM, 4- NAG, 5- ADAGRAD, 6- ADAM",
58-
"optimizer":"6",
59-
"features": "13",
60-
"labels": "5"
58+
"optimizer":"6"
6159
},
6260
{
6361
"name": "w2",
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
{
2+
"NerlNetSettings":
3+
{
4+
"frequency": "5",
5+
"batchSize": "10"
6+
}
7+
,
8+
"devices": [
9+
{
10+
"host": "192.168.0.108",
11+
"entities": "mainServer,c1,c2,s1,r1,nerlGUI,apiServer"
12+
}
13+
],
14+
"apiServer":
15+
{
16+
"host": "192.168.0.108",
17+
"port": "8095",
18+
"args": ""
19+
}
20+
,
21+
"nerlGUI":
22+
{
23+
"host": "192.168.0.108",
24+
"port": "8096",
25+
"args": ""
26+
}
27+
,
28+
"mainServer":
29+
{
30+
"host": "192.168.0.108",
31+
"port": "8080",
32+
"args": ""
33+
}
34+
,
35+
"workers": [
36+
{
37+
"name": "w1",
38+
"_comment0": "E_APPROXIMATION = 1, E_CLASSIFICATION = 2, E_FORECASTING = 3 , E_NCODER_DECODER = 4, E_CUSTOMNN = 5, E_AE = 6, E_AEC = 7, E_FEDERATED_CLIENT = 8, E_FEDERATED_SERVER = 9",
39+
"modelType": "8",
40+
"scalingType_comment1": "Non-Scaling = 1 , MinimumMaximum = 2 , MeanStandardDeviation = 3 , StandardDeviation = 4 , Logarithm = 5",
41+
"scalingMethod": "1",
42+
"_commnet_layer_type": "E_LAYER_TYPE_DEFAULT(perceptron) = 0, E_LAYER_TYPE_SCALING = 1, E_LAYER_TYPE_CONVOLUTIONAL = 2 , E_LAYER_TYPE_PERCEPTRON = 3 , E_LAYER_TYPE_POOLING = 4 , E_LAYER_TYPE_PROBABILISTIC = 5 , E_LAYER_TYPE_LSTM = 6 , E_LAYER_TYPE_RECURRENT = 7 , E_LAYER_TYPE_UNSCALING = 8 , E_LAYER_TYPE_BOUNDING = 9 ",
43+
"layerTypesList": "[4,1,1,1,0,0,0]",
44+
"layersSizes": "[4,1,1,13,10,6,5]",
45+
"_comment2": "Activation functions explain: Threshold = 1, SymmetricThreshold = 2 ,Logistic = 3 ,HyperbolicTangent = 4 ,Linear = 5,RectifiedLinear = 6 ,ExponentialLinear = 7 ,ScaledExponentialLinear = 8 ,SoftPlus = 9 ,SoftSign = 10 ,HardSigmoid = 11",
46+
"layersActivationFunctions": "[4,1,1,6,6,11,11]",
47+
"_comment4": "LOSS: SUM_SQUARED_ERROR = 1, MSE = 2 /* MSE - Mean Squared Error */, E_LOSS_METHOD_NSE = 3 /* NSE - Normalized Squared Error */, MINKOWSKI_ERROR = 4, WSE = 5 /* WSE - Weighted Squared Error */, CEE = 6 /* CEE - Cross Entropy Error */",
48+
"lossMethod": "2",
49+
"_comment5": "TODO explain learningRate",
50+
"learningRate": "0.01",
51+
"_comment3": "OptimizerExplain: 0- NONE, 1- SGD, 2- MINI_BATCH_SGD, 3- MOMENTUM, 4- NAG, 5- ADAGRAD, 6- ADAM",
52+
"optimizer":"6",
53+
"_comment6": "Federated options: federatedServer = name of fedServerWorker, syncCount = after how many batches to sync/update weights",
54+
"federatedServer": "w2",
55+
"syncCount": "10"
56+
},
57+
{
58+
"name": "w2",
59+
"_comment0": "E_APPROXIMATION = 1, E_CLASSIFICATION = 2, E_FORECASTING = 3 , E_NCODER_DECODER = 4, E_CUSTOMNN = 5, E_AE = 6, E_AEC = 7, E_FEDERATED_CLIENT = 8, E_FEDERATED_SERVER = 9",
60+
"modelType": "9",
61+
"scalingType_comment1": "Non-Scaling = 1 , MinimumMaximum = 2 , MeanStandardDeviation = 3 , StandardDeviation = 4 , Logarithm = 5",
62+
"scalingMethod": "1",
63+
"_commnet_layer_type": "E_LAYER_TYPE_DEFAULT(perceptron) = 0, E_LAYER_TYPE_SCALING = 1, E_LAYER_TYPE_CONVOLUTIONAL = 2 , E_LAYER_TYPE_PERCEPTRON = 3 , E_LAYER_TYPE_POOLING = 4 , E_LAYER_TYPE_PROBABILISTIC = 5 , E_LAYER_TYPE_LSTM = 6 , E_LAYER_TYPE_RECURRENT = 7 , E_LAYER_TYPE_UNSCALING = 8 , E_LAYER_TYPE_BOUNDING = 9 ",
64+
"layerTypesList": "[4,1,1,1,0,0,0]",
65+
"layersSizes": "[4,1,1,13,10,6,5]",
66+
"_comment2": "Activation functions explain: Threshold = 1, SymmetricThreshold = 2 ,Logistic = 3 ,HyperbolicTangent = 4 ,Linear = 5,RectifiedLinear = 6 ,ExponentialLinear = 7 ,ScaledExponentialLinear = 8 ,SoftPlus = 9 ,SoftSign = 10 ,HardSigmoid = 11",
67+
"layersActivationFunctions": "[4,1,1,6,6,11,11]",
68+
"_comment4": "LOSS: SUM_SQUARED_ERROR = 1, MSE = 2 /* MSE - Mean Squared Error */, E_LOSS_METHOD_NSE = 3 /* NSE - Normalized Squared Error */, MINKOWSKI_ERROR = 4, WSE = 5 /* WSE - Weighted Squared Error */, CEE = 6 /* CEE - Cross Entropy Error */",
69+
"lossMethod": "2",
70+
"_comment5": "TODO explain learningRate",
71+
"learningRate": "0.01",
72+
"_comment3": "OptimizerExplain: 0- NONE, 1- SGD, 2- MINI_BATCH_SGD, 3- MOMENTUM, 4- NAG, 5- ADAGRAD, 6- ADAM",
73+
"optimizer":"6",
74+
"_comment6": "Federated options: federatedServer = name of fedServerWorker, syncCount = after how many batches to sync/update weights",
75+
"federatedServer": "w2",
76+
"syncCount": "10"
77+
}
78+
],
79+
"clients": [
80+
{
81+
"name": "c1",
82+
"port": "8081",
83+
"workers": "w1"
84+
},
85+
{
86+
"name": "c2",
87+
"port": "8082",
88+
"workers": "w2"
89+
}
90+
],
91+
"sources": [
92+
{
93+
"name": "s1",
94+
"port": "8091",
95+
"COMMENTS": "method allowed: '1': sends each exapme to all clients listed, '2': round robin between all clients",
96+
"method": "1"
97+
}
98+
],
99+
"routers": [
100+
{
101+
"name": "r1",
102+
"port": "8084"
103+
}
104+
]
105+
}

0 commit comments

Comments
 (0)