summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-17 04:35:11 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-17 04:35:11 +0000
commit7391fc6589a716bfdf193d0f43cf9788c22ba069 (patch)
tree994a42a6e7e5243b1ffeef31f2303d5fa1e44c3e
parentcbd80d4db4d8086d24bad747b93479057599963c (diff)
automatic import of python-flsim
-rw-r--r--.gitignore1
-rw-r--r--python-flsim.spec301
-rw-r--r--sources1
3 files changed, 303 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..a2ef797 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/flsim-0.1.0.tar.gz
diff --git a/python-flsim.spec b/python-flsim.spec
new file mode 100644
index 0000000..957b5c4
--- /dev/null
+++ b/python-flsim.spec
@@ -0,0 +1,301 @@
+%global _empty_manifest_terminate_build 0
+Name: python-flsim
+Version: 0.1.0
+Release: 1
+Summary: Federated Learning Simulator (FLSim) is a flexible, standalone core library that simulates FL settings with a minimal, easy-to-use API. FLSim is domain-agnostic and accommodates many use cases such as vision and text.
+License: Apache-2.0
+URL: https://flsim.ai
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/2e/33/542eda6534d3e943a8bd62ba7db746a8d6ac55d3cae035d5b6ef9fe85991/flsim-0.1.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-hydra-core
+Requires: python3-matplotlib
+Requires: python3-omegaconf
+Requires: python3-numpy
+Requires: python3-opacus
+Requires: python3-pandas
+Requires: python3-Pillow
+Requires: python3-pytest
+Requires: python3-scikit-learn
+Requires: python3-setuptools
+Requires: python3-tqdm
+Requires: python3-tensorboard
+Requires: python3-torchvision
+
+%description
+# Federated Learning Simulator (FLSim)
+
+<p align="center">
+ <img src="https://github.com/facebookresearch/FLSim/blob/main/assets/logo.png">
+</p>
+
+<!-- [![CircleCI](https://circleci.com/gh/pytorch/flsim.svg?style=svg)](https://circleci.com/gh/pytorch/flsim) -->
+
+Federated Learning Simulator (FLSim) is a flexible, standalone library written in PyTorch that simulates FL settings with a minimal, easy-to-use API. FLSim is domain-agnostic and accommodates many use cases such as computer vision and natural text. Currently FLSim supports cross-device FL, where millions of clients' devices (e.g. phones) train a model collaboratively together.
+
+FLSim is scalable and fast. It supports differential privacy (DP), secure aggregation (secAgg), and a variety of compression techniques.
+
+In FL, a model is trained collaboratively by multiple clients that each have their own local data, and a central server moderates training, e.g. by aggregating model updates from multiple clients.
+
+In FLSim, developers only need to define a dataset, model, and metrics reporter. All other aspects of FL training are handled internally by the FLSim core library.
+
+## FLSim
+### Library Structure
+
+<p align="center">
+ <img src="https://github.com/facebookresearch/FLSim/blob/main/assets/FLSim_Overview.png">
+</p>
+
+FLSim core components follow the same semantic as FedAvg. The server comprises three main features: selector, aggregator, and optimizer at a high level. The selector selects clients for training, and the aggregator aggregates client updates until a round is complete. Then, the optimizer optimizes the server model based on the aggregated gradients. The server communicates with the clients via the channel. The channel then compresses the message between the server and the clients. Locally, the client consists of a dataset and a local optimizer. This local optimizer can be SGD, FedProx, or a custom Pytorch optimizer.
+
+## Installation
+The latest release of FLSim can be installed via `pip`:
+```bash
+pip install flsim
+```
+
+You can also install directly from the source for the latest features (along with its quirks and potentially occasional bugs):
+```bash
+git clone https://github.com/facebookresearch/FLSim.git
+cd FLSim
+pip install -e .
+```
+
+## Getting started
+
+To implement a central training loop in the FL setting using FLSim, a developer simply performs the following steps:
+
+1. Build their own data pipeline to assign individual rows of training data to client devices (to simulate data distributed across client devices)
+2. Create a corresponding `torch.nn.Module` model and wrap it in an FL model.
+3. Define a custom metrics reporter that computes and collects metrics of interest (e.g. accuracy) throughout training.
+4. Set the desired hyperparameters in a config.
+
+
+## Usage Example
+
+### Tutorials
+* [Image classification with CIFAR-10](https://github.com/facebookresearch/FLSim/blob/main/tutorials/cifar10_tutorial.ipynb)
+* [Sentiment classification with LEAF's Sent140](https://github.com/facebookresearch/FLSim/blob/main/tutorials/sent140_tutorial.ipynb)
+* [Compression for communication efficiency](https://github.com/facebookresearch/FLSim/blob/main/tutorials/channel_feature_tutorial.ipynb)
+* [Adding a custom communication channel](https://github.com/facebookresearch/FLSim/blob/main/tutorials/custom_channel_tutorial.ipynb)
+
+To see the details, please refer to the [tutorials](https://github.com/facebookresearch/FLSim/tree/main/tutorials) that we have prepared.
+
+### Examples
+We have prepared the runnable examples for 2 of the tutorials above:
+* [Image classification with CIFAR-10](https://github.com/facebookresearch/FLSim/blob/main/examples/cifar10_example.py)
+* [Sentiment classification with LEAF's Sent140](https://github.com/facebookresearch/FLSim/blob/main/examples/sent140_example.py)
+
+
+## Contributing
+See the [CONTRIBUTING](https://github.com/facebookresearch/FLSim/blob/main/CONTRIBUTING.md) for how to contribute to this library.
+
+
+## License
+This code is released under Apache 2.0, as found in the [LICENSE](https://github.com/facebookresearch/FLSim/blob/main/LICENSE) file.
+
+
+
+
+%package -n python3-flsim
+Summary: Federated Learning Simulator (FLSim) is a flexible, standalone core library that simulates FL settings with a minimal, easy-to-use API. FLSim is domain-agnostic and accommodates many use cases such as vision and text.
+Provides: python-flsim
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-flsim
+# Federated Learning Simulator (FLSim)
+
+<p align="center">
+ <img src="https://github.com/facebookresearch/FLSim/blob/main/assets/logo.png">
+</p>
+
+<!-- [![CircleCI](https://circleci.com/gh/pytorch/flsim.svg?style=svg)](https://circleci.com/gh/pytorch/flsim) -->
+
+Federated Learning Simulator (FLSim) is a flexible, standalone library written in PyTorch that simulates FL settings with a minimal, easy-to-use API. FLSim is domain-agnostic and accommodates many use cases such as computer vision and natural text. Currently FLSim supports cross-device FL, where millions of clients' devices (e.g. phones) train a model collaboratively together.
+
+FLSim is scalable and fast. It supports differential privacy (DP), secure aggregation (secAgg), and a variety of compression techniques.
+
+In FL, a model is trained collaboratively by multiple clients that each have their own local data, and a central server moderates training, e.g. by aggregating model updates from multiple clients.
+
+In FLSim, developers only need to define a dataset, model, and metrics reporter. All other aspects of FL training are handled internally by the FLSim core library.
+
+## FLSim
+### Library Structure
+
+<p align="center">
+ <img src="https://github.com/facebookresearch/FLSim/blob/main/assets/FLSim_Overview.png">
+</p>
+
+FLSim core components follow the same semantic as FedAvg. The server comprises three main features: selector, aggregator, and optimizer at a high level. The selector selects clients for training, and the aggregator aggregates client updates until a round is complete. Then, the optimizer optimizes the server model based on the aggregated gradients. The server communicates with the clients via the channel. The channel then compresses the message between the server and the clients. Locally, the client consists of a dataset and a local optimizer. This local optimizer can be SGD, FedProx, or a custom Pytorch optimizer.
+
+## Installation
+The latest release of FLSim can be installed via `pip`:
+```bash
+pip install flsim
+```
+
+You can also install directly from the source for the latest features (along with its quirks and potentially occasional bugs):
+```bash
+git clone https://github.com/facebookresearch/FLSim.git
+cd FLSim
+pip install -e .
+```
+
+## Getting started
+
+To implement a central training loop in the FL setting using FLSim, a developer simply performs the following steps:
+
+1. Build their own data pipeline to assign individual rows of training data to client devices (to simulate data distributed across client devices)
+2. Create a corresponding `torch.nn.Module` model and wrap it in an FL model.
+3. Define a custom metrics reporter that computes and collects metrics of interest (e.g. accuracy) throughout training.
+4. Set the desired hyperparameters in a config.
+
+
+## Usage Example
+
+### Tutorials
+* [Image classification with CIFAR-10](https://github.com/facebookresearch/FLSim/blob/main/tutorials/cifar10_tutorial.ipynb)
+* [Sentiment classification with LEAF's Sent140](https://github.com/facebookresearch/FLSim/blob/main/tutorials/sent140_tutorial.ipynb)
+* [Compression for communication efficiency](https://github.com/facebookresearch/FLSim/blob/main/tutorials/channel_feature_tutorial.ipynb)
+* [Adding a custom communication channel](https://github.com/facebookresearch/FLSim/blob/main/tutorials/custom_channel_tutorial.ipynb)
+
+To see the details, please refer to the [tutorials](https://github.com/facebookresearch/FLSim/tree/main/tutorials) that we have prepared.
+
+### Examples
+We have prepared the runnable examples for 2 of the tutorials above:
+* [Image classification with CIFAR-10](https://github.com/facebookresearch/FLSim/blob/main/examples/cifar10_example.py)
+* [Sentiment classification with LEAF's Sent140](https://github.com/facebookresearch/FLSim/blob/main/examples/sent140_example.py)
+
+
+## Contributing
+See the [CONTRIBUTING](https://github.com/facebookresearch/FLSim/blob/main/CONTRIBUTING.md) for how to contribute to this library.
+
+
+## License
+This code is released under Apache 2.0, as found in the [LICENSE](https://github.com/facebookresearch/FLSim/blob/main/LICENSE) file.
+
+
+
+
+%package help
+Summary: Development documents and examples for flsim
+Provides: python3-flsim-doc
+%description help
+# Federated Learning Simulator (FLSim)
+
+<p align="center">
+ <img src="https://github.com/facebookresearch/FLSim/blob/main/assets/logo.png">
+</p>
+
+<!-- [![CircleCI](https://circleci.com/gh/pytorch/flsim.svg?style=svg)](https://circleci.com/gh/pytorch/flsim) -->
+
+Federated Learning Simulator (FLSim) is a flexible, standalone library written in PyTorch that simulates FL settings with a minimal, easy-to-use API. FLSim is domain-agnostic and accommodates many use cases such as computer vision and natural text. Currently FLSim supports cross-device FL, where millions of clients' devices (e.g. phones) train a model collaboratively together.
+
+FLSim is scalable and fast. It supports differential privacy (DP), secure aggregation (secAgg), and a variety of compression techniques.
+
+In FL, a model is trained collaboratively by multiple clients that each have their own local data, and a central server moderates training, e.g. by aggregating model updates from multiple clients.
+
+In FLSim, developers only need to define a dataset, model, and metrics reporter. All other aspects of FL training are handled internally by the FLSim core library.
+
+## FLSim
+### Library Structure
+
+<p align="center">
+ <img src="https://github.com/facebookresearch/FLSim/blob/main/assets/FLSim_Overview.png">
+</p>
+
+FLSim core components follow the same semantic as FedAvg. The server comprises three main features: selector, aggregator, and optimizer at a high level. The selector selects clients for training, and the aggregator aggregates client updates until a round is complete. Then, the optimizer optimizes the server model based on the aggregated gradients. The server communicates with the clients via the channel. The channel then compresses the message between the server and the clients. Locally, the client consists of a dataset and a local optimizer. This local optimizer can be SGD, FedProx, or a custom Pytorch optimizer.
+
+## Installation
+The latest release of FLSim can be installed via `pip`:
+```bash
+pip install flsim
+```
+
+You can also install directly from the source for the latest features (along with its quirks and potentially occasional bugs):
+```bash
+git clone https://github.com/facebookresearch/FLSim.git
+cd FLSim
+pip install -e .
+```
+
+## Getting started
+
+To implement a central training loop in the FL setting using FLSim, a developer simply performs the following steps:
+
+1. Build their own data pipeline to assign individual rows of training data to client devices (to simulate data distributed across client devices)
+2. Create a corresponding `torch.nn.Module` model and wrap it in an FL model.
+3. Define a custom metrics reporter that computes and collects metrics of interest (e.g. accuracy) throughout training.
+4. Set the desired hyperparameters in a config.
+
+
+## Usage Example
+
+### Tutorials
+* [Image classification with CIFAR-10](https://github.com/facebookresearch/FLSim/blob/main/tutorials/cifar10_tutorial.ipynb)
+* [Sentiment classification with LEAF's Sent140](https://github.com/facebookresearch/FLSim/blob/main/tutorials/sent140_tutorial.ipynb)
+* [Compression for communication efficiency](https://github.com/facebookresearch/FLSim/blob/main/tutorials/channel_feature_tutorial.ipynb)
+* [Adding a custom communication channel](https://github.com/facebookresearch/FLSim/blob/main/tutorials/custom_channel_tutorial.ipynb)
+
+To see the details, please refer to the [tutorials](https://github.com/facebookresearch/FLSim/tree/main/tutorials) that we have prepared.
+
+### Examples
+We have prepared the runnable examples for 2 of the tutorials above:
+* [Image classification with CIFAR-10](https://github.com/facebookresearch/FLSim/blob/main/examples/cifar10_example.py)
+* [Sentiment classification with LEAF's Sent140](https://github.com/facebookresearch/FLSim/blob/main/examples/sent140_example.py)
+
+
+## Contributing
+See the [CONTRIBUTING](https://github.com/facebookresearch/FLSim/blob/main/CONTRIBUTING.md) for how to contribute to this library.
+
+
+## License
+This code is released under Apache 2.0, as found in the [LICENSE](https://github.com/facebookresearch/FLSim/blob/main/LICENSE) file.
+
+
+
+
+%prep
+%autosetup -n flsim-0.1.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-flsim -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 17 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..3e89780
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+ddead4af0f59b6188bd261220ac3bb06 flsim-0.1.0.tar.gz