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
Improving Factual Completeness and Consistency of Image-to-text Radiology Report Generation

Improving Factual Completeness and Consistency of Image-to-text Radiology Report Generation The reference code of Improving Factual Completeness and C

46 Dec 15, 2022
Sky Computing: Accelerating Geo-distributed Computing in Federated Learning

Sky Computing Introduction Sky Computing is a load-balanced framework for federated learning model parallelism. It adaptively allocate model layers to

HPC-AI Tech 72 Dec 27, 2022
FANet - Real-time Semantic Segmentation with Fast Attention

FANet Real-time Semantic Segmentation with Fast Attention Ping Hu, Federico Perazzi, Fabian Caba Heilbron, Oliver Wang, Zhe Lin, Kate Saenko , Stan Sc

Ping Hu 42 Nov 30, 2022
Implementation for HFGI: High-Fidelity GAN Inversion for Image Attribute Editing

HFGI: High-Fidelity GAN Inversion for Image Attribute Editing High-Fidelity GAN Inversion for Image Attribute Editing Update: We released the inferenc

Tengfei Wang 371 Dec 30, 2022
An Open Source Machine Learning Framework for Everyone

Documentation TensorFlow is an end-to-end open source platform for machine learning. It has a comprehensive, flexible ecosystem of tools, libraries, a

170.1k Jan 04, 2023
GoodNews Everyone! Context driven entity aware captioning for news images

This is the code for a CVPR 2019 paper, called GoodNews Everyone! Context driven entity aware captioning for news images. Enjoy! Model preview: Huge T

117 Dec 19, 2022
The undersampled DWI image using Slice-Interleaved Diffusion Encoding (SIDE) method can be reconstructed by the UNet network.

UNet-SIDE The undersampled DWI image using Slice-Interleaved Diffusion Encoding (SIDE) method can be reconstructed by the UNet network. For Super Reso

TIANTIAN XU 1 Jan 13, 2022
Trading Strategies for Freqtrade

Freqtrade Strategies Strategies for Freqtrade, developed primarily in a partnership between @werkkrew and @JimmyNixx from the Freqtrade Discord. Use t

Bryan Chain 242 Jan 07, 2023
Covid-19 Test AI (Deep Learning - NNs) Software. Accuracy is the %96.5, loss is the 0.09 :)

Covid-19 Test AI (Deep Learning - NNs) Software I developed a segmentation algorithm to understand whether Covid-19 Test Photos are positive or negati

Emirhan BULUT 28 Dec 04, 2021
Embeds a story into a music playlist by sorting the playlist so that the order of the music follows a narrative arc.

playlist-story-builder This project attempts to embed a story into a music playlist by sorting the playlist so that the order of the music follows a n

Dylan R. Ashley 0 Oct 28, 2021
Fully Automatic Page Turning on Real Scores

Fully Automatic Page Turning on Real Scores This repository contains the corresponding code for our extended abstract Henkel F., Schwaiger S. and Widm

Florian Henkel 7 Jan 02, 2022
Phylogeny Partners

Phylogeny-Partners Two states models Instalation You may need to install the cython, networkx, numpy, scipy package: pip install cython, networkx, num

1 Sep 19, 2022
Physical Anomalous Trajectory or Motion (PHANTOM) Dataset

Physical Anomalous Trajectory or Motion (PHANTOM) Dataset Description This dataset contains the six different classes as described in our paper[]. The

0 Dec 16, 2021
Implementation of the master's thesis "Temporal copying and local hallucination for video inpainting".

Temporal copying and local hallucination for video inpainting This repository contains the implementation of my master's thesis "Temporal copying and

David Álvarez de la Torre 1 Dec 02, 2022
[TNNLS 2021] The official code for the paper "Learning Deep Context-Sensitive Decomposition for Low-Light Image Enhancement"

CSDNet-CSDGAN this is the code for the paper "Learning Deep Context-Sensitive Decomposition for Low-Light Image Enhancement" Environment Preparing pyt

Jiaao Zhang 17 Nov 05, 2022
Repo for WWW 2022 paper: Progressively Optimized Bi-Granular Document Representation for Scalable Embedding Based Retrieval

BiDR Repo for WWW 2022 paper: Progressively Optimized Bi-Granular Document Representation for Scalable Embedding Based Retrieval. Requirements torch==

Microsoft 11 Oct 20, 2022
FaRL for Facial Representation Learning

FaRL for Facial Representation Learning This repo hosts official implementation of our paper General Facial Representation Learning in a Visual-Lingui

Microsoft 19 Jan 05, 2022
Pynomial - a lightweight python library for implementing the many confidence intervals for the risk parameter of a binomial model

Pynomial - a lightweight python library for implementing the many confidence intervals for the risk parameter of a binomial model

Demetri Pananos 9 Oct 04, 2022
A simple program for training and testing vit

Vit This is a simple program for training and testing vit. Key requirements: torch, torchvision and timm. Dataset I put 5 categories of the cub classi

xiezhenyu 2 Oct 11, 2022
Accompanying code for the paper "A Kernel Test for Causal Association via Noise Contrastive Backdoor Adjustment".

#backdoor-HSIC (bd_HSIC) Accompanying code for the paper "A Kernel Test for Causal Association via Noise Contrastive Backdoor Adjustment". To generate

Robert Hu 0 Nov 25, 2021