Git Product home page Git Product logo

Comments (6)

boris-il-forte avatar boris-il-forte commented on July 19, 2024

Given that there's an assertion, the behavior is actually the desired one.
Q learning is a step-based approach, and while the episodic version is possible to implement we deliberately chose not to due to simplicity.
The implementation of an episode base q-learning is trivial, and anyone can do it.

Please, avoid reporting bugs that are obviously invalid: if we put an assert there's a reason and it's not an error.

from mushroom-rl.

RylanSchaeffer avatar RylanSchaeffer commented on July 19, 2024

What is the point of making a library, restricting how agents can behave/learn and then telling people who ask for those limitations to be removed to go away?

I thought this was a cool library to try using for my research. What's the point in open-sourcing something and asking others to use it if you just tell them to go away?

from mushroom-rl.

boris-il-forte avatar boris-il-forte commented on July 19, 2024

We are more than open to requests and bug reports.

However, we cannot change the library following arbitrary requests from the user base, particularly if they break the design of the library. This has to do with software engineering issues: to maintain the library clean we have to impose design restrictions.

About the bug, we kindly ask to avoid reporting invalid bugs, as we are researchers with limited time and not a company. Please, in case the code throws an assertion error, the most likely reason is that we are restraining the behavior of the code on purpose.

from mushroom-rl.

RylanSchaeffer avatar RylanSchaeffer commented on July 19, 2024

Why does changing the implementation break the code? I would think there's a simple solution: remove the assert and loop over the dataset

from mushroom-rl.

RylanSchaeffer avatar RylanSchaeffer commented on July 19, 2024

the most likely reason is that we are restraining the behavior of the code on purpose.

Oh, most certainly. But from the outside, each assert is ambiguous whether it stems from the fact that (a) something cannot be done or (b) something is not yet implemented

from mushroom-rl.

boris-il-forte avatar boris-il-forte commented on July 19, 2024

In case something is not implemented, we will throw a not implemented error.

There is a reason why we put an assert, instead of a for loop: the most likely scenario is that a user will call wrongly the core function, and get an unexpected behavior from the algorithm.
In most scenarios, there's no reason to use a batch update. If the user wants to implement this behavior, it can create his own class.

The design rationale of mushroom is a clean implementation: we will not add any unnecessary options to the standard approaches. If the user wants a specific feature for an algorithm they can implement their version of the algorithm by copying the few lines of code and creating a new class.

from mushroom-rl.

Related Issues (20)

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.