mattizza / fl-project Goto Github PK
View Code? Open in Web Editor NEWCode regarding the Semantic Segmentation in Federated Learning project for the Machine Learning and Deep Learning 2022/2023 project.
License: GNU General Public License v3.0
Code regarding the Semantic Segmentation in Federated Learning project for the Machine Learning and Deep Learning 2022/2023 project.
License: GNU General Public License v3.0
Check whether it is possible to initialize the parameters (e.g., He or Xavier) and do it eventually.
Added comments and made the code cleaner.
Implement run_epoch() function in order to iterate over the different epochs in a smart way inside the train().
Tune learning rate, optimizer and transforms.
Explore other alternatives, e.g. horizontal flips, change of shading, random crop, ...
Armonization of the train() function; now it includes run_epoch(), the learning curves and the optimization input.
Implement learning curves and set the granularity for the plot of the loss.
Implemented an efficient way to specify the optimizer (and its hyperparameters) and the rate decay (and its hyperparameters).
CNNs make use of transfer learning. Still there may be the need to fine tuning the last layers of our model to exploit it better on IDDA. I'm putting this here because it may be something we can add to the report of the first part. We can proceed, without tuning it and recover later when we will have more free time
Comment functions and classes.
We can see the clients as sort of weak learners. What one could do is to do bootstrapping or to apply a sort of ensemble method: lot of weak learners are better than a single one. Explore this and how to exploit this crowd wisdom
Starting code already provided. Need to implement it into the most recent version in the best way possible.
Create a method that sends just the updates of each client for each round. Ideally, if we have W_star = W - alpha x gradient, the updates are only W_star - W = alpha x gradient, i.e. how much the parameters have changed within a round. This is characteristic of FedAvg and it is also privacy-oriented.
The function is already provided in centralized.py. Armonize and implement it into the clients in order to build a optimizer/scheduler for each configuration.
All the methods of client.py are not up to date with those of centralized. Armonization needed in order to get rid of centralized.py and keep only client.py.
Implement model evaluation with validation and test sets.
The goal is to shuffle the transforms and pass them as argument to the client in the config. So in the config dictionary, there should be room also for different combinations of transformations. Notice this is done only when we have just one client and we are still tuning the hyperparameters. This will be done with WandB.
In a real world scenario, clients may have different numbers of pictures in their device. This means that client A may have 30 pictures, whereas client B may store 120 instead. In order to simulate this, it is useful to randomly assign a different number of sample to each client. What happens if the clients change the distribution over time? What happens if they add/remove pictures?
Per tracciare la miou sui datastet test_same_dom.txt e test_diff_dom.txt dobbiamo passare ai test client i parametri del modello man mano che viene allenato.
To Do:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.