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)
CVPR2021 Content-Aware GAN Compression

Content-Aware GAN Compression [ArXiv] Paper accepted to CVPR2021. @inproceedings{liu2021content, title = {Content-Aware GAN Compression}, auth

52 Nov 06, 2022
Dynamic Environments with Deformable Objects (DEDO)

DEDO - Dynamic Environments with Deformable Objects DEDO is a lightweight and customizable suite of environments with deformable objects. It is aimed

Rika 32 Dec 22, 2022
Flexible-CLmser: Regularized Feedback Connections for Biomedical Image Segmentation

Flexible-CLmser: Regularized Feedback Connections for Biomedical Image Segmentation The skip connections in U-Net pass features from the levels of enc

Boheng Cao 1 Dec 29, 2021
Creating a Linear Program Solver by Implementing the Simplex Method in Python with NumPy

Creating a Linear Program Solver by Implementing the Simplex Method in Python with NumPy Simplex Algorithm is a popular algorithm for linear programmi

Reda BELHAJ 2 Oct 12, 2022
FTIR-Deep Learning - FTIR Deep Learning With Python

CANDIY-spectrum Human analyis of chemical spectra such as Mass Spectra (MS), Inf

Wei Mei 1 Jan 03, 2022
Implementation of "JOKR: Joint Keypoint Representation for Unsupervised Cross-Domain Motion Retargeting"

JOKR: Joint Keypoint Representation for Unsupervised Cross-Domain Motion Retargeting Pytorch implementation for the paper "JOKR: Joint Keypoint Repres

45 Dec 25, 2022
Training Structured Neural Networks Through Manifold Identification and Variance Reduction

Training Structured Neural Networks Through Manifold Identification and Variance Reduction This repository is a pytorch implementation of the Regulari

0 Dec 23, 2021
Implementation of Change-Based Exploration Transfer (C-BET)

Implementation of Change-Based Exploration Transfer (C-BET), as presented in Interesting Object, Curious Agent: Learning Task-Agnostic Exploration.

Simone Parisi 29 Dec 04, 2022
Code for 2021 NeurIPS --- Towards Multi-Grained Explainability for Graph Neural Networks

ReFine: Multi-Grained Explainability for GNNs We are trying hard to update the code, but it may take a while to complete due to our tight schedule rec

Shirley (Ying-Xin) Wu 47 Dec 16, 2022
YOLTv5 rapidly detects objects in arbitrarily large aerial or satellite images that far exceed the ~600×600 pixel size typically ingested by deep learning object detection frameworks

YOLTv5 rapidly detects objects in arbitrarily large aerial or satellite images that far exceed the ~600×600 pixel size typically ingested by deep learning object detection frameworks.

Adam Van Etten 145 Jan 01, 2023
MVSDF - Learning Signed Distance Field for Multi-view Surface Reconstruction

MVSDF - Learning Signed Distance Field for Multi-view Surface Reconstruction This is the official implementation for the ICCV 2021 paper Learning Sign

110 Dec 20, 2022
Boosting Adversarial Attacks with Enhanced Momentum (BMVC 2021)

EMI-FGSM This repository contains code to reproduce results from the paper: Boosting Adversarial Attacks with Enhanced Momentum (BMVC 2021) Xiaosen Wa

John Hopcroft Lab at HUST 10 Sep 26, 2022
PyTorch code for our paper "Attention in Attention Network for Image Super-Resolution"

Under construction... Attention in Attention Network for Image Super-Resolution (A2N) This repository is an PyTorch implementation of the paper "Atten

Haoyu Chen 71 Dec 30, 2022
Pytorch Implementation of "Diagonal Attention and Style-based GAN for Content-Style disentanglement in image generation and translation" (ICCV 2021)

DiagonalGAN Official Pytorch Implementation of "Diagonal Attention and Style-based GAN for Content-Style Disentanglement in Image Generation and Trans

32 Dec 06, 2022
This repository for project that can Automate Number Plate Recognition (ANPR) in Morocco Licensed Vehicles. 💻 + 🚙 + 🇲🇦 = 🤖 🕵🏻‍♂️

MoroccoAI Data Challenge (Edition #001) This Reposotory is result of our work in the comepetiton organized by MoroccoAI in the context of the first Mo

SAFOINE EL KHABICH 14 Oct 31, 2022
This is the source code for the experiments related to the paper Unsupervised Audio Source Separation Using Differentiable Parametric Source Models

Unsupervised Audio Source Separation Using Differentiable Parametric Source Models This is the source code for the experiments related to the paper Un

30 Oct 19, 2022
A repo for Causal Imitation Learning under Temporally Correlated Noise

CausIL A repo for Causal Imitation Learning under Temporally Correlated Noise. Running Experiments To re-train an expert, run: python experts/train_ex

Gokul Swamy 5 Nov 01, 2022
Revisiting, benchmarking, and refining Heterogeneous Graph Neural Networks.

Heterogeneous Graph Benchmark Revisiting, benchmarking, and refining Heterogeneous Graph Neural Networks. Roadmap We organize our repo by task, and on

THUDM 176 Dec 17, 2022
Example how to deploy deep learning model with aiohttp.

aiohttp-demos Demos for aiohttp project. Contents Imagetagger Deep Learning Image Classifier URL shortener Toxic Comments Classifier Moderator Slack B

aio-libs 661 Jan 04, 2023
Implementation of fast algorithms for Maximum Spanning Tree (MST) parsing that includes fast ArcMax+Reweighting+Tarjan algorithm for single-root dependency parsing.

Fast MST Algorithm Implementation of fast algorithms for (Maximum Spanning Tree) MST parsing that includes fast ArcMax+Reweighting+Tarjan algorithm fo

Miloš Stanojević 11 Oct 14, 2022