Giter Site home page Giter Site logo

aai-institute / veriflow Goto Github PK

View Code? Open in Web Editor NEW
8.0 3.0 1.0 2.47 MB

Normalizing flows for neuro-symbolic AI

License: BSD 3-Clause "New" or "Revised" License

Python 98.71% Shell 1.29%
formal-verification neuro-symbolic-ai transferlab flows normalizing-flows research-project

veriflow's Issues

Make custom solve_triangluar optional

The custom implementation of the solve_triangular function is only necessary if onnx export is needed but is a performance bottleneck. We should make it optional to use the implementation in torch.linalg.

  • Extend solve_triangular with another argument, e.g. backend.
    • Depending on the value of the new argument, the function should either use the building implementation or call the torch implementation.
    • Set the default backend to torch.

Improve Testing

VeriFlow

  • linalg
  • networks
  • transforms
  • flows
    • Onnx export

ExpLib

  • config_parser
  • base
  • hyperopt
  • datasets

ONNX export

Implement convenience function for onnx support

Refactor documentation

Problem

  • Some of the code documentation is outdated/incomplete/inconsistent format

Todos

VeriFlow

  • linalg
  • networks
  • transforms
  • flows

ExpLib

  • config_parser
  • base
  • hyperopt
  • datasets

Low GPU utilization CUDA

GPU utilization on coda machines is low (5-15%).
There is potentially a bottleneck somewhere

  • Data handling?
  • All operations performed on gpu?
  • ???

Onnx export with LU transform not supported

Description

Calling to_onnx on a flow with LU layers raises a NotImplementedError. Reason is that the function linalg_inv is not implemented in onnx

Suggestion

A possible workaround could be to export a surrogate model with precomputed inverse matrix instead.

HyperoptExperiment with NiceFlow on mps

Problem

HyperoptExperiment fails with NiceFlow on mps devices.

Analysis

  • Verified for permutation == "half"
  • Error: Permutations seem to be not on device?!?
  • works with NiceMaskedConvFlow

Refactor Naming conventions

We should unify the class names, especially for the flow classes. Current names carry a lot of legacy baggage. Ideally, names are in line with package names.

Bug in Sampling(?) method

There seems to be an inconsistency between manually sampling from the base distribution and pushing the result through the flow and calling the sampling method.

  • If one computes the norm of a sample that was pushed backwards through the flow. The obtained norms don't seem to follow the specified norm distribution of the base distribution.
  • Sampling from the base distribution and pushing back and forth through the flow manually, however, gives the expected result.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.