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)
[CVPR-2021] UnrealPerson: An adaptive pipeline for costless person re-identification

UnrealPerson: An Adaptive Pipeline for Costless Person Re-identification In our paper (arxiv), we propose a novel pipeline, UnrealPerson, that decreas

ZhangTianyu 70 Oct 10, 2022
A Weakly Supervised Amodal Segmenter with Boundary Uncertainty Estimation

Paper Khoi Nguyen, Sinisa Todorovic "A Weakly Supervised Amodal Segmenter with Boundary Uncertainty Estimation", accepted to ICCV 2021 Our code is mai

Khoi Nguyen 5 Aug 14, 2022
tree-math: mathematical operations for JAX pytrees

tree-math: mathematical operations for JAX pytrees tree-math makes it easy to implement numerical algorithms that work on JAX pytrees, such as iterati

Google 137 Dec 28, 2022
How to train a CNN to 99% accuracy on MNIST in less than a second on a laptop

Training a NN to 99% accuracy on MNIST in 0.76 seconds A quick study on how fast you can reach 99% accuracy on MNIST with a single laptop. Our answer

Tuomas Oikarinen 42 Dec 10, 2022
Research - dataset and code for 2016 paper Learning a Driving Simulator

the people's comma the paper Learning a Driving Simulator the comma.ai driving dataset 7 and a quarter hours of largely highway driving. Enough to tra

comma.ai 4.1k Jan 02, 2023
Python implementation of NARS (Non-Axiomatic-Reasoning-System)

Python implementation of NARS (Non-Axiomatic-Reasoning-System)

Bowen XU 11 Dec 20, 2022
Defense-GAN: Protecting Classifiers Against Adversarial Attacks Using Generative Models (published in ICLR2018)

Defense-GAN: Protecting Classifiers Against Adversarial Attacks Using Generative Models Pouya Samangouei*, Maya Kabkab*, Rama Chellappa [*: authors co

Maya Kabkab 212 Dec 07, 2022
The Rich Get Richer: Disparate Impact of Semi-Supervised Learning

The Rich Get Richer: Disparate Impact of Semi-Supervised Learning Preprocess file of the dataset used in implicit sub-populations: (Demographic groups

<a href=[email protected]"> 4 Oct 14, 2022
Camera ready code repo for the NeuRIPS 2021 paper: "Impression learning: Online representation learning with synaptic plasticity".

Impression-Learning-Camera-Ready Camera ready code repo for the NeuRIPS 2021 paper: "Impression learning: Online representation learning with synaptic

2 Feb 09, 2022
YOLOX is a high-performance anchor-free YOLO, exceeding yolov3~v5 with ONNX, TensorRT, ncnn, and OpenVINO supported.

Introduction YOLOX is an anchor-free version of YOLO, with a simpler design but better performance! It aims to bridge the gap between research and ind

7.7k Jan 03, 2023
NasirKhusraw - The TSP solved using genetic algorithm and show TSP path overlaid on a map of the Iran provinces & their capitals.

Nasir Khusraw : Travelling Salesman Problem The TSP solved using genetic algorithm. This project show TSP path overlaid on a map of the Iran provinces

J Brave 2 Sep 01, 2022
A simple algorithm for extracting tree height in sparse scene from point cloud data.

TREE HEIGHT EXTRACTION IN SPARSE SCENES BASED ON UAV REMOTE SENSING This is the offical python implementation of the paper "Tree Height Extraction in

6 Oct 28, 2022
Author Disambiguation using Knowledge Graph Embeddings with Literals

Author Name Disambiguation with Knowledge Graph Embeddings using Literals This is the repository for the master thesis project on Knowledge Graph Embe

12 Oct 19, 2022
Expert Finding in Legal Community Question Answering

Expert Finding in Legal Community Question Answering Arian Askari, Suzan Verberne, and Gabriella Pasi. Expert Finding in Legal Community Question Answ

Arian Askari 3 Oct 31, 2022
A chemical analysis of lipophilicities & molecule drawings including ML

A chemical analysis of lipophilicity & molecule drawings including a bit of ML analysis. This is a simple project that includes two Jupyter files (one

Aurimas A. Nausėdas 7 Nov 22, 2022
Notebooks, slides and dataset of the CorrelAid Machine Learning Winter School

CorrelAid Machine Learning Winter School Welcome to the CorrelAid ML Winter School! Task The problem we want to solve is to classify trees in Roosevel

CorrelAid 12 Nov 23, 2022
Learning recognition/segmentation models without end-to-end training. 40%-60% less GPU memory footprint. Same training time. Better performance.

InfoPro-Pytorch The Information Propagation algorithm for training deep networks with local supervision. (ICLR 2021) Revisiting Locally Supervised Lea

78 Dec 27, 2022
Libraries, tools and tasks created and used at DeepMind Robotics.

dm_robotics: Libraries, tools, and tasks created and used for Robotics research at DeepMind. Package overview Package Summary Transformations Rigid bo

DeepMind 273 Jan 06, 2023
这是一个deeplabv3-plus-pytorch的源码,可以用于训练自己的模型。

DeepLabv3+:Encoder-Decoder with Atrous Separable Convolution语义分割模型在Pytorch当中的实现 目录 性能情况 Performance 所需环境 Environment 注意事项 Attention 文件下载 Download 训练步骤

Bubbliiiing 350 Dec 28, 2022
Educational API for 3D Vision using pose to control carton.

Educational API for 3D Vision using pose to control carton.

41 Jul 10, 2022