This app, together with the pretrained_model_local app, form an aggregation pipeline for pretrained MNIST models using SyftBox
- Reset everything if necessary with
just reset. Clone thepretrained_model_localandpretrained_model_aggregatorbranches into the current directory, e.g. with the commandgit clone --branch pretrained_model_aggregator https://github.com/OpenMined/tutorial-apps.git pretrained_model_aggregator - Run upto 11 clients (
a, b, c...) withjust run-client <client_name>and the SyftBox cache serverjust run-server. Here,awill be the model aggregator - Install the local pretrained app on
b, c, ...:syftbox app install pretrained_model_local --config_path <path_to_config.json>where<path_to_config.json>points toborcor other clients'config.jsonfile - Install the model aggregator app on
a:syftbox app install pretrained_model_aggregator --config_path <path_to_config.json>where<path_to_config.json>points toa'sconfig.jsonfile - In
a'sapps/pretrained_model_aggregatorfolder, modify the participants inparticipants.json - Move the participants' MNIST pretrained model in their
privatefolder intopublicto let it be aggregated bya awill automatically look for and aggregate the models from other clients. Checka's SyftBox client log to see if the global model accuracy has improved, look for key words "Aggregated models from" and "Global model accuracy"
- Clone the
pretrained_model_aggregatorbranch into the current directory, e.g. with the commandgit clone --branch pretrained_model_aggregator https://github.com/OpenMined/tutorial-apps.git pretrained_model_aggregator - Run your syft client with
syftbox client - Install the aggregator app
syftbox app install pretrained_model_aggregator - Go to your sync folder's
apps/pretrained_model_aggregatorand change the list of participants inparticipants.json - Wait for the participants to submit their pretrained models. Monitor your syftbox client logs, look for key words "Aggregated models from" and "Global model accuracy"