question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Module Independency & Standalone Usability

See original GitHub issue

We should make sure the main avalanche modules are also usable as standalone libraries.

The Benchmarks and Extra modules already satisfy this requirement.

The Training one may be improved to work on any input data, making less assumptions as possible about the nature of the data processed.

The evaluation module and mostly the metrics are probably too difficult to use off-the-shelf at the moment as heavily integrated with the evaluation plugin. We should relax this!

What do you think?

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:8 (4 by maintainers)

github_iconTop GitHub Comments

1reaction
AntonioCartacommented, Feb 10, 2021

Regarding the strategies, maybe there is a way to make plugins more independent from the rest of avalanche. We could restrict the plugin callbacks. Instead of taking the strategy as an argument, we could explicitly pass the needed arguments. For example:

    def adapt_train_dataset(self, strategy, **kwargs):
        """
        Expands the current training set with datapoint from
        the external memory before training.
        """
        pass

becomes:

    def adapt_train_dataset(self, current_data, **kwargs):
        """
        Expands the current training set with datapoint from
        the external memory before training.
        """
        return current_data

Notice that this change would restrict the plugin’s callbacks, because they would not have access to the entire strategy state at each point. However, it would make plugins relatively separated from the rest of avalanche. It seems a good tradeoff to me. Maybe it’s even better to have explicit arguments than having the entire strategy, because you remove the risk of plugins interfering with the strategy’s state. This will make it easier to implement new plugins.

Strategy classes (BaseStrategy, JointTraining) are basic avalanche components because they glue together plugins, data streams, and loggers. I don’t see how we could make them standalone.

@vlomonaco what do you think? If you agree I can work on this.

1reaction
AntonioCartacommented, Dec 22, 2020

Ok, now I get it. Is this really a problem? StepInfo is a simple object, and we already provide a couple of methods to create scenarios given tensors. Isn’t it easier to convert the different data formats into scenarios instead of supporting every possible format inside the training module?

Maybe you want to add some other methods to make the transition between tensors and scenarios easier?

Read more comments on GitHub >

github_iconTop Results From Across the Web

US9578020B2 - Module for controlling usability of a device - Google ...
The present invention relates to a stand-alone module for controlling the usability of a device, and particularly for remotely controlling such a device....
Read more >
modular system for controlling usability of a device - Justia Patents
The present invention relates to a stand-alone module for controlling the usability of a device, locally or remotely controlling such a device.
Read more >
Make Noise modules: design, usability, theory, philosophy, etc ...
Every MN module I own is feature-rich enough for the hp already, ... I don't see how I can use my 3U as...
Read more >
Understanding Quality Attributes
Instead, it is decomposed into modules to make it understandable and to support a variety of other purposes. In this way, functionality is...
Read more >
Evaluating the Quality, Usability, and Potential Effectiveness of ...
Independent reviewers were in agreement that overall, the modules met the criteria for being quality, and usable online learning modules. However, the reviewers ......
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found