Concretely, a program is an executable (called run) that conforms
to a particular program interface determined by the domain.
Of course, the program can also include other files besides run.
Think of a program as a Java class implemented through the shell.
Basically any language. Your program will be run on a standard Linux installation with various software packages already installed. Let us know if you need a particular library or package which doesn't exist.
Either, as long as your run executable satisfies the program interface for the domain.
That being said, we recommend that you include source code.
MLcomp is designed to be collaborative, and this only works if your code is available to be downloaded by others.
Include the C++ source files with your program package that you upload to MLcomp.
Write a run script (e.g., in Bash) which compiles the source code and invokes it.
Specifically, when we call ./run construct, the C++ source files should be compiled.
See more information on the program interface.
Implement your own hyperparameter tuning inside ./run learn and MLcomp will treat it as a black box.
Implement ./run setHyperparameter x to store the hyperparameter x, which will be called before ./run learn.
If hyperparameter tuning is chosen when a run is created,
MLcomp will use the training set to perform cross-validation on x ∈ { 0.01, 0.1, 1, 10, 100 } and use the best value.
We strongly encourage users to make their code available, but we provide the option to make it private. You are given the option of choosing whether to make it publicly downloadable or not at the time of upload. You can change this setting by clicking 'Edit Program' on the program's page.
You can use the CDE tool,
which can automatically package all the libraries you need to run your program.
You can then upload the entire self-contained package onto MLcomp.
See the demo program for more information.