ModelMark
This tool will help you to test NN models against each other, and form a detailed report that is easy to embed to a website.
Model evaluation report example:
About:
At each testing run iteration, modelmark:
1) Selects next dataset, input/output len, model and seed
2) Seeds the generators for reproducibility
3) Creates the loader, model and tester objects
4) Trains the model for E epochs, restores the state with the least validation loss
5) Tracks the GFLOPs, Memory, Time - all AVG over whole test
5) Evaluates the model on dataset with metrics from configuration file
6) Stores the mean result over S runs
That way, the more seeds you run, the more "fair" the results are.
Finally, modelmark will form the report with all the testing results, training stats and your machine metadata.
More on training stats:
Time - average time per epoch
Params - total number of model params
GFLOPs - average per batch
Peak Memory - max per training iteration
Test consists of F * O * M * S runs, where:
F - number of dataset files in the config (e.g. ["ETTh1" : ..., "Weather" : ...] - means F = 2)
O - number of input/output sizes (e.g. [32, 64, 128] means O = 3)
M - number of models (e.g. ["Linear" : ..., "LSTM" : ...] - means M = 2)
S - number of seeds (e.g. [42, 43, 44] - means S = 2)
Requirements:
OS: Windows or Linux
Python: 3.12+
Usage:
1) Install the package
pip install "modelmark @ git+https://github.com/gloptim77/ModelMark.git"
2) Run the initialization in an empty folder
modelmark -t init
3.1) It will create two folders "modelmark_files" and "models"
In modelmark_files/config.py there are 3 main configs:
model_config = {...} - Models hyperparameters (number of layers, hidden dim, kernel size, etc.)
data_config = {...} - Dataset parameters (path to file, input/output features, train/val ratios, etc.)
test_config = {...} - Testing options (optimizer, loss criterion, metrics, learning rate, etc.)
3.2) (Optional) download the ETT dataset files
modelmark -t load
4) When your config, model and data are ready, you can run the testing
modelmark -t run
5) When the test is over, report results will be in files "result.html" and "result.png"
Example of the model: "src/modelmark/models/linear.py"
Example of the config: "src/modelmark/config.py"
You will find the detailed config example with description at src/modelmark/config.py.
Example Linear model with detailed description at src/modelmark/models/linear.py.
You can change the config and add your model files to suit your test requirements.
(But make sure that config and models are compatible)
If you have questions or want to check the source code, go to ModelMark Github.
Troubleshooting
-
If something doesn't work
-
Please open an issue and attach your application logs (found at "modelmark_files/modelmark.log") so I can help you troubleshoot.
-
Try to restart
modelmark -t restart
-
Try to manually delete "modelmark_files" and return to Usage->2)
-
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file modelmark-0.1.1.tar.gz.
File metadata
- Download URL: modelmark-0.1.1.tar.gz
- Upload date:
- Size: 23.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a37d97db5d4f95d27f897d3eea88e4dc8b9863c5e8666cbd98b06277dd380857
|
|
| MD5 |
b5b21664b4bce5dfa9ba648b7dbfc3bc
|
|
| BLAKE2b-256 |
1ca0aea70565c26657c6a93be284ecfec6fa6a916156e87b9397d8ab25fdc5fd
|
Provenance
The following attestation bundles were made for modelmark-0.1.1.tar.gz:
Publisher:
release.yml on gloptim77/ModelMark
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
modelmark-0.1.1.tar.gz -
Subject digest:
a37d97db5d4f95d27f897d3eea88e4dc8b9863c5e8666cbd98b06277dd380857 - Sigstore transparency entry: 2717033802
- Sigstore integration time:
-
Permalink:
gloptim77/ModelMark@1f5b79d06b7d48337ece8e04474df3f27130ac89 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/gloptim77
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1f5b79d06b7d48337ece8e04474df3f27130ac89 -
Trigger Event:
release
-
Statement type:
File details
Details for the file modelmark-0.1.1-py3-none-any.whl.
File metadata
- Download URL: modelmark-0.1.1-py3-none-any.whl
- Upload date:
- Size: 28.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d16c07996d21596d25e1e41ee48fba4c784aece4f425a29e6e20c03b8334005
|
|
| MD5 |
6e8fa8a58408285cd40fc1010f6a165c
|
|
| BLAKE2b-256 |
2f79632209b9c510443a44d33cb1be35ced22e89d6e12986bcbdcc380180988a
|
Provenance
The following attestation bundles were made for modelmark-0.1.1-py3-none-any.whl:
Publisher:
release.yml on gloptim77/ModelMark
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
modelmark-0.1.1-py3-none-any.whl -
Subject digest:
5d16c07996d21596d25e1e41ee48fba4c784aece4f425a29e6e20c03b8334005 - Sigstore transparency entry: 2717035355
- Sigstore integration time:
-
Permalink:
gloptim77/ModelMark@1f5b79d06b7d48337ece8e04474df3f27130ac89 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/gloptim77
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1f5b79d06b7d48337ece8e04474df3f27130ac89 -
Trigger Event:
release
-
Statement type: