Giter Site home page Giter Site logo

mattizza / fl-project Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 1.0 681.19 MB

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

Python 93.66% Jupyter Notebook 6.34%
aggregation-scheme autonomous-driving client-selection deeplabv3 domain-adaptation federated-learning mobilenetv2 semantic-segmentation

fl-project's People

Contributors

jacopolungo avatar matteodona avatar mattizza avatar

Watchers

 avatar

Forkers

matteodona

fl-project's Issues

Evaluate whether to fine-tune the last layers of DeepLabV3 on IDDA

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

Implement wandb

Starting code already provided. Need to implement it into the most recent version in the best way possible.

Implement the average aggregation of FedAvg

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.

Debug client class

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 function to add different transforms to the client

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.

Assign to each client a random number of samples and analyze the performance

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?

Comunicazione tra trainClient e i due testClient

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:

  • implementare train in server.py
  • modificare train in client.py (centralized.py)
  • creare/vedere setup function per la creazione dei client

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.