Comments (6)
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.
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.
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.
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.
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.
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)
- Can't install package HOT 4
- suspected memory leak HOT 8
- How to train an agent in one environment and use it on another slightly different envoirnment HOT 3
- dynaq agent HOT 1
- how to reproduce DQN nature paper? HOT 7
- compress frames HOT 2
- n_steps dqn performs worse. bug? HOT 1
- support for new spaces HOT 2
- PPO for lunar lander [BUG] HOT 10
- Multi modal state support HOT 1
- Save and Load Agent for the Second Time HOT 2
- 'Taxi-v3' error: "ValueError: too many values to unpack (expected 4)" HOT 2
- TypeError: can't convert np.ndarray of type numpy.object_. The only supported types are: float64, float32, float16, complex64, complex128, int64, int32, int16, int8, uint8, and bool. HOT 2
- SAC postload optimizer for alpha HOT 2
- Unable to tun atari_dqn.py file in examples HOT 5
- Python 3.11 support HOT 2
- Suggestion: Add median to compute_metrics
- [solvers/dynamic_programming] Use np.linalg.solve instead of np.inv HOT 2
- [requirements.txt] Missing requirement for OpenAI gym HOT 4
- [Categorical DQN/Rainbow] Inconsistent behavior of Categorical DQN for an even number of atoms
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mushroom-rl.