Sacred Versions Save

Sacred is a tool to help you configure, organize, log and reproduce experiments developed at IDSIA.

0.7.0

7 years ago

Major feature release that breaks backwards compatibility in a few cases.

  • Feature: host info now contains information about NVIDIA GPUs (if available)
  • Feature: git integration: sacred now collects info about the git repository of the experiment (if available and if gitpython is installed)
  • Feature: new --enforce-clean flag that cancels a run if the git repository is dirty
  • Feature: added new TinyDbObserver and TinyDbReader (thanks to @MrKriss)
  • Feature: added new SqlObserver
  • Feature: added new FileStorageObserver
  • Feature: added new SlackObserver
  • Feature: added new TelegramObserver (thanks to @black-puppydog)
  • Feature: added save_config command
  • Feature: added queue flag to just queue a run instead of executing it
  • Feature: added TimeoutInterrupt to signal that a run timed out
  • Feature: experiments can now be run in Jupyter notebook, but will fail with an error by default, which can be deactivated using interactive=True
  • Feature: allow to pass unparsed commandline string to ex.run_commandline.
  • Feature: improved stdout/stderr capturing: it now also collects non-python outputs and logging.
  • Feature: observers now share the id of a run and it is available during runtime as run._id.
  • Feature: new --print_config flag to always print config first
  • Feature: added sacred.SETTINGS as a place to configure some of the behaviour
  • Feature: ConfigScopes now extract docstrings and line comments and display them when calling print_config
  • Feature: observers are now run in order of priority (settable)
  • Feature: new --name=NAME option to set the name of experiment for this run
  • Feature: the heartbeat event now stores an intermediate result (if set).
  • Feature: ENVIRONMENT variables can be captured as part of host info.
  • Feature: sped up the applying_lines_and_backfeeds stdout filter. (thanks to @remss)
  • Feature: adding resources by name (thanks to @d4nst)
  • API Change: all times are now in UTC
  • API Change: significantly changed the mongoDB layout
  • API Change: MongoObserver and FileStorageObserver now use consecutive integers as _id
  • API Change: the name passed to Experiment is now optional and defaults to the name of the file in which it was instantiated. (The name is still required for interactive mode)
  • API Change: Artifacts can now be named, and are stored by the observers under that name.
  • API Change: Experiment.run_command is deprecated in favor of run, which now also takes a command_name parameter.
  • API Change: Experiment.run now takes an options argument to add commandline-options also from python.
  • API Change: Experiment.get_experiment_info() now returns source-names as relative paths and includes a separate base_dir entry
  • Dependencies: Migrated from six to future, to avoid conflicts with old preinstalled versions of six.
  • Bugfix: fixed a problem when trying to set the loglevel to DEBUG
  • Bugfix: type conversions from None to some other type are now correctly ignored
  • Bugfix: fixed a problem with stdout capturing breaking tools that access certain attributes of sys.stdout or sys.stderr.
  • Bugfix: @main, @automain, @command and @capture now support functions with Python3 style annotations.
  • Bugfix: fixed a problem with config-docs from ingredients not being propagated
  • Bugfix: fixed setting seed to 0 being ignored

0.6.10

7 years ago

A minor release to incorporate a few bugfixes and minor features before the upcoming big 0.7 release

  • Bugfix: fixed a problem when trying to set the loglevel to DEBUG
  • Bugfix: fixed a random crash of the heartbeat thread (see #101).
  • Feature: added --force/-f option to disable errors and warnings concerning suspicious changes. (thanks to Yannic Kilcher)
  • Feature: experiments can now be run in Jupyter notebook, but will fail with an error by default, which can be deactivated using interactive=True
  • Feature: added support for adding a captured out filter, and a filter that and applies backspaces and linefeeds before saving like a terminal would. (thanks to Kevin McGuinness)

0.6.8

8 years ago

0.6.8 (2016-01-14)

  • Feature: Added automatic conversion of pandas datastructures in the custom info dict to json-format in the MongoObserver.
  • Feature: Fail if a new config entry is added but it is not used anywhere
  • Feature: Added a warning if no observers were added to the experiment. Added also an unobserved keyword to commands and a --unobserved commandline option to silence that warning
  • Feature: Split the debug flag -d into two flags: -d now only disables stacktrace filtering, while -D adds post-mortem debugging.
  • API change: renamed named_configs_to_use kwarg in ex.run_command method to named_configs
  • API change: changed the automatic conversion of numpy arrays in the MongoObserver from pickle to human readable nested lists.
  • Bugfix: Fixed a problem with debugging experiments.
  • Bugfix: Fixed a problem with numpy datatypes in the configuration
  • Bugfix: More helpful error messages when using return or yield in a config scope
  • Bugfix: Be more helpful when using -m/--mongo_db and pymongo is not installed