Metadata-Version: 2.1
Name: fedland
Version: 0.1.0
Summary: Research Libary for Federated Learing Loss Landscapes
License: None
Author: Finn Vaughankraska
Requires-Python: >=3.11,<3.12
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: fedn (>=0.16.1,<0.17.0)
Requires-Dist: numpy (>=2.1.2,<3.0.0)
Requires-Dist: scipy (>=1.14.1,<2.0.0)
Requires-Dist: torch (>=2.4.1,<3.0.0)
Requires-Dist: torchaudio (>=2.4.1,<3.0.0)
Requires-Dist: torchvision (>=0.19.1,<0.20.0)
Description-Content-Type: text/markdown

# Fedland: Loss Landscapes in Federated Learning
## Summary:
Loss landscapes in the federated learning [1] setting are relatively more complex and often fragmented as compared to the centralized setting, owing to variations in local data distributions [2]. The project will study and contrast local and global loss landscapes to derive insights about a local client’s contribution to the overall loss landscape. Understanding these dynamics can potentially enhance our ability to optimize federated learning systems.

## Task:
- Training a neural network model in two settings:
    1. In a centralized environment
    2. In a federated environment

- Conduct experiments with the federated setting focusing on analyzing the loss landscapes of the models trained in these settings, including both the global model and individual client-side local models.

## Project Layout:

Since we are using FEDn, we use their recommended project structure.

I have added pyproject.toml for managing our dependencies. I have written it to use [Poetry](https://python-poetry.org/). You probably want to use an virtual environment or tool to manage your virtualenv. To install the dependencies using poetry, simply run `poetry install`. I set it to use python 3.11

```txt
project
├ client
│ ├ fedn.yaml
│ ├ python_env.yaml
│ ├ model.py
│ ├ data.py
│ ├ train.py
│ └ validate.py
├ data
│ └ mnist.npz
├ fedland
│ └ __init__.py
├ README.md
├ pyproject.toml
├ scripts / notebooks
└ Dockerfile
```

