- Change the
conf/conf.yml
to your preference. - Feel free to use
open_terminals.sh
oropen_tmux.sh
. Each assumes you are using GNOME and/or tmux repectively. By default, they open three windows or three panels. - Run
src/server.py
,src/client1.py
, andsrc/client2.py
. If you want more number of parties, change the configuration and createsrc/clientN.py
by copying (after that change theclient_name
variable value.) - After all socket connections get established, the server creates an initial model. Send any message from client side. Server returns the location of init-model. Once the clients receive it, they start updating the init-model using their own data (
n
inconf/conf.yml
is for the number of samples to train). After they finish each training, they report the server about the locations of the updated models. This Round will continue forrounds
(you define) times.
On the client side, do not interrupt the update on the server side. After sending the locally updated model to the server, wait until the server has received and aggregated it from all clients.