Notebooks are designed for flexible, ad hoc Python development. This presents a challenge to reproducibility. Cells can be run in any order and modified at any time. How can you be certain that cell output accurately reflects the current source? Even with careful discipline, you can’t be sure that a result is consistent with the code.

Guild AI — a light weight, open source experiment tracking tool — addresses this using a simple scheme:

Execute a copy of the notebook from top-to-bottom as an experiment artifact.

The result is a notebook whose output accurately reflects its source code at the…

Image for post
Image for post
Experiments in Guild AI, screenshot by author

Guild AI is a lightweight, open source tool used to run, capture, and compare machine learning experiments.

To create an experiment, run your script with Guild AI from a command prompt:

$ guild run train.py

Guild captures a full record of your experiment.

  • Source code
  • Hyperparameters (learning rate, batch size, etc.)
  • Script output
  • Script results (accuracy, AUC, loss, etc.)
  • Generated files (saved models, data sets, plots, etc.)

Guild lets you compare results with a variety of tools including TensorBoard, HiPlot, file diff, and Guild View. Explore and compare experiments to answer questions about what ran and how it performed.

This is revised version of my 2012 essay on using small, simple functions to drive clear-headedness in programming. After seven years and 8 million new career programmers, it’s time to dust it off.

Image for post
Image for post

There are two main reasons I like Erlang:

  • The Erlang VM is an operating system for your code
  • The Erlang language encourages rigor in problem solving

I’ll be discussing the second point here.

Refactoring Using Functions

Here’s an expression I use in life:

if
joy(Activity) >= MinThreshold ->
do(Activity);
true ->
skip_it
end

This is an example of Erlang’s if expression. The true clause is effectively the else clause in…

Garrett Smith

Founder Guild AI

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store