2023-01-23 22:01:16 +01:00
|
|
|
# PMLPP
|
2023-01-23 21:13:26 +01:00
|
|
|
|
2023-01-23 22:01:16 +01:00
|
|
|
This is an experimental Machine Learning module for the Pandemonium Engine.
|
2023-01-23 21:13:26 +01:00
|
|
|
|
2023-01-23 22:01:16 +01:00
|
|
|
Based on https://github.com/novak-99/MLPP .
|
2023-01-23 21:13:26 +01:00
|
|
|
|
2023-02-17 18:53:23 +01:00
|
|
|
## Status
|
|
|
|
|
|
|
|
- Reworked codestyle to match the engine's.
|
|
|
|
- Reworked classes to work well with the engine.
|
|
|
|
- Added custom MLPPVector and MLPPMatrix that store data in a single continuous array. Their downside is push back, and remove uses realloc().
|
|
|
|
- Added binds for most of the classes.
|
|
|
|
- Added unit tests.
|
|
|
|
|
|
|
|
## Todos
|
|
|
|
|
|
|
|
### Saves
|
|
|
|
|
|
|
|
Reimplement saving.
|
|
|
|
|
|
|
|
### Bind remaining methods
|
|
|
|
|
|
|
|
Go through and bind all methods. Also add properties as needed.
|
|
|
|
|
|
|
|
### Add initialization api to all classes that need it
|
|
|
|
|
|
|
|
The original library used contructors to initialize everything, but with the engine scripts can't rely on this,
|
|
|
|
make sure all classes have initializations apis, and they bail out when they are in an uninitialized state.
|
|
|
|
|
|
|
|
### Rework remaining apis.
|
|
|
|
|
|
|
|
Rework and bind the remaining apis, so they can be used from scripts.
|
|
|
|
|
|
|
|
### Error handling
|
|
|
|
|
|
|
|
Make error macros usage consistent. Also a command line option should be available that disables them for math operations.
|
|
|
|
|
|
|
|
### Crashes
|
|
|
|
|
|
|
|
There are still likely lots of crashes, find, and fix them.
|
|
|
|
|
|
|
|
### Unit tests
|
|
|
|
|
|
|
|
- Add more unit tests
|
|
|
|
- Also use the engine's own unit test module. It still needs to be fininshed, would be a good idea doing it alongside this modules's tests.
|
|
|
|
- They should only be built when you want them. Command line option: `mlpp_tests=yes`
|
|
|
|
|
|
|
|
### Old classes
|
|
|
|
|
|
|
|
- Remove all old classes once they are no longer needed.
|
|
|
|
- Old classes should only be built when you want them. Command line option: `mlpp_tests=yes` or maybe something else?
|
|
|
|
- Make old classes use old utilities.
|
|
|
|
- Remove old apis from new classes that has been ported.
|
|
|
|
|
|
|
|
### std::random
|
|
|
|
|
|
|
|
Replace remaining std::random usage with engine internals.
|
|
|
|
|
|
|
|
### Tensor
|
|
|
|
|
|
|
|
Add a tensor class. Same as MLPPVector and MLPPMatrix, except it's n-d.
|
|
|
|
|
|
|
|
### More algos
|
|
|
|
|
|
|
|
Add more machine learning algorithms.
|