Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docs correction #220

Merged
merged 293 commits into from
Dec 13, 2021
Merged
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
293 commits
Select commit Hold shift + click to select a range
5fe02c7
Review and edit content.
louis-yong Sep 9, 2021
637e74e
Review and edit content.
louis-yong Sep 9, 2021
7ea097d
Review and edit content.
louis-yong Sep 10, 2021
b88e13a
Review and edit content.
louis-yong Sep 10, 2021
28bfb25
Review and edit content.
louis-yong Sep 10, 2021
ae6e3ed
Review and edit content.
louis-yong Sep 10, 2021
8c3c45c
Review and edit content.
louis-yong Sep 10, 2021
a26b5e8
Review and edit content.
louis-yong Sep 10, 2021
1fbb799
Review and edit content.
louis-yong Sep 10, 2021
d935deb
Review and edit content.
louis-yong Sep 10, 2021
37ba33f
Review and edit content.
louis-yong Sep 10, 2021
168511e
Review and edit content.
louis-yong Sep 10, 2021
9eaec4b
Review and edit content.
louis-yong Sep 13, 2021
f52d9c9
Review and edit content.
louis-yong Sep 13, 2021
bf48fde
Review and edit content.
louis-yong Sep 13, 2021
cafbbd8
Review and edit content.
louis-yong Sep 13, 2021
267a5e7
Review and edit content.
louis-yong Sep 13, 2021
1acc9b0
Review and edit content.
louis-yong Sep 13, 2021
c0be68b
Review and edit content.
louis-yong Sep 13, 2021
315bf06
Review and edit content.
louis-yong Sep 13, 2021
243398f
Review and edit content.
louis-yong Sep 13, 2021
cfe4ef1
Review and edit content.
louis-yong Sep 13, 2021
a5dbf88
Review and edit content.
louis-yong Sep 13, 2021
6d216ab
Review and edit content.
louis-yong Sep 13, 2021
7374b6b
Review and edit content.
louis-yong Sep 13, 2021
5ff6580
Review and edit content.
louis-yong Sep 13, 2021
b543b14
Review and edit content.
louis-yong Sep 13, 2021
53a436f
Review and edit content.
louis-yong Sep 13, 2021
6505a6b
Review and edit content.
louis-yong Sep 13, 2021
ce4cf6d
Review and edit content.
louis-yong Sep 13, 2021
09b5b47
Review and edit content.
louis-yong Sep 13, 2021
ef87aa4
Review and edit content.
louis-yong Sep 13, 2021
9e9f3dc
Review and edit content.
louis-yong Sep 13, 2021
3bcb6d1
Review and edit content.
louis-yong Sep 13, 2021
d82e58a
Review and edit content.
louis-yong Sep 13, 2021
b219ad2
Review and edit content.
louis-yong Sep 13, 2021
c2d9131
Review and edit content.
louis-yong Sep 13, 2021
bcf380e
Review and edit content.
louis-yong Sep 13, 2021
08985a0
Review and edit content.
louis-yong Sep 13, 2021
7143ee3
Review and edit content.
louis-yong Sep 13, 2021
19cb45f
Review and edit content.
louis-yong Sep 13, 2021
b03e04f
Review and edit content.
louis-yong Sep 13, 2021
c689942
Review and edit content.
louis-yong Sep 13, 2021
bda4c3d
Review and edit content.
louis-yong Sep 13, 2021
aaa11f1
Review and edit content.
louis-yong Sep 13, 2021
4f234da
Review and edit content.
louis-yong Sep 15, 2021
d8835ab
Review and edit content.
louis-yong Sep 15, 2021
baa3d46
Review and edit content.
louis-yong Sep 15, 2021
c9de9f4
Review and edit content.
louis-yong Sep 15, 2021
baea15a
Review and edit content.
louis-yong Sep 15, 2021
14766c6
Review and edit content.
louis-yong Sep 15, 2021
78d2166
Review and edit content.
louis-yong Sep 15, 2021
cfc0f39
Review and edit content.
louis-yong Sep 15, 2021
76af5b9
Review and edit content.
louis-yong Sep 15, 2021
5f45cdc
Review and edit content.
louis-yong Sep 15, 2021
87cf6ad
Review and edit content.
louis-yong Sep 15, 2021
63a7801
Review and edit content.
louis-yong Sep 15, 2021
724e60b
Review and edit content.
louis-yong Sep 15, 2021
7a6899d
Review and edit content.
louis-yong Sep 15, 2021
db42ca8
Review and edit content.
louis-yong Sep 15, 2021
df36de1
Review and edit content.
louis-yong Sep 17, 2021
4857deb
Review and edit content.
louis-yong Sep 17, 2021
d838ac7
Review and edit content.
louis-yong Sep 17, 2021
2b805bb
Review and edit content.
louis-yong Sep 17, 2021
613f647
Review and edit content.
louis-yong Sep 17, 2021
04b0535
Review and edit content.
louis-yong Sep 17, 2021
2465f85
Review and edit content.
louis-yong Sep 17, 2021
b34c882
Review and edit content.
louis-yong Sep 17, 2021
b4e5fbd
Review and edit content.
louis-yong Sep 17, 2021
8f25f9b
Review and edit content.
louis-yong Sep 17, 2021
3636646
Review and edit content.
louis-yong Sep 17, 2021
07cffa7
Review and edit content.
louis-yong Sep 17, 2021
218099e
Review and edit content.
louis-yong Sep 17, 2021
134ad00
Review and edit content.
louis-yong Sep 17, 2021
af5ffe2
Review and edit content.
louis-yong Sep 17, 2021
bd40bf9
Review and edit content.
louis-yong Sep 17, 2021
d789d8f
Review and edit content.
louis-yong Sep 17, 2021
7f16eac
Review and edit content.
louis-yong Sep 17, 2021
b1a5dd5
Review and edit content.
louis-yong Sep 17, 2021
3f4ec95
Review and edit content.
louis-yong Sep 17, 2021
d701c93
Review and edit content.
louis-yong Sep 17, 2021
0c7ed21
Review and edit content.
louis-yong Sep 20, 2021
ecffc0f
Review and edit content.
louis-yong Sep 20, 2021
5b633b1
Review and edit content.
louis-yong Sep 20, 2021
82de0a5
Review and edit content.
louis-yong Sep 20, 2021
ba52aa1
Review and edit content.
louis-yong Sep 20, 2021
313ce1b
Review and edit content.
louis-yong Sep 20, 2021
6fdf73f
Review and edit content.
louis-yong Sep 20, 2021
d3912ac
Review and edit content.
louis-yong Sep 20, 2021
9344b6e
Review and edit content.
louis-yong Sep 20, 2021
f027575
Review and edit content.
louis-yong Sep 20, 2021
aa36fe5
Review and edit content.
louis-yong Sep 20, 2021
9864ea9
Review and edit content.
louis-yong Sep 20, 2021
8772080
Review and edit content.
louis-yong Sep 20, 2021
601ae4f
Review and edit content.
louis-yong Sep 21, 2021
9c8416e
Review and edit content.
louis-yong Sep 21, 2021
453bb11
Review and edit content.
louis-yong Sep 21, 2021
5beae01
Review and edit content.
louis-yong Sep 21, 2021
7964624
Review and edit content.
louis-yong Sep 21, 2021
6f3d7a0
Review and edit content.
louis-yong Sep 21, 2021
9fe8533
Review and edit content.
louis-yong Sep 21, 2021
d0a9822
Edit and review content.
louis-yong Sep 24, 2021
4dfa47b
Edit and review content.
louis-yong Sep 24, 2021
0526ec8
Edit and review content.
louis-yong Sep 24, 2021
486dea3
Edit and review content.
louis-yong Sep 24, 2021
83423a6
Edit and review content.
louis-yong Sep 24, 2021
e3b94d2
Edit and review content.
louis-yong Sep 24, 2021
bf03e80
Edit and review content.
louis-yong Sep 24, 2021
782f7e4
Edit and review content.
louis-yong Sep 24, 2021
0a6736f
Edit and review content.
louis-yong Sep 24, 2021
5efe4f0
Edit and review content.
louis-yong Sep 24, 2021
09182cf
Edit and review content.
louis-yong Sep 24, 2021
c7ec716
Edit and review content.
louis-yong Sep 24, 2021
9558fc7
Edit and review content.
louis-yong Sep 24, 2021
1c27870
Edit and review content.
louis-yong Sep 27, 2021
32289ea
Edit and review content.
louis-yong Sep 27, 2021
93c3553
Edit and review content.
louis-yong Sep 27, 2021
4086869
Edit and review content.
louis-yong Sep 27, 2021
5313f90
Edit and review content.
louis-yong Sep 28, 2021
9092705
Edit and review content.
louis-yong Sep 28, 2021
0e4dc64
Edit and review content.
louis-yong Sep 28, 2021
aafe7af
Edit and review content.
louis-yong Sep 28, 2021
41cfe14
Edit and review content.
louis-yong Sep 28, 2021
b73e777
Edit and review content.
louis-yong Sep 28, 2021
4f087f0
Edit and review content.
louis-yong Sep 28, 2021
6ecded6
Edit and review content.
louis-yong Sep 29, 2021
452da05
Edit and review content.
louis-yong Sep 29, 2021
095dc58
Edit and review content.
louis-yong Sep 29, 2021
73eae67
Edit and review content.
louis-yong Sep 29, 2021
faba0d4
Edit and review content.
louis-yong Sep 29, 2021
1c682d3
Edit and review content.
louis-yong Sep 30, 2021
abc8cc1
Edit and review content.
louis-yong Oct 1, 2021
84dde9c
Edit and review content.
louis-yong Oct 1, 2021
69959bf
Edit and review content.
louis-yong Oct 1, 2021
b6f437b
Edit and review content.
louis-yong Oct 1, 2021
375bc36
Edit and review content.
louis-yong Oct 4, 2021
e23f679
Edit and review content.
louis-yong Oct 4, 2021
b93c625
Edit and review content.
louis-yong Oct 4, 2021
8a38469
Edit and review content.
louis-yong Oct 4, 2021
b1aca65
Edit and review content.
louis-yong Oct 4, 2021
6ce9128
Edit and review content.
louis-yong Oct 4, 2021
0697ca5
Edit and review content.
louis-yong Oct 4, 2021
c23ca5b
Edit and review content.
louis-yong Oct 4, 2021
0af695a
Edit and review content.
louis-yong Oct 4, 2021
768dca5
Edit and review content.
louis-yong Oct 4, 2021
df9973b
Edit and review content.
louis-yong Oct 4, 2021
026cffe
Edit and review content.
louis-yong Oct 5, 2021
a93c460
Edit and review content.
louis-yong Oct 5, 2021
bd9ce9d
Edit and review content.
louis-yong Oct 5, 2021
759e551
Edit and review content.
louis-yong Oct 5, 2021
8dfc622
Edit and review content.
louis-yong Oct 5, 2021
8323051
Edit and review content.
louis-yong Oct 5, 2021
9cf679a
Edit and review content.
louis-yong Oct 5, 2021
4557b2d
Edit and review content.
louis-yong Oct 5, 2021
acc23aa
Edit and review content.
louis-yong Oct 5, 2021
26c618a
Edit and review content.
louis-yong Oct 5, 2021
2e140a9
Edit and review content.
louis-yong Oct 5, 2021
c947927
Edit and review content.
louis-yong Oct 5, 2021
04e1b69
Edit and review.
louis-yong Oct 6, 2021
5b7705c
Edit and review.
louis-yong Oct 7, 2021
9b96ca8
Edit and review.
louis-yong Oct 7, 2021
5e4ab84
Edit and review.
louis-yong Oct 12, 2021
1086102
Edit and review.
louis-yong Oct 12, 2021
dcf925a
Edit and review.
louis-yong Oct 12, 2021
8567c68
Edit and review.
louis-yong Oct 12, 2021
9e975f2
Edit and review.
louis-yong Oct 12, 2021
977fedd
Edit and review content.
louis-yong Oct 14, 2021
ad7057a
Edit and review content.
louis-yong Oct 14, 2021
2fd60f8
Edit and review content.
louis-yong Oct 14, 2021
e0b4ee1
Edit and review content.
louis-yong Oct 14, 2021
d6866de
Edit and review content.
louis-yong Oct 14, 2021
3117149
Edit and review content.
louis-yong Oct 14, 2021
31179eb
Edit and review content.
louis-yong Oct 14, 2021
a48a590
Edit and review content.
louis-yong Oct 14, 2021
fbac45f
Edit and review content.
louis-yong Oct 14, 2021
0109d31
Edit and review content.
louis-yong Oct 14, 2021
ffcfb27
Edit and review content.
louis-yong Oct 14, 2021
174d750
Edit and review content.
louis-yong Oct 14, 2021
37b9cd9
Edit and review content.
louis-yong Oct 14, 2021
c4ca65a
Edit and review content.
louis-yong Oct 14, 2021
a92ebb0
Edit and review content.
louis-yong Oct 14, 2021
2f2a195
Edit and review content.
louis-yong Oct 14, 2021
345b000
Edit and review content.
louis-yong Oct 14, 2021
9394e21
Edit and review content.
louis-yong Oct 14, 2021
85de70e
Edit and review.
louis-yong Oct 18, 2021
cd9a949
Edit and review.
louis-yong Oct 18, 2021
7882296
Edit and review.
louis-yong Oct 18, 2021
ebb87a6
Edit and review.
louis-yong Oct 18, 2021
89549fc
Edit and review.
louis-yong Oct 20, 2021
3b6b741
Edit and review.
louis-yong Oct 20, 2021
77b31e9
Edit and review.
louis-yong Oct 20, 2021
a7909b0
Edit and review.
louis-yong Oct 20, 2021
3e6bb03
Edit and review.
louis-yong Oct 20, 2021
40ea0da
Edit and review.
louis-yong Oct 25, 2021
00270ae
Edit and review.
louis-yong Oct 25, 2021
ed9ce92
Edit and review.
louis-yong Oct 25, 2021
a1efd01
Edit and review.
louis-yong Oct 26, 2021
e22dc9f
removed unused files, corrected double spacing in notices, improved p…
louis-yong Nov 11, 2021
116deb9
Merge branch 'develop' into docs_correction
igor-davidyuk Nov 30, 2021
42b80ce
merging develop
igor-davidyuk Nov 30, 2021
0ce45d9
Merge branch 'docs_correction' of https://github.com/intel/openfl int…
igor-davidyuk Nov 30, 2021
e3b06e6
corrections to director workflow
igor-davidyuk Nov 30, 2021
9d30d43
fix spacing after asterisk.
louis-yong Dec 6, 2021
ecd0528
fix spacing after asterisk.
louis-yong Dec 6, 2021
c4d6b33
edited flexperiment start method parameters.
louis-yong Dec 6, 2021
af5a444
edited flexperiment start method parameters.
louis-yong Dec 6, 2021
43cf73d
fixed odd phrasing and added definition for FL plan.
louis-yong Dec 6, 2021
7329a88
fix spacing after asterisk.
louis-yong Dec 6, 2021
00e208b
improved phrasing.
louis-yong Dec 6, 2021
ce22c4e
fixed missing articles.
louis-yong Dec 6, 2021
f553d7a
fixed capitalization.
louis-yong Dec 6, 2021
2a6dac9
fixed missing articles.
louis-yong Dec 6, 2021
c2d59bb
defined mtls.
louis-yong Dec 6, 2021
5680444
minor formatting.
louis-yong Dec 6, 2021
57f1db5
improved title for option 1.
louis-yong Dec 6, 2021
74a8fdd
mention that this is for aggregator-based workflow.
louis-yong Dec 6, 2021
ac0290f
mention that this is for aggregator-based workflow.
louis-yong Dec 6, 2021
e265bcd
mention that this is for director-based workflow.
louis-yong Dec 6, 2021
c8a850c
added link to director service communication diagrams.
louis-yong Dec 6, 2021
0778f56
review and edit.
louis-yong Dec 6, 2021
4e057af
improved title.
louis-yong Dec 6, 2021
d1855d9
review and edit.
louis-yong Dec 6, 2021
1c08135
review and edit.
louis-yong Dec 6, 2021
678b01e
review and edit.
louis-yong Dec 6, 2021
b0920e4
added link for openfl-tutorials.
louis-yong Dec 6, 2021
4197c1e
removed conda fixed branding
igor-davidyuk Dec 6, 2021
ec6dec9
shorten names in content
igor-davidyuk Dec 6, 2021
b1b4499
shorten names in content 2
igor-davidyuk Dec 6, 2021
252247e
reverting changes
igor-davidyuk Dec 6, 2021
9532c27
install page corrections
igor-davidyuk Dec 6, 2021
7ea960b
correct install guide 2
igor-davidyuk Dec 6, 2021
0eddd06
Install rst + index corrections
igor-davidyuk Dec 6, 2021
60801bb
readme corrections
igor-davidyuk Dec 7, 2021
5cbc31e
plugin dadpter correction
igor-davidyuk Dec 7, 2021
44a9286
alexandrs corrections
igor-davidyuk Dec 7, 2021
bf31d9a
removed long naming and fixed code blocks
igor-davidyuk Dec 7, 2021
27fb53a
overview remove nested doc
igor-davidyuk Dec 7, 2021
ac25f6a
overview and install correction
igor-davidyuk Dec 7, 2021
fbc60e0
overview toctree
igor-davidyuk Dec 7, 2021
3003d25
changes to director based workflow
igor-davidyuk Dec 7, 2021
37d3f14
States correction and alignment (#257)
aleksandr-mokrov Dec 9, 2021
a214db8
Components fixes (#255)
igor-davidyuk Dec 9, 2021
1649b34
Docs correction Manual (last topics) (#258)
alexey-khorkin Dec 10, 2021
919c344
fix README and Makefile (#261)
alexey-khorkin Dec 10, 2021
c69437b
Docs correction olga (#259)
operepel Dec 10, 2021
76291e3
Update README.md
operepel Dec 10, 2021
022f620
Docs correction. Installation and Run Federation sections (#256)
dmitryagapov Dec 10, 2021
10534c4
Merge branch 'develop' into docs_correction
alexey-gruzdev Dec 10, 2021
4bc6a42
next/prev page fix (#262)
dmitryagapov Dec 10, 2021
b49b84e
Dagapov/docs fix (#263)
dmitryagapov Dec 11, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
117 changes: 54 additions & 63 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@

# Welcome to Intel® Open Federated Learning
# OpenFL - An Open-Source Framework For Federated Learning

[![PyPI - Python Version](https://img.shields.io/badge/python-3.6%20%7C%203.7%20%7C%203.8-blue)](https://pypi.org/project/openfl/)
[![Jenkins](https://img.shields.io/jenkins/build?jobUrl=http%3A%2F%2F213.221.44.203%2Fjob%2FFederated-Learning%2Fjob%2Fnightly%2F)](http://213.221.44.203/job/Federated-Learning/job/nightly/)
Expand All @@ -10,51 +9,75 @@
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Citation](https://img.shields.io/badge/cite-citation-blue)](https://arxiv.org/abs/2105.06413)

OpenFL is a Python 3 framework for Federated Learning. OpenFL is designed to be a _flexible_, _extensible_ and _easily learnable_ tool for data scientists. OpenFL is developed by Intel Internet of Things Group (IOTG) and Intel Labs.

[Federated learning](https://en.wikipedia.org/wiki/Federated_learning) is a distributed machine learning approach that
enables organizations to collaborate on machine learning projects
without sharing sensitive data, such as, patient records, financial data,
or classified secrets
([Sheller MJ, et al., 2020](https://www.nature.com/articles/s41598-020-69250-1);
[Sheller MJ, et al., 2019](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6589345);
[Yang Y, et al., 2019](https://arxiv.org/abs/1902.04885);
[McMahan HB, et al., 2016](https://arxiv.org/abs/1602.05629)).

## Installation

The basic premise behind federated learning
is that the model moves to meet the data rather than the data moving
to meet the model. Therefore, the minimum data movement needed
across the federation is solely the model parameters and their updates.
You can simply install OpenFL from PyPI:

```
$ pip install openfl
```
For more installation options check out the [online documentation](https://openfl.readthedocs.io/en/latest/install.html).

Open Federated Learning (OpenFL) is a Python 3 project developed by Intel Internet of Things Group (IOTG) and Intel Labs.
## Getting Started

![Federated Learning](https://raw.githubusercontent.com/intel/openfl/master/docs/images/diagram_fl.png)

## Getting started
OpenFL enables data scientists to set up a federated learning experiment following one of the workflows:

Check out our [online documentation](https://openfl.readthedocs.io/en/latest/index.html) to launch your first federation. The quickest way to test OpenFL is through our [Jupyter Notebook tutorials](https://github.com/intel/openfl/tree/develop/openfl-tutorials).
- [Director-based Workflow](https://openfl.readthedocs.io/en/latest/source/workflow/director_based_workflow.html) [preferred]:
a federation created with this workflow continues to be available to distribute more experiments in series.

For more questions, please consider joining our [Slack channel](https://join.slack.com/t/openfl/shared_invite/zt-ovzbohvn-T5fApk05~YS_iZhjJ5yaTw).
- [Aggregator-based Workflow](https://openfl.readthedocs.io/en/latest/source/workflow/running_the_federation.agg_based.html):
with this workflow, the federation is terminated when the experiment is finished.

The quickest way to test OpenFL is to follow our [tutorials](https://github.com/intel/openfl/tree/docs_correction/openfl-tutorials). </br>
Read the [blog post](https://towardsdatascience.com/go-federated-with-openfl-8bc145a5ead1) explaining steps to train a model with OpenFL. </br>
Check out the [online documentation](https://openfl.readthedocs.io/en/latest/index.html) to launch your first federation.

## Requirements

- OS: Tested on Ubuntu Linux 16.04 and 18.04.
- Python 3.6+ with a Python virtual environment (e.g. [conda](https://docs.conda.io/en/latest/), recommended version: 4.9 and above)
- TensorFlow 2+ or PyTorch 1.6+ (depending on your training requirements). OpenFL is designed to easily support other frameworks as well.
- Ubuntu Linux 16.04 or 18.04.
- Python 3.6+ (recommended to use with [Virtualenv](https://virtualenv.pypa.io/en/latest/)).

OpenFL supports training with TensorFlow 2+ or PyTorch 1.3+ which should be installed separately. User can extend the list of supported Deep Learning frameworks if needed.

## Project Overview
### What is Federated Learning

[Federated learning](https://en.wikipedia.org/wiki/Federated_learning) is a distributed machine learning approach that enables collaboration on machine learning projects without having to share sensitive data, such as, patient records, financial data, or classified information. The minimum data movement needed across the federation is solely the model parameters and their updates.

![Federated Learning](https://github.com/intel/openfl/blob/docs_correction/docs/images/diagram_fl_new.png?raw=true)


### Background
OpenFL builds on the [OpenFederatedLearning](https://github.com/IntelLabs/OpenFederatedLearning) framework, which was a collaboration between Intel and the University of Pennsylvania (UPenn) to develop the [Federated Tumor Segmentation (FeTS, www.fets.ai)](https://www.fets.ai/) platform (grant award number: U01-CA242871).

The grant for FeTS was awarded to the [Center for Biomedical Image Computing and Analytics (CBICA)](https://www.cbica.upenn.edu/) at UPenn (PI: S. Bakas) from the [Informatics Technology for Cancer Research (ITCR)](https://itcr.cancer.gov/) program of the National Cancer Institute (NCI) of the National Institutes of Health (NIH).

FeTS is a real-world medical federated learning platform with international collaborators. The original OpenFederatedLearning project and OpenFL are designed to serve as the backend for the FeTS platform,
and OpenFL developers and researchers continue to work very closely with UPenn on the FeTS project. An example is the [FeTS-AI/Front-End](https://github.com/FETS-AI/Front-End), which integrates UPenn’s medical AI expertise with Intel’s framework to create a federated learning solution for medical imaging.

Although initially developed for use in medical imaging, OpenFL designed to be agnostic to the use-case, the industry, and the machine learning framework.

You can find more details in the following articles:
- [Sheller MJ, et al., 2020](https://www.nature.com/articles/s41598-020-69250-1)
- [Sheller MJ, et al., 2019](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6589345)
- [Yang Y, et al., 2019](https://arxiv.org/abs/1902.04885)
- [McMahan HB, et al., 2016](https://arxiv.org/abs/1602.05629)



## Support
We welcome questions, issue reports, and suggestions:

* [GitHub Issues](https://github.com/intel/openfl/issues)
* [Slack workspace](https://join.slack.com/t/openfl/shared_invite/zt-ovzbohvn-T5fApk05~YS_iZhjJ5yaTw)

![fx commandline interface](https://raw.githubusercontent.com/intel/openfl/master/docs/images/fx_help.png)

## License
This project is licensed under [Apache License Version 2.0](LICENSE).
By contributing to the project, you agree to the license and copyright terms therein
and release your contribution under these terms.
This project is licensed under [Apache License Version 2.0](LICENSE). By contributing to the project, you agree to the license and copyright terms therein and release your contribution under these terms.

## Resources:
* Docs and Tutorials: https://openfl.readthedocs.io/en/latest/index.html
* Issue tracking: https://github.com/intel/openfl/issues
* [Slack channel](https://join.slack.com/t/openfl/shared_invite/zt-ovzbohvn-T5fApk05~YS_iZhjJ5yaTw)

## Citation

Expand All @@ -69,35 +92,3 @@ and release your contribution under these terms.
}
```

## Support
Please report questions, issues and suggestions using:

* [GitHub* Issues](https://github.com/intel/openfl/issues)
* [Slack channel](https://join.slack.com/t/openfl/shared_invite/zt-ovzbohvn-T5fApk05~YS_iZhjJ5yaTw)

### Relation to OpenFederatedLearning and the Federated Tumor Segmentation (FeTS) Initiative

This project builds on the [Open Federated Learning](https://github.com/IntelLabs/OpenFederatedLearning) framework that was
developed as part of a collaboration between Intel
and the University of Pennsylvania (UPenn) for federated learning.
It describes Intel’s commitment in
supporting the grant awarded to the [Center for Biomedical Image Computing and Analytics (CBICA)](https://www.cbica.upenn.edu/)
at UPenn (PI: S. Bakas) from the [Informatics Technology for Cancer Research (ITCR)](https://itcr.cancer.gov/) program of
the National Cancer Institute (NCI) of the National Institutes of Health (NIH),
for the development of the [Federated Tumor Segmentation (FeTS, www.fets.ai)](https://www.fets.ai/)
platform (grant award number: U01-CA242871).

FeTS is an exciting, real-world
medical FL platform, and we are honored to be collaborating with UPenn in
leading a federation of international collaborators. The original OpenFederatedLearning
project and OpenFL are designed to serve as the backend for the FeTS platform,
and OpenFL developers and researchers continue to work very closely with UPenn on
the FeTS project. The
[FeTS-AI/Front-End](https://github.com/FETS-AI/Front-End) shows how UPenn
and Intel have integrated UPenn’s medical AI expertise with Intel’s framework
to create a federated learning solution for medical imaging.

Although initially developed for use in medical imaging, this project is
designed to be agnostic to the use-case, the industry, and the
machine learning framework.

3 changes: 0 additions & 3 deletions docs/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,4 @@ help:
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile

sphinx-apidoc -f -o . ../openfl

@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
22 changes: 8 additions & 14 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,21 @@
We use sphinx to generate the documentation for this project.
The documentation project has been initialized properly and we basically just need to update the actual content.

If we ever change the code structure since last compilation, we may need to regenerate the docstring index:
```shell
sphinx-apidoc -f -o . ../openfl
sphinx-apidoc -f -o . ../models
```

The command detects the code structure under `../openfl` and generates a series of `*.rst` files, such as `openfl.aggregator.rst`.
However, the docstring would not be compiled until we execute `make html` later.
Install requirements for building documentation:

We can also update the hand-crafted documents, including `intro.rst` and `tutorial.rst`. The `index.rst` is the entry file. We don't need to modify it unless we want to add more hand-crafted pages or adjust the order in the Contents page.
```sh
pip install -r requirements-docs.txt
```


After completing revision on the .rst files, we would compile the documentation source code:
```
The Makefile supports many targets. We choose html because we can easily host the documentation on a remote server. Compile the documentation source code:
```sh
make clean
make html
```

The Makefile supports many targets. We choose html because we can easily host the documentation on a remote server:

```shell
Open documentation locally:
```sh
cd _build/html
python -m http.server
```
38 changes: 35 additions & 3 deletions docs/advanced_topics.rst
Original file line number Diff line number Diff line change
@@ -1,17 +1,49 @@
.. # Copyright (C) 2020 Intel Corporation
.. # Licensed subject to the terms of the separately executed evaluation license agreement between Intel Corporation and you.
.. # Copyright (C) 2020-2021 Intel Corporation
.. # SPDX-License-Identifier: Apache-2.0

.. _advanced_topics:

***************
Advanced Topics
***************
**General**

Speed up activating Open Federated Learning (|productName|) commands:

- :doc:`bash_autocomplete_activation`

**Aggregator-Based Workflow**

Learn to manage multiple Federation Learning plans (FL plan) in the same workspace:

- :doc:`multiple_plans`

Reduce the amount of data transferred in a federation through compression pipelines available in |productName|:

- :doc:`compression_settings`

Customize the aggregation function for each task:

- :doc:`overriding_agg_fn`

**Director-Based Workflow**

Customize the logging function for each task:

- :doc:`log_metric_callback`





.. toctree::
:maxdepth: 4
:hidden:

bash_autocomplete_activation
multiple_plans
compression_settings
overriding_agg_fn
bash_autocomplete_activation
log_metric_callback


68 changes: 42 additions & 26 deletions docs/bash_autocomplete_activation.rst
Original file line number Diff line number Diff line change
@@ -1,33 +1,39 @@
.. # Copyright (C) 2021 Intel Corporation
.. # Licensed subject to the terms of the separately executed evaluation license agreement between Intel Corporation and you.
.. # Copyright (C) 2020-2021 Intel Corporation
.. # SPDX-License-Identifier: Apache-2.0

Bash Autocomplete Activation
############################
**************************
Activate Bash Autocomplete
**************************

|productName| allows to activate bash completion in CLI mode to give faster access to all available commands.
Get faster access to available commands by activating bash completion in CLI mode.

Preparation
~~~~~~~~~~~
STEP 1: Preparation
===================

Make sure that you inside virtual environment with installed |productName|.
If not use the instruction :ref:`install_initial_steps`.
Make sure you are inside a virtual environment with Open Federated Learning (|productName|) installed. See :ref:`install_package` for details.

Create ~/.fx-autocomplete.sh script
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This step need to be done only one time when you don't have `~/.fx-autocomplete.sh` or `~/.fx-autocomplete.sh` have corrupted content.
STEP 2: Create the fx-autocomplete.sh Script
============================================

.. note::

Perform this procedure if you don't have a **~/.fx-autocomplete.sh** script or if the existing **~/.fx-autocomplete.sh** script is corrupted.

1. Create the script.

.. code-block:: console

$ _FX_COMPLETE=bash_source fx > ~/.fx-autocomplete.sh
_FX_COMPLETE=bash_source fx > ~/.fx-autocomplete.sh

Check that command was executed correctly.

2. Check that the script was created properly.

.. code-block:: console

$ cat ~/.fx-autocomplete.sh
cat ~/.fx-autocomplete.sh

Console output should look like example below (Click==8.0.1), but could be different depend on `Click https://click.palletsprojects.com/en/8.0.x/`_ version:
The output should look like the example below (Click==8.0.1), but could be different depend on `Click <https://click.palletsprojects.com/en/8.0.x/>`_ version:

.. code-block:: console

Expand Down Expand Up @@ -60,22 +66,32 @@ Create ~/.fx-autocomplete.sh script

_fx_completion_setup;

Activate autocomplete feature
~~~~~~~~~~~~~~~~~~~~~

This step should be done every time when you open a new terminal window.
STEP 3: Activate the Autocomplete Feature
=========================================

Perform this command every time you open a new terminal window.

.. code-block:: console

$ source ~/.fx-autocomplete.sh
source ~/.fx-autocomplete.sh

Auto activation autocomplete
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

To save your time you can add autocomplete activation step to `~/.bashrc`.

To save time, add the script into **.bashrc** so the script is activated when you log in.

1. Edit the **.bashrc** file. The **nano** command line editor is used in this example.

.. code-block:: console

nano ~/.bashrc

2. Add the script.

.. code-block:: bash

. ~/.fx-autocomplete.sh

Save `~/.bashrc`.
Open new terminal to use updated `~/.bashrc`.
3. Save your changes.

4. Open a new terminal to use the updated bash shell.