An open framework for Federated Learning.

Overview

Welcome to Intel® Open Federated Learning

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; Sheller MJ, et al., 2019; Yang Y, et al., 2019; McMahan HB, et al., 2016).

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.

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

Federated Learning

Requirements

  • OS: Tested on Ubuntu Linux 16.04 and 18.04.
  • Python 3.6+ with a Python virtual environment (e.g. conda)
  • TensorFlow 2+ or PyTorch 1.6+ (depending on your training requirements). OpenFL is designed to easily support other frameworks as well.

fx commandline interface

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.

Resources:

Support

Please report questions, issues and suggestions using:

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

This project builds on the Open Federated Learning 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) at UPenn (PI: S. Bakas) from the Informatics Technology for Cancer Research (ITCR) 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) 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 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.

Comments
  • Problem with Openfl Gramine

    Problem with Openfl Gramine "error: PAL failed at ../../Pal/src/db_main.c:pal_main:513 (exitcode = 4, reason=No 'loader.entrypoint' is specified in the manifest)"

    Describe the bug I am attempting to run the example of FL as given in manual and getting this error on the aggregator.

    Gramine is starting. Parsing TOML manifest file, this may take some time...
    Detected a huge manifest, preallocating 64MB of internal memory.
    -----------------------------------------------------------------------------------------------------------------------
    Gramine detected the following insecure configurations:
    
      - loader.insecure__use_cmdline_argv = true   (forwarding command-line args from untrusted host to the app)
      - sgx.allowed_files = [ ... ]                (some files are passed through from untrusted host without verification)
    
    Gramine will continue application execution, but this configuration must not be used in production!
    -----------------------------------------------------------------------------------------------------------------------
    
    error: PAL failed at ../../Pal/src/db_main.c:pal_main:513 (exitcode = 4, reason=No 'loader.entrypoint' is specified in the manifest)
    

    Also, step 7 in the manual is presented in a bit vague manner for a first-time user. I used the setup given here as a workspace and template. But using this gave above error when I am trying to start federation on aggregator machine.

    MediumBug 
    opened by gagandeep987123 20
  • executor failed running [/bin/bash -o pipefail -c fx workspace import --archive /workspace.zip]: exit code: 1

    executor failed running [/bin/bash -o pipefail -c fx workspace import --archive /workspace.zip]: exit code: 1

    Describe the bug Attemptin to run the openfl-gramine example. I am getting a error at point 4 "Build the Experiment Docker image"

    To Reproduce following the steps mentioned in the openfl-gramine/MANUAL. Also attaching the terminal logs for more reference. output.zip

    Can you please help?

    opened by gagandeep987123 11
  • [Tutorials] Anomaly Detection example MVTec PatchSVDD

    [Tutorials] Anomaly Detection example MVTec PatchSVDD

    In this PR, the problem of image anomaly detection and segmentation is addressed. Anomaly detection involves making a binary decision as to whether an input image contains an anomaly, and anomaly segmentation aims to locate the anomaly on the pixel level. The deep learning variant of support vector data description (SVDD) algorithm is extended to the patch-based method using self-supervised learning. This extension enables anomaly segmentation and improves detection performance. Industrial dataset is used for this tutorial - MVTec AD dataset.

    sample 
    opened by mansishr 11
  • Error while running the kvasir interactive API example

    Error while running the kvasir interactive API example

    Describe the bug Error while running the kvasir interactive API example

    To Reproduce Steps to reproduce the behavior:

    1. Use openfl 1.2 and Pytorch_kvasir interactive API tutorial
    2. Start Director
    3. Start Envoy
    4. After dataset is download, there is an error

    Expected behavior Federation should start

    Screenshots image

    Note:

    using Ubuntu 20.04. The ports 50500 are open and the same was verified through netcat command

    opened by shreyasnc1 10
  • Connection issue between collaborator and aggregator

    Connection issue between collaborator and aggregator

    In some machines, when I run a federation (even if it both the collaborators and the aggregator are on the same machine) they fail to establish a connection. I have started facing this problem specifically in the interactive API, I have been unsuccessful in running a federation as collaborator is unable to connect to the port where aggregator has started the gRPC server.

    Reproducing the error: I did not do anything differently than what is already mentioned in the tutorial. I created a fresh conda environment, installed the openfl library and finally tried to replicate the experiment.

    We tried to debug this error and in the process we found out that the gRPC server from the aggregator runs exclusively on IPv6. Whereas, collaborator tries to listen to IPv4. We even tried to hardcode the server and the port numbers but we were unable to make it work. We suspect that the error has something to do with the way the gRPC server are started in https://github.com/intel/openfl/blob/c3c0886aefeb09f426fc3726be0f65de2b344e22/openfl/transport/grpc/server.py and https://github.com/intel/openfl/blob/c3c0886aefeb09f426fc3726be0f65de2b344e22/openfl/transport/grpc/client.py

    I think this error can pose a potentially big problem in the future. Therefore, please look into it.

    Thanks

    opened by saransh09 10
  • Add ISV product ID and ISV SVN fields to manifest

    Add ISV product ID and ISV SVN fields to manifest

    ISV product ID and ISV SVN fields are defined and signed in SIGSTRUCT. In Gramine, they are defined in the manifest and then used on enclave signing in enclave build flow. Add the option to configure them in OpenFL manifest with new flags to the makefile: SGX_ISVPRODID and SGX_ISVSVN. Their default values are 0, to maintain backwards compatibility.

    Currently ISV SVN is configurable in build time, but this is not necessarily the desired behavior. Required behavior is open for discussion and should be updated once a decision is made.

    Related issue: #501

    enhancement 
    opened by DL8 9
  • Aggregator does not have an aggregated tensor for TensorKey(tensor_name='block_1.1.running_mean',                     origin='aggregator_plan.yaml_4ebcd576', round_number=55, report=False, tags=('model',))

    Aggregator does not have an aggregated tensor for TensorKey(tensor_name='block_1.1.running_mean', origin='aggregator_plan.yaml_4ebcd576', round_number=55, report=False, tags=('model',))","grpc_status":2}"

    During training, after several epochs (55 in this example, but this number is random) this errors happens.

    ERROR    Collaborator failed with error: <_InactiveRpcError of RPC that terminated with:                                                  envoy.py:75
                                status = StatusCode.UNKNOWN
                                details = "Exception calling application: Aggregator does not have an aggregated tensor for
                        TensorKey(tensor_name='block_1.1.running_mean', origin='aggregator_plan.yaml_4ebcd576', round_number=55, report=False,
                        tags=('model',))"
                                debug_error_string = "{"created":"@1646124781.553286945","description":"Error received from peer
                        ipv4:172.20.8.151:59526","file":"src/core/lib/surface/call.cc","file_line":1062,"grpc_message":"Exception calling application:
                        Aggregator does not have an aggregated tensor for TensorKey(tensor_name='block_1.1.running_mean',
                        origin='aggregator_plan.yaml_4ebcd576', round_number=55, report=False, tags=('model',))","grpc_status":2}"
                        >:
                        Traceback (most recent call last):
                          File "/home/lmancuso/bruno/lib/python3.7/site-packages/openfl/component/envoy/envoy.py", line 73, in run
                            self._run_collaborator()
                          File "/home/lmancuso/bruno/lib/python3.7/site-packages/openfl/component/envoy/envoy.py", line 141, in _run_collaborator
                            col.run()
                          File "/home/lmancuso/bruno/lib/python3.7/site-packages/openfl/component/collaborator/collaborator.py", line 145, in run
                            self.do_task(task, round_number)
                          File "/home/lmancuso/bruno/lib/python3.7/site-packages/openfl/component/collaborator/collaborator.py", line 215, in do_task
                            required_tensorkeys
                          File "/home/lmancuso/bruno/lib/python3.7/site-packages/openfl/component/collaborator/collaborator.py", line 257, in
                        get_numpy_dict_for_tensorkeys
                            return {k.tensor_name: self.get_data_for_tensorkey(k) for k in tensor_keys}
                          File "/home/lmancuso/bruno/lib/python3.7/site-packages/openfl/component/collaborator/collaborator.py", line 257, in <dictcomp>
                            return {k.tensor_name: self.get_data_for_tensorkey(k) for k in tensor_keys}
                          File "/home/lmancuso/bruno/lib/python3.7/site-packages/openfl/component/collaborator/collaborator.py", line 331, in
                        get_data_for_tensorkey
                            require_lossless=True
                          File "/home/lmancuso/bruno/lib/python3.7/site-packages/openfl/component/collaborator/collaborator.py", line 367, in
                        get_aggregated_tensor_from_aggregator
                            self.collaborator_name, tensor_name, round_number, report, tags, require_lossless)
                          File "/home/lmancuso/bruno/lib/python3.7/site-packages/openfl/transport/grpc/client.py", line 84, in wrapper
                            response = func(self, *args, **kwargs)
                          File "/home/lmancuso/bruno/lib/python3.7/site-packages/openfl/transport/grpc/client.py", line 285, in get_aggregated_tensor
                            response = self.stub.GetAggregatedTensor(request)
                          File "/home/lmancuso/bruno/lib/python3.7/site-packages/grpc/_interceptor.py", line 221, in __call__
                            compression=compression)
                          File "/home/lmancuso/bruno/lib/python3.7/site-packages/grpc/_interceptor.py", line 257, in _with_call
                            return call.result(), call
                          File "/home/lmancuso/bruno/lib/python3.7/site-packages/grpc/_channel.py", line 333, in result
                            raise self
                          File "/home/lmancuso/bruno/lib/python3.7/site-packages/grpc/_interceptor.py", line 247, in continuation
                            compression=new_compression)
                          File "/home/lmancuso/bruno/lib/python3.7/site-packages/grpc/_channel.py", line 934, in with_call
                            return _end_unary_response_blocking(state, call, True, None)
                          File "/home/lmancuso/bruno/lib/python3.7/site-packages/grpc/_channel.py", line 826, in _end_unary_response_blocking
                            raise _InactiveRpcError(state)
                        grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
                                status = StatusCode.UNKNOWN
                                details = "Exception calling application: Aggregator does not have an aggregated tensor for
                        TensorKey(tensor_name='block_1.1.running_mean', origin='aggregator_plan.yaml_4ebcd576', round_number=55, report=False,
                        tags=('model',))"
                                debug_error_string = "{"created":"@1646124781.553286945","description":"Error received from peer
                        ipv4:172.20.8.151:59526","file":"src/core/lib/surface/call.cc","file_line":1062,"grpc_message":"Exception calling application:
                        Aggregator does not have an aggregated tensor for TensorKey(tensor_name='block_1.1.running_mean',
                        origin='aggregator_plan.yaml_4ebcd576', round_number=55, report=False, tags=('model',))","grpc_status":2}"
    

    I was doing image classification on MNIST using 1 director and 10 envoys with a non-iid data distribution.

    bug 
    opened by CasellaJr 9
  • tf.keras Serialization fix

    tf.keras Serialization fix

    This closes #422.

    Serialization of tf.keras models is natively supported as of https://github.com/keras-team/keras/pull/14748. This PR removes hotfix function to allow serialization on TF2.7 and greater.

    opened by MasterSkepticista 8
  • Allow IP-based Communication

    Allow IP-based Communication

    This PR enables IP-based connection in addition to connecting based on registered FQDNs. It also corrects a bug which was leading to the use of incorrect default plan .yaml files.

    opened by TortoiseHam 8
  • 3D U-Net TensorFlow workspace for BraTS 2020

    3D U-Net TensorFlow workspace for BraTS 2020

    This adds a workspace for OpenFL to train a TensorFlow 3D U-Net model on BraTS 2020.

    • I show how to use a TensorFlow dataloader rather than loading everything into memory. It should make for a nice example to showcase how to use custom data loaders

    • I fixed a bug in the KerasRunner on the validation function. It was using x_validate rather than the get_valid_data() function. This change makes it possible to use an arbitrary dataloader.

    • I think there's a bug with db_rounds to keep. When I set it to 1 round to keep, the federation crashes on round 2 because it doesn't have the graph variables. It looks like this should be at least >=2 rounds to keep. I'd suggest doing a max(db_rounds, 2) so that the user doesn't inadvertently put in something like 0 (or -999).

    • The model trains, but no guarantees on a good Dice score. It's just a template.

    Hope you all are well. спасибо друзья!

    sample 
    opened by tonyreina 8
  • [Feature] Timing Fed Components

    [Feature] Timing Fed Components

    Core timeout functionality is in place. To apply timeouts to any function/method in openfl codebase, import and decorate the function with @fedtiming.

    from openfl.utilities.fed_timer import fedtiming
    
    @fedtiming(timeout=10)    #10 seconds
    def some_function(*args, **kwargs):
        pass
    

    Update: 20th Oct

    The @fedtiming can now be decorated on normal python functions or async co-routine likewise. Usage remains the same.

    opened by acharyasunil 7
  • Director Admin Client

    Director Admin Client

    This PR introduces additional Director-Admin service to the Director component. New API allows modifying Director component settings and interacting with Envoy and Experiment registries.

    Signed-off-by: igor-davidyuk [email protected]

    opened by igor-davidyuk 0
  • WIP: CI badges

    WIP: CI badges

    New

    • Ubuntu test sequence
    • Windows test sequence
    • 2 badges in the README.md

    The test sequence for both operating systems is following:

    • Linter
    • PyTest
    • Dockerization
    • Interactive API (UNet Kvasir example)
    • CLI (Keras CNN MNIST template)
    opened by itrushkin 0
  • Installing OpenFL from develop doesn't work

    Installing OpenFL from develop doesn't work

    Describe the bug fx command fails with the following after installing OpenFL from repo:

    $ fx
    Traceback (most recent call last):
      File "/home/vmuser/venv_test/bin/fx", line 6, in <module>
        from pkg_resources import load_entry_point
      File "/home/vmuser/venv_test/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3252, in <module>
        def _initialize_master_working_set():
      File "/home/vmuser/venv_test/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3235, in _call_aside
        f(*args, **kwargs)
      File "/home/vmuser/venv_test/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3264, in _initialize_master_working_set
        working_set = WorkingSet._build_master()
      File "/home/vmuser/venv_test/lib/python3.8/site-packages/pkg_resources/__init__.py", line 583, in _build_master
        ws.require(__requires__)
      File "/home/vmuser/venv_test/lib/python3.8/site-packages/pkg_resources/__init__.py", line 900, in require
        needed = self.resolve(parse_requirements(requirements))
      File "/home/vmuser/venv_test/lib/python3.8/site-packages/pkg_resources/__init__.py", line 786, in resolve
        raise DistributionNotFound(req, requirers)
    pkg_resources.DistributionNotFound: The 'jsonpointer>1.13; extra == "format-nongpl"' distribution was not found and is required by jsonschema
    

    A second installation on the same environment fixes this issue, but it's not very elegant to demand invoking pip install twice

    To Reproduce

    python -m venv venv_test
    . venv_test/bin/activate
    git clone https://github.com/intel/openfl.git
    pip install ./openfl
    fx
    

    Expected behavior fx runs without dependency errors

    documentation 
    opened by DL8 3
  • build(deps): bump tensorflow from 2.8.3 to 2.9.3 in /tests/github/interactive_api_director/experiments/tensorflow_mnist/envoy

    build(deps): bump tensorflow from 2.8.3 to 2.9.3 in /tests/github/interactive_api_director/experiments/tensorflow_mnist/envoy

    Bumps tensorflow from 2.8.3 to 2.9.3.

    Release notes

    Sourced from tensorflow's releases.

    TensorFlow 2.9.3

    Release 2.9.3

    This release introduces several vulnerability fixes:

    TensorFlow 2.9.2

    Release 2.9.2

    This releases introduces several vulnerability fixes:

    ... (truncated)

    Changelog

    Sourced from tensorflow's changelog.

    Release 2.9.3

    This release introduces several vulnerability fixes:

    Release 2.8.4

    This release introduces several vulnerability fixes:

    ... (truncated)

    Commits
    • a5ed5f3 Merge pull request #58584 from tensorflow/vinila21-patch-2
    • 258f9a1 Update py_func.cc
    • cd27cfb Merge pull request #58580 from tensorflow-jenkins/version-numbers-2.9.3-24474
    • 3e75385 Update version numbers to 2.9.3
    • bc72c39 Merge pull request #58482 from tensorflow-jenkins/relnotes-2.9.3-25695
    • 3506c90 Update RELEASE.md
    • 8dcb48e Update RELEASE.md
    • 4f34ec8 Merge pull request #58576 from pak-laura/c2.99f03a9d3bafe902c1e6beb105b2f2417...
    • 6fc67e4 Replace CHECK with returning an InternalError on failing to create python tuple
    • 5dbe90a Merge pull request #58570 from tensorflow/r2.9-7b174a0f2e4
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Parameterize PKI certs location

    Parameterize PKI certs location

    For manual PKI exchange, certificates are stored under 'cert' directory inside workspace by default. This PR decouples the location of certificates from workspace in that the user can now specify certificate path to store certs which can reside outside the workspace.

    opened by mansishr 0
  • [Snyk] Security upgrade wheel from 0.30.0 to 0.38.0

    [Snyk] Security upgrade wheel from 0.30.0 to 0.38.0

    This PR was automatically created by Snyk using the credentials of a real user.


    Snyk has created this PR to fix one or more vulnerable packages in the `pip` dependencies of this project.

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • openfl-workspace/torch_cnn_mnist_straggler_check/requirements.txt
    ⚠️ Warning
    tensorboard 2.1.0 requires numpy, which is not installed.
    tensorboard 2.1.0 requires protobuf, which is not installed.
    google-auth 1.35.0 requires rsa, which is not installed.
    
    

    Vulnerabilities that will be fixed

    By pinning:

    Severity | Priority Score (*) | Issue | Upgrade | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:-------------------------|:------------------------- medium severity | 551/1000
    Why? Recently disclosed, Has a fix available, CVSS 5.3 | Regular Expression Denial of Service (ReDoS)
    SNYK-PYTHON-WHEEL-3180413 | wheel:
    0.30.0 -> 0.38.0
    | No | No Known Exploit

    (*) Note that the real score may have changed since the PR was raised.

    Some vulnerabilities couldn't be fully fixed and so Snyk will still find them when the project is tested again. This may be because the vulnerability existed within more than one direct dependency, but not all of the affected dependencies could be upgraded.

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: 🧐 View latest project report

    🛠 Adjust project settings

    📚 Read more about Snyk's upgrade and patch logic


    Learn how to fix vulnerabilities with free interactive lessons:

    🦉 Regular Expression Denial of Service (ReDoS)

    opened by Einse57 0
Releases(v1.4)
Portfolio analytics for quants, written in Python

QuantStats: Portfolio analytics for quants QuantStats Python library that performs portfolio profiling, allowing quants and portfolio managers to unde

Ran Aroussi 2.7k Jan 08, 2023
Image-Stitching - Panorama composition using SIFT Features and a custom implementaion of RANSAC algorithm

About The Project Panorama composition using SIFT Features and a custom implementaion of RANSAC algorithm (Random Sample Consensus). Author: Andreas P

Andreas Panayiotou 3 Jan 03, 2023
The official implementation of Autoregressive Image Generation using Residual Quantization (CVPR '22)

Autoregressive Image Generation using Residual Quantization (CVPR 2022) The official implementation of "Autoregressive Image Generation using Residual

Kakao Brain 529 Dec 30, 2022
Code for ACL2021 long paper: Knowledgeable or Educated Guess? Revisiting Language Models as Knowledge Bases

LANKA This is the source code for paper: Knowledgeable or Educated Guess? Revisiting Language Models as Knowledge Bases (ACL 2021, long paper) Referen

Boxi Cao 30 Oct 24, 2022
Free-duolingo-plus - Duolingo account creator that uses your invite code to get you free duolingo plus

free-duolingo-plus duolingo account creator that uses your invite code to get yo

1 Jan 06, 2022
System Combination for Grammatical Error Correction Based on Integer Programming

System Combination for Grammatical Error Correction Based on Integer Programming This repository contains the code and scripts that implement the syst

NUS NLP Group 0 Mar 29, 2022
A machine learning benchmark of in-the-wild distribution shifts, with data loaders, evaluators, and default models.

WILDS is a benchmark of in-the-wild distribution shifts spanning diverse data modalities and applications, from tumor identification to wildlife monitoring to poverty mapping.

P-Lambda 437 Dec 30, 2022
Modified prey-predator system - Modified prey–predator model describes the rate of change for each species by adding coupling terms.

Modified prey-predator system We aim to study the behaviors of the modified prey–predator model and establish the effects of several parameters that p

Seoyoung Oh 1 Jan 02, 2022
SAPIEN Manipulation Skill Benchmark

ManiSkill Benchmark SAPIEN Manipulation Skill Benchmark (abbreviated as ManiSkill, pronounced as "Many Skill") is a large-scale learning-from-demonstr

Hao Su's Lab, UCSD 107 Jan 08, 2023
GNN4Traffic - This is the repository for the collection of Graph Neural Network for Traffic Forecasting

GNN4Traffic - This is the repository for the collection of Graph Neural Network for Traffic Forecasting

564 Jan 02, 2023
Code and data to accompany the camera-ready version of "Cross-Attention is All You Need: Adapting Pretrained Transformers for Machine Translation" in EMNLP 2021

Code and data to accompany the camera-ready version of "Cross-Attention is All You Need: Adapting Pretrained Transformers for Machine Translation" in EMNLP 2021

Mozhdeh Gheini 16 Jul 16, 2022
The dynamics of representation learning in shallow, non-linear autoencoders

The dynamics of representation learning in shallow, non-linear autoencoders The package is written in python and uses the pytorch implementation to ML

Maria Refinetti 4 Jun 08, 2022
Python calculations for the position of the sun and moon.

Astral This is 'astral' a Python module which calculates Times for various positions of the sun: dawn, sunrise, solar noon, sunset, dusk, solar elevat

Simon Kennedy 169 Dec 20, 2022
PFLD pytorch Implementation

PFLD-pytorch Implementation of PFLD A Practical Facial Landmark Detector by pytorch. 1. install requirements pip3 install -r requirements.txt 2. Datas

zhaozhichao 669 Jan 02, 2023
Code release for the ICML 2021 paper "PixelTransformer: Sample Conditioned Signal Generation".

PixelTransformer Code release for the ICML 2021 paper "PixelTransformer: Sample Conditioned Signal Generation". Project Page Installation Please insta

Shubham Tulsiani 24 Dec 17, 2022
YoloV3 Implemented in Tensorflow 2.0

YoloV3 Implemented in TensorFlow 2.0 This repo provides a clean implementation of YoloV3 in TensorFlow 2.0 using all the best practices. Key Features

Zihao Zhang 2.5k Dec 26, 2022
Easy-to-use,Modular and Extendible package of deep-learning based CTR models .

DeepCTR DeepCTR is a Easy-to-use,Modular and Extendible package of deep-learning based CTR models along with lots of core components layers which can

浅梦 6.6k Jan 08, 2023
Practical Blind Denoising via Swin-Conv-UNet and Data Synthesis

Practical Blind Denoising via Swin-Conv-UNet and Data Synthesis [Paper] [Online Demo] The following results are obtained by our SCUNet with purely syn

Kai Zhang 312 Jan 07, 2023
PyQt6 configuration in yaml format providing the most simple script.

PyamlQt(ぴゃむるきゅーと) PyQt6 configuration in yaml format providing the most simple script. Requirements yaml PyQt6, ( PyQt5 ) Installation pip install Pya

Ar-Ray 7 Aug 15, 2022
JDet is Object Detection Framework based on Jittor.

JDet is Object Detection Framework based on Jittor.

135 Dec 14, 2022