Giter VIP home page Giter VIP logo

tnmf's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

tnmf's Issues

Inconsistent flake8 errors

I am getting some flake8 errors locally that do not show up in the Github actions:

./build/lib/tnmf/tests/test_init.py:10:5: F403 'from tnmf import *' used; unable to detect undefined names
    from tnmf import *
    ^
./build/lib/tnmf/tests/test_init.py:10:5: F401 'tnmf.*' imported but unused
    from tnmf import *
    ^
1     F401 'tnmf.*' imported but unused
1     F403 'from tnmf import *' used; unable to detect undefined names
2

Inhibition based on orthogonality of partial reconstruction

Currently, the inhibition gradient is computed in a way that it suppresses neighboring activations. Intuitively, we might instead want to suppress activations that lead to overlapping atoms in the reconstruction. Thus, another inhibition mode might make sense, that ensures pairwise orthogonality of the resulting partial reconstructions.

Inhibition does not consider reconstruction mode

Presumably, the convolution, that is used to compute the inhibition gradient, does not consider the reconstruction mode. Potentially, this is not correct: At least intuitively, I would expect that for circular boundary conditions an activation at a border should suppress activations at the opposite border.

@AdrianSosic : What do you think?

Redesign fit interfaces

The current setting how the different fitting interfaces (batch, minibatch, stream) are implemented has several problems:

  • The variable naming is not consistent / misleading but cannot be changed (e.g. the streaming method also processes minibatches, but the corresponding kwargs cannot be renamed as such because the higher level fit function uses the names to differentiate between the methods).
  • Switching between the different functions is not straightforward (e.g. it requires adding an additional algorithm kwarg), which requires if-else logic in the tests.

A potential solution might be to create a higher-level abstract Algorithm class that has the current MiniBatchAlgorithm as a subclass together with others that cover the batch and streaming scenario.

Streamlit sharing demo crashes for large data

The streamlit sharing demo simply crashes when exceeding the memory resources of the provided machine. Maybe we can identify during runtime if the demo is executed locally or in the cloud. In the latter case, we could then show a hint to the user that this is the "online version" of the demo, which is running with limited resources, and prevent the execution for settings that would lead to a crash.

Need to unit-test examples and demo

Currently, we would not recognize if these fail, e.g. due to interface incompatibilities.

Easiest might be to create dummy unit tests that set matplotlib into non-interactive mode and run the examples just to check that nothing fails horribly (no result verification).

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.