Release 0.7.1

This version was released on Dec 5, 2020.

Enhancements

Command completion

Install command completion for the current shell by running guild completion. Supported shells: bash, zsh, and fish.

Tagging

Tags are a formal construct in 0.7.1. When you generate a run, you can assign one or more tags using the -t, --tag option. Tags can be used when filtering runs using the -ft, --tag option.

example

Generate a run with the blue tag:

guild run --tag blue

Tags are included in default run labels.

Filter runs using the blue tag (multiple tags can be specified to expand the results):

guild runs --tag blue

Tags can be added and removed using the tag command.

Add a blue tag to the latest run:

guild tag -a blue

Remove the blue tag:

guild tag -d blue

Comments

Guild 0.7.1 provides support for adding comments to runs. Refer to comment command help for details.

example

Add a comment to a new run:

guild run --comment "Testing different kernels"

View run comments from runs list:

guild runs list --comments

View run comments from runs info:

guild runs info --comments

Filter runs containing comment text:

guild runs --comment kernels

Add a comment to an existing run:

guild comment [RUN]

Delete a comment:

guild comment [RUN] --delete INDEX

Set breakpoints for a run

Guild 0.7.1 supports breakpoints for Python based operations using three different methods:

  • Break at a specific location — either at a module line number or at a function — with --break
  • Break on error with --break-on-error

Use --break 1 to break at the start of the main Python module.

Option to show all scalar summaries

The --all-scalars option to guild runs info now shows all scalar summaries, not just the last value.

example
guild runs info --all-scalars
id: 71a309bdb7d7479089d9b96daaf04e7c
operation: train
...
scalars:
  accuracy:
    avg: 0.955700 (step 3)
    first: 0.930400 (step 1)
    last: 0.971800 (step 2)
    max: 0.971800 (step 1)
    min: 0.930400 (step 1)
    total: 2.867100 (step 3)
  loss:
    avg: 0.145833 (step 3)
    first: 0.236100 (step 1)
    last: 0.088800 (step 2)
    max: 0.236100 (step 2)
    min: 0.088800 (step 2)
    total: 0.437500 (step 3)

Export all scalar values for all steps #209

Guild supports exporting scalars for selected runs using a new --export-scalars option for guild tensorboard.

example
guild tensorboard --export-scalars scalars.csv

Use the special path - (dash) to print to standard output.

Support for doctest style project tests

0.7.1 introduces support for running a doctest file using guild check. This is used to verify issue resolution in https://github.com/guildai/issue-resolution.

Python 3.8 support on Windows

Pre-compiled binaries are available for Python 3.8 on Windows.

New --system-site-packages option for init command

Use --system-site-packages option with guild init to make system site Python packages available within the environment. This can be used to save disk space and reduce the time to create the virtual environment.

Support latest versions of scikit-learn

0.7.0 was limited to support versions of scikit-learn prior to 0.23.

Support for list value args #226

Flags support arg-split attribute that lets you split a string flag argument into a list.

Fixes

Guild view not able to handle infinity and nan scalar values #241

Unwanted type casting of FLAG values #210

NaN scalar logged in tensorboard would crash guild runs info #211

Queues compete with batch operations to start staged runs #215

Guild stops on trial error when using Skopt based optimizers #225

Time column in guild.ipy stored as Pandas timedelta #243

Breaking Change Code that relies on time being a string will break with version 0.7.1. To convert values to string use Python’s built-in str function. See pandas.Timedelta for details on the new column type.

Fixes to sync

A number of issues with the sync command are resolved.

2 Likes