SEML: Slurm Experiment Management Library
seml
wouldn't output anything to the console if SSH forward were used.typer
.seml
via pip install seml[ssh_forward]
.seml configure --ssh_forward
stash_all_py_files
to the seml
configuration block to stash all python files within the current directory (instead of only stashing the imported ones).seml.experiment.Experiment
directly from seml
.seml
now provides template(s), if you want to initialize a new project simply run seml project init <project_name>
and a new folder project_name
will be created with sensible defaults. List available templates via seml project list-templates
.
SETTINGS.EXPERIMENT.TERMINAL_WIDTH
.seml.get_results
print-output
.sacred.Experiment
has been deprecated. Please use seml.experiment.Experiment
going forward. See https://github.com/TUM-DAML/seml/blob/master/examples/example_experiment.py
seml.experiment.Experiment
already includes the common MongoDB, logging and experiment statistics collection setupsettings.py
or for a specific experiment with seml.experiment.Experiment(capture_output=True)
.seml <col> print-output
: print experiment outputs directly via CLI. This command first attempts to gather the output via the slurm log file. If that fails it will search for the correct log within the MongoDB.seml --version
old
import sacred
import seml
ex = sacred.Experiment()
seml.setup_logger(ex)
@ex.post_run_hook
def collect_stats(_run):
seml.collect_exp_stats(_run)
@ex.config
def config():
overwrite = None
db_collection = None
if db_collection is not None:
ex.observers.append(
seml.create_mongodb_observer(db_collection, overwrite=overwrite)
)
new
from seml.experiment import Experiment
ex = Experiment()
seml drop <regex>
to delete all collections matching the regex pattern. (be careful with this one)seml
's CLI has been reimplemented for better usability, scalability, and optics. (#116)
rich
for pretty printing.seml
now supports sacred's named configurations (#119)
$config[_<optional_name>]: str | {'name': str, 'priority': int}
. Use the optional priority to indicate the import order. The optional name allows for importing multiple configs.seml
now supports descriptions! (#118)
seml.description
in your yaml
files to set descriptions.seml collection description set
status
, list
and print-fail-trace
seml <collection> add *.yaml
seml <collection> add config1.yaml config2.yaml
seml list <regex>
to list the state of all collections matching the regex (if left empty, all collections will be shown). (#114)
seml <collection> print-fail-trace
to print all fail traces in a collection. (#114)
status
and print-fail-trace
(#118)
seml collection status -p config.dataset -p config.model
seml --install-completion {shell}
seml
will complete collection names, command names, and flags.seml configure
has been adjusted to incorporate more configurations in the future. For now, the default behavior is identical.seml <collection> delete
. (#100)seml
is now faster
time seml
: 1.2s - 2stime seml
: 0.5 - 0.8smunch
and sacred
: ~0.3sgrid
.TMP_DIRECTORY
in settings.py
(#94)directConnection
(ca34fbf52b552cab4b7a6811d750f4f1c233175c)seed
parameter (#93)sbatch
/ srun
fails (#77).numpy.py
and raise an error accordingly (#78).TensorFlow >= 2.5
pymongo >= 4
(#76)seml jupyter
(#86)max_jobs_per_batch
config option.reload-sources
command for updating the source code of specified experiments (#57, #64)seml coll cancel reset reload-sources start
(#61)-y
option to confirm changes directly (#62)max_simultaneous_jobs
config option that limits the number of simultaneously running jobs per job arrayrepr
and shlex
for proper shell-escaping and handling of parameter edge cases (#51, #53, #69)CONDA_DEFAULT_ENV
is not defined