Accepted in the 39th International Symposium on Reliable Distributed Systems (SRDS), 2020
Paper: Robust-P2P-Personalized-Learning-SRDS-2020.pdf
pip install -r requirements.txt
python run.py
# MP, confidence False
mp_exp.communication_rounds(**config)
plots.figure(file, config)
Generates a file with name
communication_rounds_{number_of_nodes}_N
# MP, confidence True
mp_exp.communication_rounds(**config)
plots.figure(file, config)
Generates a file with name
communication_rounds_{number_of_nodes}_C
# CDPL, confidence True
mp_exp.communication_rounds(**config)
plots.figure(file, config)
Generates a file with name
communication_rounds_{number_of_nodes}_F
Plot the result using the function plots.plot(number_of_nodes, analysis)
plots.plot(50, "communication_rounds")
Same analogy
# MP/CDPL, confidence True/False
mp_exp.byzantine(**config)
# CDPL
mp_exp.contribution_factor(**config)
plots.contribution_factor(file)
# CDPL
file = mp_exp.byzantine_metrics(**config)
plots.byzantine_metrics(file)
# MP/CDPL, confidence True/False
mp_exp.data_unbalancedness(**config)
Plot the result using the function plots.plot(50, "data_unbalancedness")
# MP/CDPL, confidence True/False
mp_exp.graph_sparsity(**config)
Plot the result using the function plots.plot(50, "graph_sparsity")
To customize the setting of the prototype edit the parameters in peernet/constants.py
Default params:
DEBUG_LEVEL = 0
START_PORT = 15000
STOP_CONDITION = 100
TEST_SAMPLE = 1000
CF_THRESHOLD = 0.8
EPSILON_FAIRNESS = -0.1
CONFIDENCE_MEASURE = "max"
ACCURACY_METRIC = "accuracy"
...