PyExplainer: A Local Rule-Based Model-Agnostic Technique (Explainable AI)

Overview

PyExplainer logo

codecov Documentation Status PyPI version Anaconda-Server Badge Language grade: Python Language grade: JavaScript Binder DOI

PyExplainer is a local rule-based model-agnostic technique for generating explanations (i.e., why a commit is predicted as defective) of Just-In-Time (JIT) defect prediction defect models.

Through a case study of two open-source software projects, we find that our PyExplainer produces (1) synthetic neighbous that are 41%-45% more similar to an instance to be explained; (2) 18%-38% more accurate local models; and (3) explanations that are 69%-98% more unique and 17%-54% more consistent with the actual characteristics of defect-introducing commits in the future than LIME (a state-of-the-art model-agnostic technique).

This work is published at the International Conference on Automated Software Engineering 2021 (ASE2021): "PyExplainer: Explaining the Predictions ofJust-In-Time Defect Models". Preprint

@inproceedings{PyExplainer,
 author = {Pornprasit, Chanathip and Tantithamthavorn, Chakkrit and Jiarpakdee, Jirayus and Fu, Micheal and Thongtanunam, Patanamon}, 
 title = {PyExplainer: Explaining the Predictions ofJust-In-Time Defect Models},
 booktitle = {Proceedings of th International Conference on Automated Software Engineering (ASE)},
 year = {2021},
 numpages = {12},
}

alt text

Quick Start

You can try our PyExplainer directly without installation at this online JupyterNotebook (just open and run TUTORIAL.ipynb). The tutorial video below demonstrates how to use our PyExplainer in this JupyterNotebook.

In the JupyterNotebook:

  • Run cells from step 1 to step 3 to create an interactive visualization in jupyter notebook cell (like the example above). You can change the input feature values of ML model at slide bar.
  • Run the cells in appendix section if you would like to get more detail about variable used to build PyExplainer

Tutorial

See the instructions below how to install our PyExplainer Python Package.

Table of Contents

Installation

Dependencies

- python >= "3.6"
- scikit-learn >= "0.24.2"
- numpy >= "1.20.1"
- scipy >= "1.6.1"
- ipywidgets >= "7.6.3"
- ipython >= "7.21.0"
- pandas >= "1.2.5"
- statsmodels >= "0.12.2"

Install PyExplainer Python Package

Installing pyexplainer is easily done using pip, simply run the following command. This will also install the necessary dependencies.

pip install pyexplainer

See this PyExplainer python package documentation for how to install our PyExplainer from source and its dependencies.

If you are with conda, run the command below in your conda environment

conda install -c conda-forge pyexplainer

Contributions

We welcome and recognize all contributions. You can see a list of current contributors in the contributors tab.

Please click here for more information about making a contribution to this project.

Documentation

The official documentation is hosted on Read the Docs

License

MIT License, click here for more information.

Credits

This package was created with Cookiecutter and the UBC-MDS/cookiecutter-ubc-mds project template, modified from the pyOpenSci/cookiecutter-pyopensci project template and the audreyr/cookiecutter-pypackage.

Comments
  • cannot run

    cannot run "import ipywidgets as widgets"

    When I import pyexplainer_pyexplainer, there is an error as shown below

    image

    I tried using pip install ipywidgets and conda install ipywidgets but both methods cannot fix the issue.

    Do you have any idea to solve this issue?

    opened by oathaha 9
  • getting error while running

    getting error while running "explain" function

    Hello, I am trying to use pyexplainer for input as text data of bug reports. I have performed text vectorizer. and after that while performing this step: created_rules = py_explainer.explain(X_explain=X_explain, y_explain=y_explain, search_function='crossoverinterpolation', random_state=0, reuse_local_model=True)

    I am getting this error: Traceback (most recent call last): File "sh_project.py", line 49, in created_rules = py_explainer.explain(X_explain=X_explain, File "/mnt/c/Users/shrad/Documents/PyExplainer/pyexplainer/pyexplainer_pyexplainer.py", line 554, in explain synthetic_object = self.generate_instance_crossover_interpolation( File "/mnt/c/Users/shrad/Documents/PyExplainer/pyexplainer/pyexplainer_pyexplainer.py", line 848, in generate_instance_crossover_interpolation X_train_i = X_train_i.loc[:, self.indep] File "/home/shraddha/.local/lib/python3.8/site-packages/pandas/core/indexing.py", line 961, in getitem return self._getitem_tuple(key) File "/home/shraddha/.local/lib/python3.8/site-packages/pandas/core/indexing.py", line 1149, in _getitem_tuple return self._getitem_tuple_same_dim(tup) File "/home/shraddha/.local/lib/python3.8/site-packages/pandas/core/indexing.py", line 827, in _getitem_tuple_same_dim
    retval = getattr(retval, self.name)._getitem_axis(key, axis=i) File "/home/shraddha/.local/lib/python3.8/site-packages/pandas/core/indexing.py", line 1191, in _getitem_axis return self._getitem_iterable(key, axis=axis) File "/home/shraddha/.local/lib/python3.8/site-packages/pandas/core/indexing.py", line 1327, in _get_listlike_indexer
    keyarr, indexer = ax._get_indexer_strict(key, axis_name) File "/home/shraddha/.local/lib/python3.8/site-packages/pandas/core/indexes/base.py", line 5782, in _get_indexer_strict
    self._raise_if_missing(keyarr, indexer, axis_name) File "/home/shraddha/.local/lib/python3.8/site-packages/pandas/core/indexes/base.py", line 5842, in _raise_if_missing
    raise KeyError(f"None of [{key}] are in the [{axis_name}]") KeyError: "None of [Index(['bookmarks option',\n '[FIX]Not correctly retrieving post data when saving a page or frame generated from a form POST',\n 'Show URI in status bar onmouseover of Back/Forward menu items',\n 'Localization problems with Bookmarks Sorted By menu & History Sorted By menu',\n 'UI to allow external handlers for internal types',\n 'Mozilla should support X11 session management',\n 'POST result page should not appear in global history or history autocomplete results',\n 'Non-responding Windows UNC share hangs bookmark menu',\n 'want infinite Back', 'Use favicons on webpage shortcuts in Windows'],\n dtype='object', name='Title')] are in the [columns]"

    Can anyone please help, what does this error indicate?

    opened by ShraddhaDevaiya 6
  • Getting error while running tutorial.ipynb in the browser

    Getting error while running tutorial.ipynb in the browser

    Hello, I was trying to run code from the tutorial.ipynb but while running it on the web, in the first step, I am getting the following error: image

    Can you please help to solve this? is there a chance that with Binder build, it couldn't install dependencies?

    opened by ShraddhaDevaiya 4
  • Bump ipython from 7.16.1 to 7.16.3

    Bump ipython from 7.16.1 to 7.16.3

    Bumps ipython from 7.16.1 to 7.16.3.

    Commits

    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] 3
  • Bump ipython from 7.21.0 to 7.31.1 in /docs

    Bump ipython from 7.21.0 to 7.31.1 in /docs

    Bumps ipython from 7.21.0 to 7.31.1.

    Commits

    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] 3
  • import RuleFit error

    import RuleFit error

    I found that the below code from 'pyexplainer_pyexplainer.py' that import RuleFit triggers an import error from pyexplainer.rulefit import RuleFit

    Here is the error message image

    I found that using this code can solve the problem from rulefit import RuleFit

    I found this error because I want to import pyexplainer_pyexplainer.py directly from pyexplainer directory, to ensure that I use the latest code for my experiment.

    So my request is changing from pyexplainer.rulefit import RuleFit to from rulefit import RuleFit in master branch.

    opened by oathaha 3
  • return local model

    return local model

    I think it would be beneficial for user if local model of explain() function is included in returned dictionary.

    The current code looks like this

    rule_obj = {'synthetic_data': synthetic_instances,
                        'synthetic_predictions': synthetic_predictions,
                        'X_explain': X_explain,
                        'y_explain': y_explain,
                        'indep': self.indep,
                        'dep': self.dep,
                        'top_k_positive_rules': top_k_positive_rules,
                        'top_k_negative_rules': top_k_negative_rules}
    

    but I think it should looks like this

    rule_obj = {'synthetic_data': synthetic_instances,
                        'synthetic_predictions': synthetic_predictions,
                        'X_explain': X_explain,
                        'y_explain': y_explain,
                        'indep': self.indep,
                        'dep': self.dep,
                        'local_model': local_rulefit_model,
                        'top_k_positive_rules': top_k_positive_rules,
                        'top_k_negative_rules': top_k_negative_rules}
    
    opened by oathaha 3
  • Bump mistune from 0.8.4 to 2.0.3

    Bump mistune from 0.8.4 to 2.0.3

    Bumps mistune from 0.8.4 to 2.0.3.

    Release notes

    Sourced from mistune's releases.

    Version 2.0.2

    Fix escape_url via lepture/mistune#295

    Version 2.0.1

    Fix XSS for image link syntax.

    Version 2.0.0

    First release of Mistune v2.

    Version 2.0.0 RC1

    In this release, we have a Security Fix for harmful links.

    Version 2.0.0 Alpha 1

    This is the first release of v2. An alpha version for users to have a preview of the new mistune.

    Changelog

    Sourced from mistune's changelog.

    Changelog

    Here is the full history of mistune v2.

    Version 2.0.4

    
    Released on Jul 15, 2022
    
    • Fix url plugin in <a> tag
    • Fix * formatting

    Version 2.0.3

    Released on Jun 27, 2022

    • Fix table plugin
    • Security fix for CVE-2022-34749

    Version 2.0.2

    
    Released on Jan 14, 2022
    

    Fix escape_url

    Version 2.0.1

    Released on Dec 30, 2021

    XSS fix for image link syntax.

    Version 2.0.0

    
    Released on Dec 5, 2021
    

    This is the first non-alpha release of mistune v2.

    Version 2.0.0rc1

    Released on Feb 16, 2021

    Version 2.0.0a6

    
    </tr></table> 
    

    ... (truncated)

    Commits
    • 3f422f1 Version bump 2.0.3
    • a6d4321 Fix asteris emphasis regex CVE-2022-34749
    • 5638e46 Merge pull request #307 from jieter/patch-1
    • 0eba471 Fix typo in guide.rst
    • 61e9337 Fix table plugin
    • 76dec68 Add documentation for renderer heading when TOC enabled
    • 799cd11 Version bump 2.0.2
    • babb0cf Merge pull request #295 from dairiki/bug.escape_url
    • fc2cd53 Make mistune.util.escape_url less aggressive
    • 3e8d352 Version bump 2.0.1
    • 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] 2
  • Bump notebook from 6.4.3 to 6.4.12

    Bump notebook from 6.4.3 to 6.4.12

    Bumps notebook from 6.4.3 to 6.4.12.

    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] 2
  • Bump notebook from 6.4.5 to 6.4.10

    Bump notebook from 6.4.5 to 6.4.10

    Bumps notebook from 6.4.5 to 6.4.10.

    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] 2
  • Bump poetry from 1.1.7 to 1.1.9

    Bump poetry from 1.1.7 to 1.1.9

    Bumps poetry from 1.1.7 to 1.1.9.

    Release notes

    Sourced from poetry's releases.

    1.1.9

    Fixed

    1.1.8

    Fixed

    • Fixed an error with repository prioritization when specifying secondary repositories. (#4241)
    • Fixed the detection of the system environment when the setting virtualenvs.create is deactivated. (#4330, #4407)
    • Fixed the evaluation of relative path dependencies. (#4246)
    • Fixed environment detection for Python 3.10 environments. (#4387)
    • Fixed an error in the evaluation of in/not in markers (python-poetry/poetry-core#189)
    Changelog

    Sourced from poetry's changelog.

    [1.1.9] - 2021-09-18

    Fixed

    [1.1.8] - 2021-08-19

    Fixed

    • Fixed an error with repository prioritization when specifying secondary repositories. (#4241)
    • Fixed the detection of the system environment when the setting virtualenvs.create is deactivated. (#4330#4407)
    • Fixed the evaluation of relative path dependencies. (#4246)
    • Fixed environment detection for Python 3.10 environments. (#4387)
    • Fixed an error in the evaluation of in/not in markers (python-poetry/poetry-core#189)

    [1.2.0a2] - 2021-08-01

    Added

    • Poetry now supports dependency groups. (#4260)
    • The install command now supports a --sync option to synchronize the environment with the lock file. (#4336)

    Changed

    • Improved the way credentials are retrieved to better support keyring backends. (#4086)
    • The --remove-untracked option of the install command is now deprecated in favor of the new --sync option. (#4336)
    • The user experience when installing dependency groups has been improved. (#4336)

    Fixed

    • Fixed performance issues when resolving dependencies. (#3839)
    • Fixed an issue where transitive dependencies of directory or VCS dependencies were not installed or otherwise removed. (#4202)
    • Fixed the behavior of the init command in non-interactive mode. (#2899)
    • Fixed the detection of the system environment when the setting virtualenvs.create is deactivated. (#4329)
    • Fixed the display of possible solutions for some common errors. (#4332)
    Commits
    • 69bd682 Bump version to 1.1.9
    • 9d8aed4 Update lock file
    • a9e59ed Merge pull request #4507 from python-poetry/1.1-fix-system-env-detection
    • 459c8c9 Fix system env detection
    • 634bb23 Merge pull request #4420 from pietrodn/fix/hash-check-backport-1.1
    • d033cba style: linting
    • 8268795 Merge pull request #4444 from python-poetry/1.1-fix-archive-hash-generation
    • 8238cab Fix archive hash generation
    • 8956a0c fix: python 2.7 syntax
    • 435ff81 Throw a RuntimeError on hash mismatch in Chooser._get_links (#3885)
    • 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] 2
  • Questions about the results obtained by XAI method

    Questions about the results obtained by XAI method

    I found a strange phenomenon. For the same model, the same training sample and test sample, other operations are identical. Theoretically, the values obtained by using the XAI method (like Saliency) to evaluate the interpretability of the model should be the same. However, I retrained a new model, and the interpretability values obtained are completely different from those obtained from the previous model. Does anyone know why this happens? The interpretability value is completely unstable, and the results cannot be reproduced. Unless I completely save this model after training it, and then reload this parameter, the results will be the same. Does anyone know why

    opened by 9527-ly 0
  • Not getting an expected output

    Not getting an expected output

    Hello, I am using the pyexplainer to explain the data regarding the bug report. following is my input data :

    image

    and the feature data is like this:

    image

    and for this pyexplainer is giving output like this:

    image

    which doesn't seem like an explanation. can you please suggest, am I missing anything?

    opened by ShraddhaDevaiya 9
Owner
AI Wizards for Software Management (AWSM) Research Group
AI Wizards for Software Management (AWSM) Research Group
Contrastive Learning for Compact Single Image Dehazing, CVPR2021

AECR-Net Contrastive Learning for Compact Single Image Dehazing, CVPR2021. Official Pytorch based implementation. Paper arxiv Pytorch Version TODO: mo

glassy 253 Jan 01, 2023
TensorFlow implementation of "Learning from Simulated and Unsupervised Images through Adversarial Training"

Simulated+Unsupervised (S+U) Learning in TensorFlow TensorFlow implementation of Learning from Simulated and Unsupervised Images through Adversarial T

Taehoon Kim 569 Dec 29, 2022
Towards Implicit Text-Guided 3D Shape Generation (CVPR2022)

Towards Implicit Text-Guided 3D Shape Generation Towards Implicit Text-Guided 3D Shape Generation (CVPR2022) Code for the paper [Towards Implicit Text

55 Dec 16, 2022
Hyperparameter tuning for humans

KerasTuner KerasTuner is an easy-to-use, scalable hyperparameter optimization framework that solves the pain points of hyperparameter search. Easily c

Keras 2.6k Dec 27, 2022
Pipeline for employing a Lightweight deep learning models for LOW-power systems

PL-LOW A high-performance deep learning model lightweight pipeline that gradually lightens deep neural networks in order to utilize high-performance d

POSTECH Data Intelligence Lab 9 Aug 13, 2022
The 2nd place solution of 2021 google landmark retrieval on kaggle.

Google_Landmark_Retrieval_2021_2nd_Place_Solution The 2nd place solution of 2021 google landmark retrieval on kaggle. Environment We use cuda 11.1/pyt

229 Dec 13, 2022
Additional functionality for use with fastai’s medical imaging module

fmi Adding additional functionality to fastai's medical imaging module To learn more about medical imaging using Fastai you can view my blog Install g

14 Oct 31, 2022
A modular, primitive-first, python-first PyTorch library for Reinforcement Learning.

TorchRL Disclaimer This library is not officially released yet and is subject to change. The features are available before an official release so that

Meta Research 860 Jan 07, 2023
Wordle-solver - Wordle answer generation program in python

🟨 Wordle Solver 🟩 Wordle answer generation program in python ✔️ Requirements U

Dahyun Kang 4 May 28, 2022
SigOpt wrappers for scikit-learn methods

SigOpt + scikit-learn Interfacing This package implements useful interfaces and wrappers for using SigOpt and scikit-learn together Getting Started In

SigOpt 73 Sep 30, 2022
This codebase is the official implementation of Test-Time Classifier Adjustment Module for Model-Agnostic Domain Generalization (NeurIPS2021, Spotlight)

Test-Time Classifier Adjustment Module for Model-Agnostic Domain Generalization This codebase is the official implementation of Test-Time Classifier A

47 Dec 28, 2022
Generates all variables from your .tf files into a variables.tf file.

tfvg Generates all variables from your .tf files into a variables.tf file. It searches for every var.variable_name in your .tf files and generates a v

1 Dec 01, 2022
Deep metric learning methods implemented in Chainer

Deep Metric Learning Implementation of several methods for deep metric learning in Chainer v4.2.0. Proxy-NCA: No Fuss Distance Metric Learning using P

ronekko 156 Nov 28, 2022
Unconstrained Text Detection with Box Supervisionand Dynamic Self-Training

SelfText Beyond Polygon: Unconstrained Text Detection with Box Supervisionand Dynamic Self-Training Introduction This is a PyTorch implementation of "

weijiawu 34 Nov 09, 2022
Bayesian inference for Permuton-induced Chinese Restaurant Process (NeurIPS2021).

Permuton-induced Chinese Restaurant Process Note: Currently only the Matlab version is available, but a Python version will be available soon! This is

NTT Communication Science Laboratories 3 Dec 17, 2022
Dynamic Multi-scale Filters for Semantic Segmentation (DMNet ICCV'2019)

Dynamic Multi-scale Filters for Semantic Segmentation (DMNet ICCV'2019) Introduction Official implementation of Dynamic Multi-scale Filters for Semant

23 Oct 21, 2022
Task-related Saliency Network For Few-shot learning

Task-related Saliency Network For Few-shot learning This is an official implementation in Tensorflow of TRSN. Abstract An essential cue of human wisdo

1 Nov 18, 2021
Sequence Modeling with Structured State Spaces

Structured State Spaces for Sequence Modeling This repository provides implementations and experiments for the following papers. S4 Efficiently Modeli

HazyResearch 896 Jan 01, 2023
The repository for our EMNLP 2021 paper "Finnish Dialect Identification: The Effect of Audio and Text"

Finnish Dialect Identification The repository for our EMNLP 2021 paper "Finnish Dialect Identification: The Effect of Audio and Text". We present a te

Rootroo Ltd 2 Dec 25, 2021
[CVPR 2021] MiVOS - Mask Propagation module. Reproduced STM (and better) with training code :star2:. Semi-supervised video object segmentation evaluation.

MiVOS (CVPR 2021) - Mask Propagation Ho Kei Cheng, Yu-Wing Tai, Chi-Keung Tang [arXiv] [Paper PDF] [Project Page] [Papers with Code] This repo impleme

Rex Cheng 106 Jan 03, 2023