Machine Learning module for the Pandemonium Engine.
Go to file
Relintai 4b62f1b303 Small tweaks. 2023-12-30 00:44:43 +01:00
doc_classes Matrix api tweaks. 2023-04-29 15:07:30 +02:00
misc/scripts Fixed typo. 2023-12-30 00:43:00 +01:00
mlpp Format all files. 2023-12-30 00:43:39 +01:00
sfw Added some of the scons files from pandmeonium. 2023-12-24 13:00:00 +01:00
src Format all files. 2023-12-30 00:43:39 +01:00
test Format all files. 2023-12-30 00:43:39 +01:00
.gitignore Experimental work on getting the module to build as a gdnative module. 2023-10-24 21:38:45 +02:00
COPYRIGHT.txt
LICENSE
README.md Updated the readme. 2023-04-25 20:47:17 +02:00
README_ORIG.md Use real_t instead of doubles. 2023-01-27 13:01:16 +01:00
SConstruct Added some of the scons files from pandmeonium. 2023-12-24 13:00:00 +01:00
SConstructGDNative Added some of the scons files from pandmeonium. 2023-12-24 13:00:00 +01:00
SCsub Removed the old classes. 2023-12-30 00:20:49 +01:00
config.py Now build old classes and build tests are command line settings. 2023-04-27 19:38:50 +02:00
gdlibrary.cpp Format all files. 2023-12-30 00:43:39 +01:00
methods.py Also added methods.py. 2023-12-24 13:00:26 +01:00
register_types.cpp Small tweaks. 2023-12-30 00:44:43 +01:00
register_types.h Small tweaks. 2023-12-30 00:44:43 +01:00

README.md

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.

Tensor

Add a tensor class. Same as MLPPVector and MLPPMatrix, except it's n-d.

More algos

Add more machine learning algorithms.