mirror of
https://github.com/Relintai/pmlpp.git
synced 2024-11-13 13:57:19 +01:00
82 lines
2.4 KiB
Markdown
82 lines
2.4 KiB
Markdown
# PMLPP
|
|
|
|
This is an experimental Machine Learning module for the Pandemonium Engine.
|
|
|
|
Based on https://github.com/novak-99/MLPP .
|
|
|
|
## 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.
|
|
|
|
### Tensor3D
|
|
|
|
Add a tensor3D class. Same as MLPPVector and MLPPMatrix, except it's 3d.
|
|
|
|
### Tensor
|
|
|
|
Add a tensor class. Same as MLPPVector and MLPPMatrix, except it's n-d.
|
|
|
|
### Make the api postfixes consistent
|
|
|
|
For example if we look at `substraction()`:
|
|
|
|
substraction_v -> Non allocating MLPPVector
|
|
substraction_nv -> Allocating MLPPVector
|
|
substraction_m -> Non allocating MLPPMatrix
|
|
substraction_nm -> Non allocating MLPPMatrix
|
|
substraction_vt -> Non allocating vector based tensor
|
|
substraction_nvt -> Allocating vector based tensor
|
|
substraction_t3d -> Non allocating 3d tensor
|
|
substraction_nt3d -> Allocating 3d tensor
|
|
|
|
### More algos
|
|
|
|
Add more machine learning algorithms. |