πŸ§‘β€πŸ”¬ verify your TEAL program by experiment and observation

Related tags

Deep Learninggraviton
Overview

Graviton - Testing TEAL with Dry Runs

Tutorial

Local Installation

The following instructions assume that you have make available in your local environment. In Mac OS and Linux this is most likely already available and in Windows one way to install is with chocolatey and the command choco install make.

To install all dependencies:

make pip-notebooks

Running Blackbox Integration Tests against a Sandbox

Prereq - Install and Symbolically Link to the Sandbox

If you would like to use the Makefile without modification and with full functionality, you should create a symbolic link to the algorand sandbox repo as described here. There are many ways to accomplish this. Assuming you have cloned the sandbox into the path /path/to/algorand/sandbox/ and that you've cd'ed into the cloned graviton directory you should create a symbolic link as follows:

Linux / Mac OS

ln -s /path/to/algorand/sandbox/ sandbox

Windows 10+

mklink sandbox \path\to\algorand\sandbox

Test the Sandbox

With your sandbox running to test that the sandbox is running properly, use the following:

make local-sandbox-test

Run the Integration Tests

make integration-test

Running and Testing Jupyter Notebooks

To run the notebook notebooks/quadratic_factoring_game.ipynb for example:

make local-notebook NOTEBOOK=notebooks/quadratic_factoring_game.ipynb

To non-interactively run all the jupyter notebook tests:

make notebooks-test

Ensuring that all is Copacetic Before Pushing to Github

To test in your local environment that everything is looking good before pushing to Github, it is recommended that you run make all-tests

If you would like to simulate the github actions locally, you'll need to install nektos act. On Mac OS with Docker previously installed you can use brew install act; on the other hand, on Linux and Windows follow the installation instructions in the nextos repo link above.

Once act is available you can simulate all the github actions integration tests with:

make local-gh-simulate
Comments
  • Adding graviton logo and badges

    Adding graviton logo and badges

    Proposed changes

    • Adds 2 variations on a proposal for graviton logo inspired by this diagram. Main readme contains colored gradient background (teal and green from algorand's website), and tutorial page is reversed black background and gradient on text itself.
    • I noticed that markdownlint is used so i had to add one extra disable for a rule that would prevent having header image as a first content in md file. If you'd like to follow the convention though - feel free to to suggest moving text above the icon.
    • Images are hosted on ipfs and here is a .psd version also on ipfs -> ipfs://QmVcS8ULiEUrzs3m6bFQncuRt4MUV8ydnJmyen2wWCt5uq, should be possible to download it and edit in photoshop further if needed.
    • Lastly adds 2 tiny repo badges (visitors count and link to algorand website), could be used as a starter template in case you wanna add more badges (like coverage, ci status and etc) in future.
    opened by aorumbayev 4
  • Enforce mypy

    Enforce mypy

    Enforces mypy throughout the repo making a best-effort attempt to remediate mypy errors.

    The PR adds # type: ignore in several places as a workaround. In these cases, I was unable to remediate the mypy error in a way that preserved tests. I welcome feedback or alternative suggestions.

    opened by michaeldiamant 3
  • Update DryRun cost fields and expose DryRun accounts to users

    Update DryRun cost fields and expose DryRun accounts to users

    For certain use cases, it's necessary to set the balance of the app account to some nonzero value. One example is testing inner app calls. This PR allows the users to set balances for accounts and updates the existing dryrun cost field (which is now deprecated) and adds support for the new cost fields BudgetAdded and BudgetConsumed.

    Testing: Unit tests.

    opened by algoidurovic 2
  • Better error messages for `DryRunInspector.from_single_response()`

    Better error messages for `DryRunInspector.from_single_response()`

    First Real Unit Test

    @algoidurovic pointed out the following confusing error that he encountered while using graviton for a test (cv. this pyteal commit):

    require exactly 1 dry run transaction to create a singleton but had 0 instead

    This PR will first check the existence of "error" in the dry-run response, and pass that through when encountered.

    Additionally: Discarding the former sanity_test.py which was just a stub in favor or inspector_test.py

    opened by tzaffi 2
  • Illustrate running integration tests with Python 3.10 via asdf

    Illustrate running integration tests with Python 3.10 via asdf

    Illustrates running integration tests with Python 3.10 via asdf.

    After working toward the PR, I discovered a better approach. In case the approach is a useful reference later on, I'm opening and closing the PR for illustrative purposes.

    opened by michaeldiamant 2
  • Better assertion message for invariant predicates of 2 variables

    Better assertion message for invariant predicates of 2 variables

    Problem

    As you can see in the full printout below, when we call invariant.validates() on an invariant that was defined by a 2-variable predicate, we get an inscrutable expected description.

    This invariant was defined via:

    predicate = (lambda args, actual: "PASSE" == actual if args[0] else True)
    name = 'DryRunProperty.status' 
    invariant = Invariant(predicate, name=name)
    

    and spat out the following msg:

    <<<<<<<<<<<Invariant for 'DryRunProperty.status' failed for for args (2,): actual is [PASS] BUT expected [<function test_exercises.<locals>.<lambda> at 0x1082557e0>]>>>>>>>>>>>
    

    Full error:

    E           AssertionError: ===============
    E               <<<<<<<<<<<Invariant for 'DryRunProperty.status' failed for for args (2,): actual is [PASS] BUT expected [<function test_exercises.<locals>.<lambda> at 0x1082557e0>]>>>>>>>>>>>
    E               ===============
    E               App Trace:
    E                  step |   PC# |   L# | Teal              | Scratch   | Stack
    E           --------+-------+------+-------------------+-----------+----------------------
    E                 1 |     1 |    1 | #pragma version 6 |           | []
    E                 2 |     2 |    2 | arg_0             |           | [0x0000000000000002]
    E                 3 |     3 |    3 | btoi              |           | [2]
    E                 4 |     7 |    6 | label1:           |           | [2]
    E                 5 |     9 |    7 | store 0           | 0->2      | []
    E                 6 |    11 |    8 | load 0            |           | [2]
    E                 7 |    13 |    9 | pushint 2         |           | [2, 2]
    E                 8 |    14 |   10 | exp               |           | [4]
    E                 9 |     6 |    4 | callsub label1    |           | [4]
    E                10 |    15 |   11 | retsub            |           | [4]
    E               ===============
    E               MODE: ExecutionMode.Signature
    E               TOTAL COST: None
    E               ===============
    E               FINAL MESSAGE: PASS
    E               ===============
    E               Messages: ['PASS']
    E               Logs: []
    E               ===============
    E               -----BlackBoxResult(steps_executed=10)-----
    E               TOTAL STEPS: 10
    E               FINAL STACK: [4]
    E               FINAL STACK TOP: 4
    E               MAX STACK HEIGHT: 2
    E               FINAL SCRATCH: {0: 2}
    E               SLOTS USED: [0]
    E               FINAL AS ROW: {'steps': 10, ' top_of_stack': 4, 'max_stack_height': 2, '[email protected]': 2}
    E               ===============
    E               Global Delta:
    E               []
    E               ===============
    E               Local Delta:
    E               []
    E               ===============
    E               TXN AS ROW: {' Run': 1, ' cost': None, ' last_log': '`None', ' final_message': 'PASS', ' Status': 'PASS', 'steps': 10, ' top_of_stack': 4, 'max_stack_height': 2, '[email protected]': 2, 'Arg_00': 2}
    E               ===============
    E               <<<<<<<<<<<Invariant for 'DryRunProperty.status' failed for for args (2,): actual is [PASS] BUT expected [<function test_exercises.<locals>.<lambda> at 0x1082557e0>]>>>>>>>>>>>
    E               ===============
    
    enhancement 
    opened by tzaffi 2
  • Add `mypy` and `black` and `flake8`

    Add `mypy` and `black` and `flake8`

    Since the main consumer of this repo is pyteal and pyteal requires mypy and black, this repo should follow similar conventions and processes.

    • [x] add black
    • [x] add flake8
    • [x] add mypy
    opened by tzaffi 2
  • Basic Project Setup + Migrating Code from PySDK PR #298

    Basic Project Setup + Migrating Code from PySDK PR #298

    TEAL Blackbox in Graviton

    This PR takes over from the now defunct PySDK PR #298

    TLDR; Dry Run a Sequence of Inputs on Apps/LogicSigs, View Stats, and make Assertions on Behavior

    Please refer to the TEAL Blackbox HowTo / README for full details

    A Place to Test Our Python Repo Best Practices

    Since this is a brand new repo this is a good place to set some new conventions that our other Python repos should eventually follow also. This PR does not claim to have achieved such a state (especially in light of issues #4 and #7).

    Some conventions are implicitly advanced in this PR:

    • no requirements.txt:
      • instead, add an extras_require (e.g. extras_require={"test": "pytest==7.1.1"},) in setup.py
      • install the test-dependencies with pip install -e.[test]
    • pin internal algorand dependencies using version tags
    • (For projects that use github actions) Use act to simulate github actions locally
    • Use Makefile to summarize basic setup/testing commands, and incorporate these commands in CI configs
    • ~tests should contain all unit and integration tests (as opposed to pairing *_test.py files next to the file they are testing)~ No longer considered a "best practice"
    • test files should not be installed by default (previous bullet point makes this goal easier)
    • linter configurations should go into setup.cfg whenever possible
    • lint with black --check and flake8

    Testing

    make integration-test
    

    Simulating Github Actions Locally (on a Mac)

    make mac-gh-simulate
    

    TODO

    CI / Best Practices

    • [ ] #2
    • [x] #4
    • [x] #6
    • [ ] #7

    Features / Improvements

    • [ ] #3
    • [x] #5

    Migrate Sandbox Code from PySDK and Run All Tests

    Testing is cribbing off of PyTeal's "Run blackbox tests in CI" PR

    Team Scytale 
    opened by tzaffi 2
  • Stop using dry-run's cost

    Stop using dry-run's cost

    Cost is Deprecated in go-algorand's Dry Run

    As of go-algorand PR #3957 the dry run response transaction top-level-field cost is being deprecated. There is one usage of this field in non-deprecated graviton code.

    The good news is that new better fields BudgetConsumed and BudgetAdded are being introduced in the same PR and that the cost can be calculated as

    net cost = BudgetConsumed - BudgetAdded
    

    Action items

    • [x] go-algorand # 3957 is released
    • [x] have a PR that replaces cost with the net cost formula above and stops referencing the original cost field
    • [x] have a PR that allows accessing BudgetConsumed and BudgetAdded in the same way that cost is
    • [ ] PR's above have been merged and released
    Team Scytale 
    opened by tzaffi 1
  • Allow Modifying Transaction in Dry Run and Other Improvements

    Allow Modifying Transaction in Dry Run and Other Improvements

    Summary of Changes

    • .github/workflows/build.yml + Makefile:
      • allow testing and running jupyter notebooks
    • graviton/blackbox.py:
      • pass mypy
      • allow specifying transaction params into dry-runs
    • graviton/dryrun.py:
      • pass mypy
    • graviton/deprecated_dry_run.py: new module that contains functionality mostly used by the now deprecated DryRunTestCaseMixin
    • graviton/deprecated_dryrun_mixin.py: where the now deprecated DryRunTestCaseMixin is defined
    • graviton/dryrun.py:
      • refactor to keep only the most useful portions of the original helper
      • make mypy pass
      • allow specifying transaction parameters
      • pprint() now returns a string, in addition to printing
    • graviton/invariant.py: make mypy pass
    • graviton/models.py: new module that contains lightweight models such as the App and LSig dataclasses
    • mypy.ini: needed by mypy
    • notebooks: new directory for Jupyter notebooks. It contains:
      • IMAGES.md: a static file that shows examples of 3D graphs of dry-runs
      • notebooks/notebooks_test.ipynb: explains how to test notebooks with pytest
      • notebooks/quadratic_factoring_game.ipynb: Blackbox demo
    • setup.py: new Jupyter notebooks requirements, and declaration for receiving projects that this package is typed
    • tests/integration/algod_test.py: separate out the test that algod is alive and well into a seperate integration test, for easier debugging
    • tests/integration/algod_test.py: small refactoring, mostly for mypy
    • tests/integration/dryrun_mixin_docs_test.py: refactoring mostly due to deprecations
    • tests/integration/lsig_test.py: New logic sig only test. THIS NEEDS A CLEANUP.

    adding pytest-xdist for faster integration testing.

    Comparison on github:

    • Before (58.19 secs for python 3.10)
    • After (37.64 secs for python 3.10)

    Local test comparison:

    Runniing with a single thread:

    ❯ make integration-test NUM_PROCS=1
    
     ... 
    
    ================================================================== slowest 10 durations ===================================================================
    16.47s call     tests/integration/blackbox_test.py::test_app_with_report[app_slow_fibonacci]
    8.85s call     tests/integration/blackbox_test.py::test_logicsig_with_report[lsig_slow_fibonacci]
    5.03s call     tests/integration/blackbox_test.py::test_logicsig_with_report[lsig_string_mult]
    4.83s call     tests/integration/blackbox_test.py::test_app_with_report[app_string_mult]
    4.70s call     tests/integration/lsig_test.py::test_factorizer_game_version_report[V4]
    4.25s call     tests/integration/lsig_test.py::test_factorizer_game_version_report[V3]
    3.90s call     tests/integration/lsig_test.py::test_factorizer_report_with_pymnt
    3.56s call     tests/integration/lsig_test.py::test_factorizer_game_version_report[V2]
    2.43s call     tests/integration/lsig_test.py::test_factorizer_game_version_report[V1]
    1.49s call     tests/integration/dryrun_mixin_docs_test.py::ExampleTestCase::test_factorial
    ========= 1737 passed in 82.38s (0:01:22) ========= 
    

    With

    ❯ make integration-test
    
    ...
    
    ================================================================== slowest 10 durations ===================================================================
    38.58s call     tests/integration/blackbox_test.py::test_app_with_report[app_slow_fibonacci]
    25.53s call     tests/integration/blackbox_test.py::test_logicsig_with_report[lsig_slow_fibonacci]
    19.45s call     tests/integration/lsig_test.py::test_factorizer_game_version_report[V4]
    18.16s call     tests/integration/lsig_test.py::test_factorizer_game_version_report[V3]
    18.12s call     tests/integration/blackbox_test.py::test_app_with_report[app_string_mult]
    16.77s call     tests/integration/blackbox_test.py::test_logicsig_with_report[lsig_string_mult]
    6.77s call     tests/integration/dryrun_mixin_docs_test.py::ExampleTestCase::test_factorial
    5.49s call     tests/integration/lsig_test.py::test_factorizer_report_with_pymnt
    4.59s call     tests/integration/lsig_test.py::test_factorizer_game_version_report[V1]
    3.27s call     tests/integration/lsig_test.py::test_factorizer_game_version_report[V2]
    ========= 1737 passed in 44.31s =========
    
    opened by tzaffi 1
  • Enable Running Blackbox Testing using the Offline Version of Dryrun

    Enable Running Blackbox Testing using the Offline Version of Dryrun

    The goal clerk dryrun command (in opposition to the goal clerk dryrun-remote) is in theory capable of running dry runs without an actual node running. If we use this functionality, we could potentially save on most of the startup times of the C.I. in this repo (and pyteal as well). In theory, this would work as follows:

    1. add offline option to executions: e.g. DryRunExecutor.execute_one_dryrun(offline=True, ...)
    2. this delegates to an os-level process goal clerk dryrun ...
    3. the response should come back as a JSON
    4. the response's transactions are then consumed as usual by blackbox.DryRunInspctor
    5. inspections and assertions proceed as in the current approach
    enhancement Team Scytale 
    opened by tzaffi 1
  • Refactor `DryRunExecutor`

    Refactor `DryRunExecutor`

    TODO: break up the PR so the following is no longer a problem

    The diff in graviton_blackbox.py is difficult to read through. Instead of looking at the diff, I encourage looking at the actual code. Additionally, this is a testing library, and therefore (IMO) we can gain most of the confidence by looking at the resulting tests both here and in the companion pyteal PR.

    Former PR

    #44

    Issues Addressed

    • #38
    • #40

    Summary of changes

    • graviton/blackbox.py - this one's hard to grok because I reordered the classes. In addition:
      • Introducing class DryRunTransactionParams for better grouping of some variables
      • Trimming stale comments
      • class DryRunExecutor:
        • Removed all the static dryrun_* methods and consolidated functionality as follows:
        • It is now expected that the user will instantiate a DryRunExecutor object and call run() on it. Convenience methods run_one() and run_sequence() are also provided, and these have better type guarantees.
    • *_test.py and quadratic_factoring_game.ipynb - Migrating all the tests to use run_one() and run_sequence() methods (except for the usage of AbiContractExecutor.dry_run_on_sequence() which remains unaffected)

    TODO's

    • [ ] Address @michaeldiamant comments in #42 concerning an untested pathway and a suggested patch.
    opened by tzaffi 0
  • Refactor `DryRunExecutor`

    Refactor `DryRunExecutor`

    Problems Summary

    Too many executing methods

    See below for a list of DryRunExecutor methods that allow executing dryruns. It is cumbersome and confusing to have so many methods that basically do the same thing. Ideally, it would be nice to have a single method with the following API:

    class DryRunExecutor:
        @singledispatch
        @classmethod
        def execute(
                cls: self,
                algod: AlgodClient,
                program: str,
                input: Any,
                *, 
                mode: ExecutionMode = ExecutionMode.Application,
                abi_method_signature: Optional[str] = None,
                ... several more params such as sender, sp, is_app_create, accounts ...
            ):
                raise NotImplementedError("Implement execute method")
    

    This makes use of functools singledispatch decorator

    Inconsistent abi-type handling

    Currently, graviton's dry run execution are inconsistent in how abi-information is handled. Some allow abi_argument_types and abi_return_types to be provided while some also allow abi_method_signature to be provided. The last parameter includes all the information that abi_argument_types and abi_return_types provides and therefore it is confusing to provide all the parameters.

    After an investigation into the usage of dry run execution in PyTeal, it became apparent that in all relevant situations, an ABIReturnSubroutine object is available for inspection, and it comes with a method method_signature() which could be used to populate an abi_method_signature parameter for dry run execution.

    Action Items

    Streamline the dry run execution API by refactoring the dry run executing methods as follows:

    • [x] remove parameter abi_argument_types
    • [x] remove parameter abi_return_type
    • [x] add parameter abi_method_signature
    • [x] ~make all the current dry run executing methods private~ these have been deleted
    • [x] ~unify into a single execute() function using @singledispatch and @process.register to dispatch via input's type (Further investigation is required here. It may not be possible given the nesting of possible inputs (list[tuple] ... etc .... We may also prefer a multipledispatch approach taking into account the mode parameter's type. It may also be infeasible to dispatch directly and therefore we might need to match directly and delegate.)~ This didn't totally work out. However, we've unified everything into a run() method, with 2 companion convenience methods run_one() and run_sequence()
    • [x] prepare a PyTeal PR which adapts to this new API (https://github.com/algorand/pyteal/pull/628)
    • [ ] refactor supress_abi (not done)

    List of dry run executing methods for refactoring

    • [x] DryRunExecutor.execute_one_dryrun()
    • [x] DryRunExecutor.dryrun_logicsig()
    • [x] DryRunExecutor.dryrun_app()
    • [x] DryRunExecutor.dryrun_logicsig_on_sequence()
    • [x] DryRunExecutor.dryrun_multiapps_on_sequence()
    • [x] DryRunExecutor.dryrun_app_pair_on_sequence()
    • [x] ABIContractExecutor.dryrun_app_on_sequence()
    Team Scytale 
    opened by tzaffi 0
  • Add updated budget info to `report()`

    Add updated budget info to `report()`

    Summary

    Since #33 we have better visibility into program budget via budget_added and budget_consumed. However, these weren't added to the report() function. E.g., part of a recent report looked like had a TXN AS ROW missing this info:

        TXN AS ROW: {' Run': 0, ' cost': -2009, ' last_log': '`0000000000011950', ' final_message': 'PASS', ' Status': 'PASS', 'steps': 89, ' top_of_stack': 72016, 'max_stack_height': 3, '[email protected]': 72016, '[email protected]': 3}
    

    Action Item

    • [x] Bring budget_added and budget_consumed into csv_row()
    opened by tzaffi 0
  • Releases: Source distribution bundles extraneous artifacts

    Releases: Source distribution bundles extraneous artifacts

    Like https://github.com/algorand/pyteal/issues/610 and https://github.com/algorand/py-algorand-sdk/issues/408, graviton bundles extra artifacts into its source distribution (e.g. tests). The story's request is to limit the source distribution to graviton.

    Team Scytale Infrastructure 
    opened by michaeldiamant 0
  • Tech Debt: Refactor `DryRunInspector.dig` and `DryRunInspector.extract*` methods

    Tech Debt: Refactor `DryRunInspector.dig` and `DryRunInspector.extract*` methods

    There are a bunch of violations of D.R.Y. in these methods. This deserves a re-evaluation with a bias towards removing the extract* methods if possible.

    Team Scytale 
    opened by tzaffi 0
Releases(v0.7.0)
  • v0.7.0(Jan 3, 2023)

    What's Changed

    • Add ability to assert identical functionality for teal programs/methods by @tzaffi in https://github.com/algorand/graviton/pull/36
    • Bugfix: error message changed due to boxes merge by @tzaffi in https://github.com/algorand/graviton/pull/41
    • Tech Debt PR Including Release Version Bump by @tzaffi in https://github.com/algorand/graviton/pull/42

    Full Changelog: https://github.com/algorand/graviton/compare/v0.5.0...v0.7.0

    Source code(tar.gz)
    Source code(zip)
  • v0.6.0(Dec 14, 2022)

    What's Changed

    • Add ability to assert identical functionality for teal programs/methods by @tzaffi in https://github.com/algorand/graviton/pull/36
    • Bugfix: error message changed due to boxes merge by @tzaffi in https://github.com/algorand/graviton/pull/41

    Full Changelog: https://github.com/algorand/graviton/compare/v0.5.0...v0.6.0

    Source code(tar.gz)
    Source code(zip)
  • v0.5.0(Nov 8, 2022)

    What's Changed

    • Adding graviton logo and badges by @aorumbayev in https://github.com/algorand/graviton/pull/27
    • Dryrun cost by @tzaffi in https://github.com/algorand/graviton/pull/33
    • Pre v0.5.0 Tweaks by @tzaffi in https://github.com/algorand/graviton/pull/34
    • sort the changelog by @tzaffi in https://github.com/algorand/graviton/pull/35

    New Contributors

    • @aorumbayev made their first contribution in https://github.com/algorand/graviton/pull/27

    Full Changelog: https://github.com/algorand/graviton/compare/v0.4.0...v0.5.0

    Source code(tar.gz)
    Source code(zip)
Owner
Algorand
Algorand is a scalable, secure and decentralized digital currency and transactions platform.
Algorand
Implementation of popular SOTA self-supervised learning algorithms as Fastai Callbacks.

Self Supervised Learning with Fastai Implementation of popular SOTA self-supervised learning algorithms as Fastai Callbacks. Install pip install self-

Kerem Turgutlu 276 Dec 23, 2022
The Official Implementation of the ICCV-2021 Paper: Semantically Coherent Out-of-Distribution Detection.

SCOOD-UDG (ICCV 2021) This repository is the official implementation of the paper: Semantically Coherent Out-of-Distribution Detection Jingkang Yang,

Jake YANG 62 Nov 21, 2022
🌊 Online machine learning in Python

In a nutshell River is a Python library for online machine learning. It is the result of a merger between creme and scikit-multiflow. River's ambition

OnlineML 4k Jan 02, 2023
Code release for DS-NeRF (Depth-supervised Neural Radiance Fields)

Depth-supervised NeRF: Fewer Views and Faster Training for Free Project | Paper | YouTube Pytorch implementation of our method for learning neural rad

524 Jan 08, 2023
β€œData Augmentation for Cross-Domain Named Entity Recognition” (EMNLP 2021)

Data Augmentation for Cross-Domain Named Entity Recognition Authors: Shuguang Chen, Gustavo Aguilar, Leonardo Neves and Thamar Solorio This repository

<a href=[email protected]"> 18 Sep 10, 2022
ResNEsts and DenseNEsts: Block-based DNN Models with Improved Representation Guarantees

ResNEsts and DenseNEsts: Block-based DNN Models with Improved Representation Guarantees This repository is the official implementation of the empirica

Kuan-Lin (Jason) Chen 2 Oct 02, 2022
This repo contains research materials released by members of the Google Brain team in Tokyo.

Brain Tokyo Workshop 🧠 πŸ—Ό This repo contains research materials released by members of the Google Brain team in Tokyo. Past Projects Weight Agnostic

Google 1.2k Jan 02, 2023
Differentiable Quantum Chemistry (only Differentiable Density Functional Theory and Hartree Fock at the moment)

DQC: Differentiable Quantum Chemistry Differentiable quantum chemistry package. Currently only support differentiable density functional theory (DFT)

75 Dec 02, 2022
LoveDA: A Remote Sensing Land-Cover Dataset for Domain Adaptive Semantic Segmentation

LoveDA: A Remote Sensing Land-Cover Dataset for Domain Adaptive Semantic Segmentation by Junjue Wang, Zhuo Zheng, Ailong Ma, Xiaoyan Lu, and Yanfei Zh

Payphone 8 Nov 21, 2022
A Repository of Community-Driven Natural Instructions

A Repository of Community-Driven Natural Instructions TLDR; this repository maintains a community effort to create a large collection of tasks and the

AI2 244 Jan 04, 2023
Lightweight Face Image Quality Assessment

LightQNet This is a demo code of training and testing [LightQNet] using Tensorflow. Uncertainty Losses: IDQ loss PCNet loss Uncertainty Networks: Mobi

Kaen 5 Nov 18, 2022
Learnable Motion Coherence for Correspondence Pruning

Learnable Motion Coherence for Correspondence Pruning Yuan Liu, Lingjie Liu, Cheng Lin, Zhen Dong, Wenping Wang Project Page Any questions or discussi

liuyuan 41 Nov 30, 2022
Coded illumination for improved lensless imaging

CodedCam Coded Illumination for Improved Lensless Imaging Paper | Supplementary results | Data and Code are available. Coded illumination for improved

Computational Sensing and Information Processing Lab 1 Nov 29, 2021
Code artifacts for the submission "Mind the Gap! A Study on the Transferability of Virtual vs Physical-world Testing of Autonomous Driving Systems"

Code Artifacts Code artifacts for the submission "Mind the Gap! A Study on the Transferability of Virtual vs Physical-world Testing of Autonomous Driv

Andrea Stocco 2 Aug 24, 2022
StyleGAN-NADA: CLIP-Guided Domain Adaptation of Image Generators

StyleGAN-NADA: CLIP-Guided Domain Adaptation of Image Generators [Project Website] [Replicate.ai Project] StyleGAN-NADA: CLIP-Guided Domain Adaptation

992 Dec 30, 2022
ReGAN: Sequence GAN using RE[INFORCE|LAX|BAR] based PG estimators

Sequence Generation with GANs trained by Gradient Estimation Requirements: PyTorch v0.3 Python 3.6 CUDA 9.1 (For GPU) Origin The idea is from paper Se

40 Nov 03, 2022
Breaching - Breaching privacy in federated learning scenarios for vision and text

Breaching - A Framework for Attacks against Privacy in Federated Learning This P

Jonas Geiping 139 Jan 03, 2023
A DCGAN to generate anime faces using custom mined dataset

Anime-Face-GAN-Keras A DCGAN to generate anime faces using custom dataset in Keras. Dataset The dataset is created by crawling anime database websites

Pavitrakumar P 190 Jan 03, 2023
Notes taking website build with Docker + Django + React.

Notes website. Try it in browser! / But how to run? Description. This is monorepository with notes website. Website provides web interface for creatin

Kirill Zhosul 2 Jul 27, 2022
A whale detector design for the Kaggle whale-detector challenge!

CNN (InceptionV1) + STFT based Whale Detection Algorithm So, this repository is my PyTorch solution for the Kaggle whale-detection challenge. The obje

Tarin Ziyaee 92 Sep 28, 2021