Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, ncbi.nlm.nih.gov, nature.com, iop.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.5%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: zhongzisha
  • License: apache-2.0
  • Language: Jupyter Notebook
  • Default Branch: develop
  • Size: 14.4 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 3
  • Releases: 0
Created over 3 years ago · Last pushed about 1 year ago
Metadata Files
Readme Contributing License Code of conduct Citation Security Governance Roadmap

README.md

PyPI - Python Version Ubuntu CI status Windows CI status Documentation Status Downloads DockerHub PyPI version License Citation CII Best Practices Coverity Scan Build Status Open In Colab

Open Federated Learning (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 hosted by The Linux Foundation, aims to be community-driven, and welcomes contributions back to the project.

Looking for the Open Flash Library project also referred to as OpenFL? Find it here!

Installation

You can simply install OpenFL from PyPI:

$ pip install openfl For more installation options check out the online documentation.

Getting Started

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

The quickest way to test OpenFL is to follow our tutorials.
Read the blog post explaining steps to train a model with OpenFL.
Check out the online documentation to launch your first federation.

Requirements

  • Ubuntu Linux 18.04+
  • Python 3.7+ (recommended to use with Virtualenv).

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 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

Background

OpenFL builds on a collaboration between Intel and the Bakas lab at the University of Pennsylvania (UPenn) to develop the Federated Tumor Segmentation (FeTS, www.fets.ai) platform (grant award number: U01-CA242871).

The grant for FeTS was awarded from the Informatics Technology for Cancer Research (ITCR) program of the National Cancer Institute (NCI) of the National Institutes of Health (NIH), to Dr Spyridon Bakas (Principal Investigator) when he was affiliated with the Center for Biomedical Image Computing and Analytics (CBICA) at UPenn and now heading up the Division of Computational Pathology at Indiana University (IU).

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 IU on the FeTS project. An example is the FeTS-AI/Front-End, which integrates the group’s medical AI expertise with OpenFL 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: - Pati S, et al., 2022 - Reina A, et al., 2021 - Sheller MJ, et al., 2020 - Sheller MJ, et al., 2019 - Yang Y, et al., 2019 - McMahan HB, et al., 2016

Supported Aggregation Algorithms

| Algorithm Name | Paper | PyTorch implementation | TensorFlow implementation | Other frameworks compatibility | How to use | | -------------- | ----- | :--------------------: | :-----------------------: | :----------------------------: | ---------- | | FedAvg | McMahan et al., 2017 | ✅ | ✅ | ✅ | docs | | FedProx | Li et al., 2020 | ✅ | ✅ | ❌ | docs | | FedOpt | Reddi et al., 2020 | ✅ | ✅ | ✅ | docs | | FedCurv | Shoham et al., 2019 | ✅ | ❌ | ❌ | docs |

Support

Please join us for our bi-monthly community meetings starting December 1 & 2, 2022!
Meet with some of the OpenFL team members behind OpenFL.
We will be going over our roadmap, open for Q&A, and welcome idea sharing.

Calendar and links to a Community calls are here

Subscribe to the OpenFL mail list openfl-announce@lists.lfaidata.foundation

See you there!

We also always welcome questions, issue reports, and suggestions via:

License

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

Citation

@article{openfl_citation, author={Foley, Patrick and Sheller, Micah J and Edwards, Brandon and Pati, Sarthak and Riviera, Walter and Sharma, Mansi and Moorthy, Prakash Narayana and Wang, Shi-han and Martin, Jason and Mirhaji, Parsa and Shah, Prashant and Bakas, Spyridon}, title={OpenFL: the open federated learning library}, journal={Physics in Medicine \& Biology}, url={http://iopscience.iop.org/article/10.1088/1361-6560/ac97d9}, year={2022}, doi={10.1088/1361-6560/ac97d9}, publisher={IOP Publishing} }

Owner

  • Name: Zisha Zhong
  • Login: zhongzisha
  • Kind: user

Citation (CITATION)

@article{openfl_citation,
	author={Foley, Patrick and Sheller, Micah J and Edwards, Brandon and Pati, Sarthak and Riviera, Walter and Sharma, Mansi and Moorthy, Prakash Narayana and Wang, Shi-han and Martin, Jason and Mirhaji, Parsa and Shah, Prashant and Bakas, Spyridon},
	title={OpenFL: the open federated learning library},
	journal={Physics in Medicine \& Biology},
	url={http://iopscience.iop.org/article/10.1088/1361-6560/ac97d9},
	year={2022},
	doi={10.1088/1361-6560/ac97d9},
	publisher={IOP Publishing}
}

GitHub Events

Total
  • Public event: 1
Last Year
  • Public event: 1

Dependencies

.github/workflows/docker-bench-security.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • actions/upload-artifact v3 composite
.github/workflows/dockerization.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
.github/workflows/double_ws_export.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
.github/workflows/experimental_workflow_tests.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
.github/workflows/gandlf.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
.github/workflows/hadolint.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • actions/upload-artifact v3 composite
.github/workflows/interactive-kvasir.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
.github/workflows/interactive-tensorflow.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
.github/workflows/lint.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
.github/workflows/pki.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
.github/workflows/pytest_coverage.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
.github/workflows/straggler-handling.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
.github/workflows/taskrunner.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/taskrunner_eden_pipeline.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
.github/workflows/trivy.yml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v3 composite
  • aquasecurity/trivy-action 0.24.0 composite
  • github/codeql-action/upload-sarif v2 composite
.github/workflows/ubuntu.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
.github/workflows/windows.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
.github/workflows/workflow_interface_101_mnist.yml actions
  • actions/checkout v4.1.1 composite
  • actions/setup-python v3 composite
  • actions/upload-artifact v4 composite
docs/docs-requirements.txt pypi
  • pygments >=2.7.4
  • recommonmark *
  • sphinx >=3.0.4
  • sphinx-copybutton *
  • sphinx-prompt *
  • sphinx-rtd-theme *
  • sphinx_substitution_extensions *
  • sphinxcontrib-mermaid *
linters-requirements.txt pypi
  • black *
  • flake8 *
  • isort *
  • pre-commit *
openfl-tutorials/experimental/Global_DP/requirements_global_dp.txt pypi
  • cloudpickle *
  • matplotlib ==3.6.0
  • numpy ==1.23.3
  • opacus ==1.5.1
  • pillow ==10.3.0
  • pyyaml ==6.0
  • torch ==2.2.0
  • torchaudio ==2.2.0
  • torchvision ==0.17.0
openfl-tutorials/experimental/Privacy_Meter/requirements_privacy_meter.txt pypi
  • cloudpickle *
  • matplotlib *
  • opacus ==1.5.2
  • pillow *
  • scikit-learn *
  • torch ==2.3.1
  • torchvision ==0.18.1
openfl-tutorials/experimental/Vision_Transformer/requirements_vision_transformer.txt pypi
  • medmnist ==3.0.1
  • torch ==2.3.1
  • torchvision ==0.18.1
  • transformers ==4.38.0
openfl-tutorials/experimental/workflow_interface_requirements.txt pypi
  • astor ==0.8.1
  • chardet *
  • charset-normalizer *
  • dill ==0.3.6
  • metaflow ==2.7.15
  • nbdev ==2.3.12
  • ray ==2.9.2
  • torch *
  • torchvision *
openfl-tutorials/interactive_api/Flax_CNN_CIFAR/requirements.txt pypi
  • jax *
  • jaxlib *
  • tensorflow ==2.13
  • tensorflow-datasets ==4.6.0
openfl-tutorials/interactive_api/HPU/PyTorch_Kvasir_UNet/envoy/sd_requirements.txt pypi
  • numpy *
  • pillow *
openfl-tutorials/interactive_api/HPU/PyTorch_MedMNIST_2D/envoy/requirements.txt pypi
  • medmnist *
  • setuptools >=65.5.1
  • wheel >=0.38.0
openfl-tutorials/interactive_api/HPU/PyTorch_TinyImageNet/envoy/requirements.txt pypi
  • Pillow ==10.3.0
openfl-tutorials/interactive_api/MXNet_landmarks/envoy/sd_requirements.txt pypi
  • kaggle *
  • pynvml *
openfl-tutorials/interactive_api/MXNet_landmarks/workspace/requirements.txt pypi
  • kaggle *
  • matplotlib *
  • numpy >=1.22.2
  • setuptools >=65.5.1
openfl-tutorials/interactive_api/PyTorch_DogsCats_ViT/envoy/sd_requirements.txt pypi
  • kaggle *
  • numpy *
  • pillow *
  • pynvml *
openfl-tutorials/interactive_api/PyTorch_DogsCats_ViT/workspace/requirements.txt pypi
  • linformer ==0.2.1
  • setuptools >=65.5.1
  • torch ==2.3.1
  • torchvision ==0.18.1
  • vit-pytorch ==0.40.2
  • wheel >=0.38.0
openfl-tutorials/interactive_api/PyTorch_FedProx_MNIST/envoy/requirements.txt pypi
  • medmnist *
  • setuptools >=65.5.1
  • wheel >=0.38.0
openfl-tutorials/interactive_api/PyTorch_Histology/envoy/requirements.txt pypi
  • Pillow ==10.3.0
  • numpy ==1.22.2
  • tqdm ==4.66.3
openfl-tutorials/interactive_api/PyTorch_Histology_FedCurv/envoy/requirements.txt pypi
  • Pillow ==10.3.0
  • numpy ==1.22.2
  • tqdm ==4.66.3
openfl-tutorials/interactive_api/PyTorch_Huggingface_transformers_SUPERB/envoy/sd_requirements.txt pypi
  • datasets ==1.14
  • librosa *
  • numpy ==1.22.0
  • pynvml *
openfl-tutorials/interactive_api/PyTorch_Kvasir_UNet/envoy/sd_requirements.txt pypi
  • numpy *
  • pillow *
  • pynvml *
openfl-tutorials/interactive_api/PyTorch_Lightning_MNIST_GAN/envoy/sd_requirements.txt pypi
  • numpy *
  • pillow *
  • pynvml ==11.4.1
  • setuptools >=65.5.1
  • torch ==2.3.1
  • torchvision ==0.18.1
  • wheel >=0.38.0
openfl-tutorials/interactive_api/PyTorch_LinearRegression/envoy/requirements.txt pypi
  • mistune >=2.0.3
  • numpy >=1.13.3
  • openfl >=1.2.1
  • scikit-learn >=0.24.1
  • setuptools >=65.5.1
  • torch >=1.13.1
  • wheel >=0.38.0
openfl-tutorials/interactive_api/PyTorch_LinearRegression/workspace/requirements.txt pypi
  • jupyterlab *
  • numpy >=1.13.3
  • openfl >=1.2.1
  • scikit-learn >=0.24.1
  • setuptools >=65.5.1
  • torch >=1.13.1
  • wheel >=0.38.0
openfl-tutorials/interactive_api/PyTorch_MVTec_PatchSVDD/envoy/sd_requirements.txt pypi
  • imageio *
  • numpy *
  • pillow *
openfl-tutorials/interactive_api/PyTorch_Market_Re-ID/envoy/requirements.txt pypi
  • Pillow ==10.3.0
  • gdown ==3.13.0
openfl-tutorials/interactive_api/PyTorch_Market_Re-ID/workspace/requirements.txt pypi
  • torch ==2.3.1
  • torchvision ==0.18.1
openfl-tutorials/interactive_api/PyTorch_MedMNIST_2D/envoy/requirements.txt pypi
  • medmnist *
  • setuptools >=65.5.1
  • wheel >=0.38.0
openfl-tutorials/interactive_api/PyTorch_MedMNIST_3D/envoy/requirements.txt pypi
  • ACSConv *
  • medmnist *
  • protobuf >=3.20.2
  • setuptools >=65.5.1
  • wheel >=0.38.0
openfl-tutorials/interactive_api/PyTorch_TinyImageNet/envoy/requirements.txt pypi
  • Pillow ==10.3.0
openfl-tutorials/interactive_api/PyTorch_TinyImageNet/workspace/requirements.txt pypi
  • setuptools >=65.5.1
  • torch ==2.3.1
  • torchvision ==0.18.1
  • wheel >=0.38.0
openfl-tutorials/interactive_api/PyTorch_TinyImageNet_XPU/envoy/requirements.txt pypi
  • Pillow ==10.3.0
openfl-tutorials/interactive_api/PyTorch_TinyImageNet_XPU/workspace/requirements.txt pypi
  • setuptools >=65.5.1
  • torch ==2.3.1
  • torchvision ==0.18.1
  • wheel >=0.38.0
openfl-tutorials/interactive_api/Tensorflow_Word_Prediction/envoy/sd_requirements.txt pypi
  • gdown ==3.13.0
  • numpy ==1.22.2
  • pandas ==1.3.3
  • pyarrow ==14.0.1
openfl-tutorials/interactive_api/Tensorflow_Word_Prediction/workspace/requirements.txt pypi
  • numpy ==1.22.2
  • tensorflow ==2.13
openfl-tutorials/interactive_api/jax_linear_regression/envoy/requirements.txt pypi
  • jax ==0.3.13
  • jaxlib ==0.3.10
  • mistune >=2.0.3
  • openfl ==1.3
  • setuptools >=65.5.1
  • wheel >=0.38.0
openfl-tutorials/interactive_api/numpy_linear_regression/envoy/requirements.txt pypi
  • mistune >=2.0.3
  • numpy *
  • openfl ==1.2.1
  • setuptools >=65.5.1
  • wheel >=0.38.0
openfl-tutorials/interactive_api/numpy_linear_regression/workspace/requirements.txt pypi
  • jupyterlab *
  • matplotlib *
  • mistune >=2.0.3
  • numpy *
  • openfl ==1.2.1
  • setuptools >=65.5.1
  • wheel >=0.38.0
openfl-tutorials/interactive_api/scikit_learn_linear_regression/envoy/requirements.txt pypi
  • matplotlib >=2.0.0
  • mistune >=2.0.3
  • numpy >=1.13.3
  • openfl >=1.2.1
  • scikit-learn >=0.24.1
  • setuptools >=65.5.1
  • wheel >=0.38.0
openfl-tutorials/interactive_api/scikit_learn_linear_regression/workspace/requirements.txt pypi
  • matplotlib >=2.0.0
  • mistune >=2.0.3
  • numpy >=1.13.3
  • openfl >=1.2.1
  • scikit-learn >=0.24.1
  • setuptools >=65.5.1
  • wheel >=0.38.0
openfl-workspace/default/requirements.txt pypi
openfl-workspace/experimental/101_torch_cnn_mnist/requirements.txt pypi
  • tensorboard *
  • torch ==2.3.1
  • torchvision ==0.18.1
  • wheel >=0.38.0
openfl-workspace/experimental/102_aggregator_validation/requirements.txt pypi
  • tensorboard *
  • torch ==2.3.1
  • torchvision ==0.18.1
  • wheel >=0.38.0
openfl-workspace/experimental/104_keras_mnist/requirements.txt pypi
  • tensorflow *
openfl-workspace/experimental/301_torch_cnn_mnist_watermarking/requirements.txt pypi
  • matplotlib *
  • param ==1.13.0
  • tensorboard *
  • torch ==2.3.1
  • torchvision ==0.18.1
  • wheel >=0.38.0
openfl-workspace/experimental/501_pytorch_tinyimagenet_transfer_learning/requirements.txt pypi
  • tensorboard *
  • torch ==2.3.1
  • torchvision ==0.18.1
  • wheel >=0.38.0
openfl-workspace/experimental/template_workspace/requirements.txt pypi
  • wheel >=0.38.0
openfl-workspace/experimental/vertical_fl/requirements.txt pypi
  • dill ==0.3.6
  • metaflow ==2.7.15
  • ray ==2.9.2
openfl-workspace/experimental/vertical_fl_two_party/requirements.txt pypi
  • dill ==0.3.6
  • metaflow ==2.7.15
  • ray ==2.9.2
openfl-workspace/gandlf_seg_test/requirements.txt pypi
  • onnx ==1.17.0 test
openfl-workspace/keras_cnn_mnist/requirements.txt pypi
  • tensorflow ==2.13
openfl-workspace/keras_cnn_with_compression/requirements.txt pypi
  • tensorflow ==2.13
openfl-workspace/keras_nlp/requirements.txt pypi
  • tensorflow ==2.13
openfl-workspace/tf_2dunet/requirements.txt pypi
  • nibabel *
  • setuptools >=65.5.1
  • tensorflow ==2.13
openfl-workspace/tf_3dunet_brats/requirements.txt pypi
  • nibabel *
  • numpy *
  • setuptools >=65.5.1
  • tensorflow >=2
openfl-workspace/tf_cnn_histology/requirements.txt pypi
  • pillow *
  • tensorflow ==2.13
  • tensorflow-datasets *
openfl-workspace/torch_cnn_histology/requirements.txt pypi
  • torch ==2.3.1
  • torchvision ==0.18.1
openfl-workspace/torch_cnn_mnist/requirements.txt pypi
  • tensorboard *
  • torch ==2.3.1
  • torchvision ==0.18.1
  • wheel >=0.38.0
openfl-workspace/torch_cnn_mnist_eden_compression/requirements.txt pypi
  • tensorboard *
  • torch ==2.3.1
  • torchvision ==0.18.1
  • wheel >=0.38.0
openfl-workspace/torch_cnn_mnist_fed_eval/requirements.txt pypi
  • tensorboard *
  • torch ==2.3.1
  • torchvision ==0.18.1
  • wheel >=0.38.0
openfl-workspace/torch_cnn_mnist_straggler_check/requirements.txt pypi
  • numpy >=1.22.2
  • rsa >=4.7
  • setuptools >=65.5.1
  • tensorboard *
  • torch ==2.3.1
  • torchvision ==0.18.1
  • wheel >=0.38.0
openfl-workspace/torch_histo/requirements.txt pypi
  • scikit-image *
  • torch *
  • torchvision *
openfl-workspace/torch_histo_mtl/requirements.txt pypi
  • scikit-image *
  • torch *
  • torchvision *
openfl-workspace/torch_histo_mtl_v2/requirements.txt pypi
  • scikit-image *
  • torch *
  • torchvision *
openfl-workspace/torch_llm_horovod/requirements.txt pypi
  • accelerate *
  • datasets *
  • evaluate *
  • horovod *
  • huggingface_hub *
  • jupyter *
  • peft *
  • sentencepiece *
  • seqeval *
  • tensorboard *
  • torch *
  • torchvision *
  • transformers *
  • wheel >=0.38.0
openfl-workspace/torch_template/requirements.txt pypi
  • torch *
  • torchvision *
openfl-workspace/torch_unet_kvasir/requirements.txt pypi
  • scikit-image ==0.24.0
  • torch ==2.3.1
  • torchvision ==0.18.1
pyproject.toml pypi
setup.py pypi
  • Click ==8.1.7
  • PyYAML >=5.4.1
  • cloudpickle *
  • cryptography >=3.4.6
  • docker *
  • dynaconf ==3.2.6
  • flatten_json *
  • grpcio >=1.56.2
  • ipykernel *
  • jupyterlab *
  • numpy *
  • pandas *
  • protobuf >=4.22,<6.0.0
  • pyzmq <=26.2.0
  • requests >=2.32.0
  • rich *
  • scikit-learn *
  • tensorboard *
  • tensorboardX >=2.6
  • tqdm *
test-requirements.txt pypi
  • pytest ==8.3.3 test
  • pytest-asyncio ==0.24.0 test
  • pytest-mock ==3.14.0 test
tests/github/experimental/requirements_experimental_localruntime_tests.txt pypi
  • dill ==0.3.6 test
  • metaflow ==2.7.15 test
  • ray ==2.9.2 test
  • torch * test
  • torchvision * test
tests/github/experimental/workspace/testcase_datastore_cli/requirements.txt pypi
  • torchvision * test
  • wheel >=0.38.0 test
tests/github/experimental/workspace/testcase_include_exclude/requirements.txt pypi
  • wheel >=0.38.0 test
tests/github/experimental/workspace/testcase_internalloop/requirements.txt pypi
  • tensorboard * test
  • torch ==2.3.1 test
  • torchvision ==0.18.1 test
  • wheel >=0.38.0 test
tests/github/experimental/workspace/testcase_private_attributes/requirements.txt pypi
  • tensorboard * test
  • torch ==2.3.1 test
  • torchvision ==0.18.1 test
  • wheel >=0.38.0 test
tests/github/experimental/workspace/testcase_private_attributes_initialization_with_both_options/requirements.txt pypi
  • tensorboard * test
  • torch ==2.3.1 test
  • torchvision ==0.18.1 test
  • wheel >=0.38.0 test
tests/github/experimental/workspace/testcase_private_attributes_initialization_without_callable/requirements.txt pypi
  • tensorboard * test
  • torch ==2.3.1 test
  • torchvision ==0.18.1 test
  • wheel >=0.38.0 test
tests/github/experimental/workspace/testcase_reference/requirements.txt pypi
  • tensorboard * test
  • torch ==2.3.1 test
  • torchvision ==0.18.1 test
  • wheel >=0.38.0 test
tests/github/experimental/workspace/testcase_reference_with_include_exclude/requirements.txt pypi
  • tensorboard * test
  • torch ==2.3.1 test
  • torchvision ==0.18.1 test
  • wheel >=0.38.0 test
tests/github/experimental/workspace/testcase_subset_of_collaborators/requirements.txt pypi
  • wheel >=0.38.0 test
tests/github/experimental/workspace/testcase_validate_particpant_names/requirements.txt pypi
  • tensorboard * test
  • torch ==2.3.1 test
  • torchvision ==0.18.1 test
  • wheel >=0.38.0 test
tests/github/interactive_api_director/experiments/pytorch_kvasir_unet/envoy/sd_requirements.txt pypi
  • numpy * test
  • pillow * test
  • scikit-image * test
tests/github/interactive_api_director/experiments/tensorflow_mnist/envoy/sd_requirements.txt pypi
  • tensorflow ==2.13 test