You're trying out settings for a model. The starter code has train(depth, seed, rate=0.1), which just describes the run as text.
Task: write run_all(base, changes).
base is a dictionary of starting settings, like {"depth": 3, "seed": 0}.changes is a list of dictionaries. Each one says which settings to change for one run.base, with the change's values on top. Then call train with those settings by name.train gave back, one per change, in order.base itself — each run starts again from base.