{ "cells": [ { "attachments": {}, "cell_type": "markdown", "id": "1dd265b7", "metadata": {}, "source": [ "(tune-analysis-guide)=\n", "\n", "# Analyzing Tune Experiment Results\n", "\n", "In this guide, we'll walk through some common workflows of what analysis you might want to perform after running your Tune experiment with `tuner.fit()`.\n", "\n", "1. Loading Tune experiment results from a directory\n", "2. Basic *experiment-level* analysis: get a quick overview of how trials performed\n", "3. Basic *trial-level* analysis: access individual trial hyperparameter configs and last reported metrics\n", "4. Plotting the entire history of reported metrics for a trial\n", "5. Accessing saved checkpoints (assuming that you have enabled checkpointing) and loading into a model for test inference\n", "\n", "```python\n", "result_grid: ResultGrid = tuner.fit()\n", "best_result: Result = result_grid.get_best_result()\n", "```\n", "\n", "The output of `tuner.fit()` is a [`ResultGrid`](result-grid-docstring), which is a collection of [`Result`](result-docstring) objects. See the linked documentation references for [`ResultGrid`](result-grid-docstring) and [`Result`](result-docstring) for more details on what attributes are available.\n", "\n", "Let's start by performing a hyperparameter search with the MNIST PyTorch example. The training function is defined {doc}`here `, and we pass it into a `Tuner` to start running the trials in parallel." ] }, { "cell_type": "code", "execution_count": 1, "id": "8479d7d2", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "
\n", "
\n", "

Tune Status

\n", " \n", "\n", "\n", "\n", "\n", "\n", "
Current time:2023-08-25 17:42:39
Running for: 00:00:12.43
Memory: 27.0/64.0 GiB
\n", "
\n", "
\n", "
\n", "

System Info

\n", " Using FIFO scheduling algorithm.
Logical resource usage: 1.0/10 CPUs, 0/0 GPUs\n", "
\n", " \n", "
\n", "
\n", "
\n", "

Trial Status

\n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
Trial name status loc lr momentum acc iter total time (s)
train_mnist_6e465_00000TERMINATED127.0.0.1:949030.0188636 0.8 0.925 100 8.81282
train_mnist_6e465_00001TERMINATED127.0.0.1:949040.0104137 0.9 0.9625 100 8.6819
train_mnist_6e465_00002TERMINATED127.0.0.1:949050.00102317 0.990.953125 100 8.67491
train_mnist_6e465_00003TERMINATED127.0.0.1:949060.0103929 0.8 0.94375 100 8.92996
train_mnist_6e465_00004TERMINATED127.0.0.1:949070.00808686 0.9 0.95625 100 8.75311
train_mnist_6e465_00005TERMINATED127.0.0.1:949080.00172525 0.990.95625 100 8.76523
train_mnist_6e465_00006TERMINATED127.0.0.1:949090.0507692 0.8 0.946875 100 8.94565
train_mnist_6e465_00007TERMINATED127.0.0.1:949100.00978134 0.9 0.965625 100 8.77776
train_mnist_6e465_00008TERMINATED127.0.0.1:949110.00368709 0.990.934375 100 8.8495
\n", "
\n", "
\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "2023-08-25 17:42:27,603\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "\u001b[2m\u001b[36m(ImplicitFunc pid=94906)\u001b[0m StorageContext on SESSION (rank=None):\n", "\u001b[2m\u001b[36m(ImplicitFunc pid=94906)\u001b[0m StorageContext<\n", "\u001b[2m\u001b[36m(ImplicitFunc pid=94906)\u001b[0m storage_path=/tmp/ray_results\n", "\u001b[2m\u001b[36m(ImplicitFunc pid=94906)\u001b[0m storage_local_path=/Users/justin/ray_results\n", "\u001b[2m\u001b[36m(ImplicitFunc pid=94906)\u001b[0m storage_filesystem=\n", "\u001b[2m\u001b[36m(ImplicitFunc pid=94906)\u001b[0m storage_fs_path=/tmp/ray_results\n", "\u001b[2m\u001b[36m(ImplicitFunc pid=94906)\u001b[0m experiment_dir_name=tune_analyzing_results\n", "\u001b[2m\u001b[36m(ImplicitFunc pid=94906)\u001b[0m trial_dir_name=train_mnist_6e465_00003_3_lr=0.0104,momentum=0.8000_2023-08-25_17-42-27\n", "\u001b[2m\u001b[36m(ImplicitFunc pid=94906)\u001b[0m current_checkpoint_index=0\n", "\u001b[2m\u001b[36m(ImplicitFunc pid=94906)\u001b[0m >\n", "\u001b[2m\u001b[36m(train_mnist pid=94907)\u001b[0m Checkpoint successfully created at: Checkpoint(filesystem=local, path=/tmp/ray_results/tune_analyzing_results/train_mnist_6e465_00004_4_lr=0.0081,momentum=0.9000_2023-08-25_17-42-27/checkpoint_000000)\n", "2023-08-25 17:42:30,460\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "2023-08-25 17:42:30,868\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "2023-08-25 17:42:31,252\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "2023-08-25 17:42:31,684\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "2023-08-25 17:42:32,050\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "2023-08-25 17:42:32,422\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "2023-08-25 17:42:32,836\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "2023-08-25 17:42:33,238\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "2023-08-25 17:42:33,599\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "2023-08-25 17:42:33,987\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "2023-08-25 17:42:34,358\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "2023-08-25 17:42:34,768\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "\u001b[2m\u001b[36m(ImplicitFunc pid=94905)\u001b[0m StorageContext on SESSION (rank=None):\u001b[32m [repeated 8x across cluster] (Ray deduplicates logs by default. Set RAY_DEDUP_LOGS=0 to disable log deduplication, or see https://docs.ray.io/en/master/ray-observability/ray-logging.html#log-deduplication for more options.)\u001b[0m\n", "\u001b[2m\u001b[36m(ImplicitFunc pid=94905)\u001b[0m StorageContext<\u001b[32m [repeated 8x across cluster]\u001b[0m\n", "\u001b[2m\u001b[36m(ImplicitFunc pid=94905)\u001b[0m storage_path=/tmp/ray_results\u001b[32m [repeated 8x across cluster]\u001b[0m\n", "\u001b[2m\u001b[36m(ImplicitFunc pid=94905)\u001b[0m storage_local_path=/Users/justin/ray_results\u001b[32m [repeated 8x across cluster]\u001b[0m\n", "\u001b[2m\u001b[36m(ImplicitFunc pid=94905)\u001b[0m storage_filesystem=\u001b[32m [repeated 8x across cluster]\u001b[0m\n", "\u001b[2m\u001b[36m(ImplicitFunc pid=94905)\u001b[0m storage_fs_path=/tmp/ray_results\u001b[32m [repeated 8x across cluster]\u001b[0m\n", "\u001b[2m\u001b[36m(ImplicitFunc pid=94905)\u001b[0m experiment_dir_name=tune_analyzing_results\u001b[32m [repeated 8x across cluster]\u001b[0m\n", "\u001b[2m\u001b[36m(ImplicitFunc pid=94905)\u001b[0m current_checkpoint_index=0\u001b[32m [repeated 16x across cluster]\u001b[0m\n", "\u001b[2m\u001b[36m(ImplicitFunc pid=94905)\u001b[0m >\u001b[32m [repeated 8x across cluster]\u001b[0m\n", "2023-08-25 17:42:35,127\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "\u001b[2m\u001b[36m(train_mnist pid=94906)\u001b[0m Checkpoint successfully created at: Checkpoint(filesystem=local, path=/tmp/ray_results/tune_analyzing_results/train_mnist_6e465_00003_3_lr=0.0104,momentum=0.8000_2023-08-25_17-42-27/checkpoint_000050)\u001b[32m [repeated 455x across cluster]\u001b[0m\n", "2023-08-25 17:42:35,508\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "2023-08-25 17:42:35,899\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "2023-08-25 17:42:36,277\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "2023-08-25 17:42:36,662\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "2023-08-25 17:42:37,065\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "2023-08-25 17:42:37,455\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "2023-08-25 17:42:37,857\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "2023-08-25 17:42:38,237\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "2023-08-25 17:42:38,639\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "2023-08-25 17:42:39,019\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "2023-08-25 17:42:39,400\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "2023-08-25 17:42:39,773\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "2023-08-25 17:42:39,879\tWARNING experiment_state.py:371 -- Experiment checkpoint syncing has been triggered multiple times in the last 30.0 seconds. A sync will be triggered whenever a trial has checkpointed more than `num_to_keep` times since last sync or if 300 seconds have passed since last sync. If you have set `num_to_keep` in your `CheckpointConfig`, consider increasing the checkpoint frequency or keeping more checkpoints. You can supress this warning by changing the `TUNE_WARN_EXCESSIVE_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S` environment variable.\n", "2023-08-25 17:42:39,882\tINFO tune.py:1147 -- Total run time: 12.52 seconds (12.42 seconds for the tuning loop).\n" ] } ], "source": [ "import os\n", "\n", "from ray import train, tune\n", "from ray.tune.examples.mnist_pytorch import train_mnist\n", "from ray.tune import ResultGrid\n", "\n", "storage_path = \"/tmp/ray_results\"\n", "exp_name = \"tune_analyzing_results\"\n", "tuner = tune.Tuner(\n", " train_mnist,\n", " param_space={\n", " \"lr\": tune.loguniform(0.001, 0.1),\n", " \"momentum\": tune.grid_search([0.8, 0.9, 0.99]),\n", " \"should_checkpoint\": True,\n", " },\n", " run_config=train.RunConfig(\n", " name=exp_name,\n", " stop={\"training_iteration\": 100},\n", " checkpoint_config=train.CheckpointConfig(\n", " checkpoint_score_attribute=\"mean_accuracy\",\n", " num_to_keep=5,\n", " ),\n", " storage_path=storage_path,\n", " ),\n", " tune_config=tune.TuneConfig(mode=\"max\", metric=\"mean_accuracy\", num_samples=3),\n", ")\n", "result_grid: ResultGrid = tuner.fit()" ] }, { "attachments": {}, "cell_type": "markdown", "id": "a18a988c", "metadata": {}, "source": [ "## Loading experiment results from an directory\n", "\n", "Although we have the `result_grid` object in memory because we just ran the Tune experiment above, we might be performing this analysis after our initial training script has exited. We can retrieve the `ResultGrid` from a [restored `Tuner`](tune-stopping-guide), passing in the experiment directory, which should look something like `~/ray_results/{exp_name}`. If you don't specify an experiment `name` in the `RunConfig`, the experiment name will be auto-generated and can be found in the logs of your experiment." ] }, { "cell_type": "code", "execution_count": 2, "id": "92ded070", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Loading results from /tmp/ray_results/tune_analyzing_results...\n" ] } ], "source": [ "experiment_path = os.path.join(storage_path, exp_name)\n", "print(f\"Loading results from {experiment_path}...\")\n", "\n", "restored_tuner = tune.Tuner.restore(experiment_path, trainable=train_mnist)\n", "result_grid = restored_tuner.get_results()" ] }, { "attachments": {}, "cell_type": "markdown", "id": "ea5085c8", "metadata": {}, "source": [ "## Experiment-level Analysis: Working with `ResultGrid`" ] }, { "attachments": {}, "cell_type": "markdown", "id": "a7182cd1", "metadata": {}, "source": [ "The first thing we might want to check is if there were any erroring trials." ] }, { "cell_type": "code", "execution_count": 3, "id": "008a8df7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "No errors!\n" ] } ], "source": [ "# Check if there have been errors\n", "if result_grid.errors:\n", " print(\"One of the trials failed!\")\n", "else:\n", " print(\"No errors!\")" ] }, { "attachments": {}, "cell_type": "markdown", "id": "c95f6cef", "metadata": {}, "source": [ "Note that `ResultGrid` is an iterable, and we can access its length and index into it to access individual `Result` objects.\n", "\n", "We should have **9** results in this example, since we have 3 samples for each of the 3 grid search values." ] }, { "cell_type": "code", "execution_count": 4, "id": "4ccecf9c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of results: 9\n" ] } ], "source": [ "num_results = len(result_grid)\n", "print(\"Number of results:\", num_results)" ] }, { "cell_type": "code", "execution_count": 5, "id": "5cff1c8d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Trial #0 finished successfully with a mean accuracy metric of: 0.953125\n", "Trial #1 finished successfully with a mean accuracy metric of: 0.9625\n", "Trial #2 finished successfully with a mean accuracy metric of: 0.95625\n", "Trial #3 finished successfully with a mean accuracy metric of: 0.946875\n", "Trial #4 finished successfully with a mean accuracy metric of: 0.925\n", "Trial #5 finished successfully with a mean accuracy metric of: 0.934375\n", "Trial #6 finished successfully with a mean accuracy metric of: 0.965625\n", "Trial #7 finished successfully with a mean accuracy metric of: 0.95625\n", "Trial #8 finished successfully with a mean accuracy metric of: 0.94375\n" ] } ], "source": [ "# Iterate over results\n", "for i, result in enumerate(result_grid):\n", " if result.error:\n", " print(f\"Trial #{i} had an error:\", result.error)\n", " continue\n", "\n", " print(\n", " f\"Trial #{i} finished successfully with a mean accuracy metric of:\",\n", " result.metrics[\"mean_accuracy\"]\n", " )" ] }, { "attachments": {}, "cell_type": "markdown", "id": "66c7ccc4", "metadata": {}, "source": [ "Above, we printed the **last reported** `mean_accuracy` metric for all trials by looping through the `result_grid`.\n", "We can access the same metrics for all trials in a pandas DataFrame." ] }, { "cell_type": "code", "execution_count": 6, "id": "c3541ea8", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
training_iterationmean_accuracy
01000.953125
11000.962500
21000.956250
31000.946875
41000.925000
51000.934375
61000.965625
71000.956250
81000.943750
\n", "
" ], "text/plain": [ " training_iteration mean_accuracy\n", "0 100 0.953125\n", "1 100 0.962500\n", "2 100 0.956250\n", "3 100 0.946875\n", "4 100 0.925000\n", "5 100 0.934375\n", "6 100 0.965625\n", "7 100 0.956250\n", "8 100 0.943750" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results_df = result_grid.get_dataframe()\n", "results_df[[\"training_iteration\", \"mean_accuracy\"]]" ] }, { "cell_type": "code", "execution_count": 7, "id": "0117b332", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Shortest training time: 8.674914598464966\n", "Longest training time: 8.945653676986694\n" ] } ], "source": [ "print(\"Shortest training time:\", results_df[\"time_total_s\"].min())\n", "print(\"Longest training time:\", results_df[\"time_total_s\"].max())" ] }, { "attachments": {}, "cell_type": "markdown", "id": "184bd3ee", "metadata": {}, "source": [ "The last reported metrics might not contain the best accuracy each trial achieved. If we want to get maximum accuracy that each trial reported throughout its training, we can do so by using {meth}`ResultGrid.get_dataframe ` specifying a metric and mode used to filter each trial's training history." ] }, { "cell_type": "code", "execution_count": 8, "id": "54f2d019", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
training_iterationmean_accuracy
0500.968750
1550.975000
2950.975000
3710.978125
4650.959375
5770.965625
6820.975000
7800.968750
8920.975000
\n", "
" ], "text/plain": [ " training_iteration mean_accuracy\n", "0 50 0.968750\n", "1 55 0.975000\n", "2 95 0.975000\n", "3 71 0.978125\n", "4 65 0.959375\n", "5 77 0.965625\n", "6 82 0.975000\n", "7 80 0.968750\n", "8 92 0.975000" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "best_result_df = result_grid.get_dataframe(\n", " filter_metric=\"mean_accuracy\", filter_mode=\"max\"\n", ")\n", "best_result_df[[\"training_iteration\", \"mean_accuracy\"]]" ] }, { "attachments": {}, "cell_type": "markdown", "id": "a016e288", "metadata": {}, "source": [ "## Trial-level Analysis: Working with an individual `Result`" ] }, { "attachments": {}, "cell_type": "markdown", "id": "59d52e62", "metadata": {}, "source": [ "Let's take a look at the result that ended with the best `mean_accuracy` metric. By default, `get_best_result` will use the same metric and mode as defined in the `TuneConfig` above. However, it's also possible to specify a new metric/order in which results should be ranked." ] }, { "cell_type": "code", "execution_count": 9, "id": "1b59ac25", "metadata": {}, "outputs": [], "source": [ "from ray.train import Result\n", "\n", "# Get the result with the maximum test set `mean_accuracy`\n", "best_result: Result = result_grid.get_best_result()\n", "\n", "# Get the result with the minimum `mean_accuracy`\n", "worst_performing_result: Result = result_grid.get_best_result(\n", " metric=\"mean_accuracy\", mode=\"min\"\n", ")" ] }, { "attachments": {}, "cell_type": "markdown", "id": "19d25389", "metadata": {}, "source": [ "We can examine a few of the properties of the best `Result`. See the [API reference](result-docstring) for a list of all accessible properties.\n", "\n", "First, we can access the best result's hyperparameter configuration with `Result.config`." ] }, { "cell_type": "code", "execution_count": 10, "id": "7ffc3edc", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'lr': 0.009781335971854077, 'momentum': 0.9, 'should_checkpoint': True}" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "best_result.config" ] }, { "attachments": {}, "cell_type": "markdown", "id": "403111f9", "metadata": {}, "source": [ "Next, we can access the trial directory via `Result.path`. The result `path` gives the trial level directory that contains checkpoints (if you reported any) and logged metrics to load manually or inspect using a tool like Tensorboard (see `result.json`, `progress.csv`)." ] }, { "cell_type": "code", "execution_count": 11, "id": "c90dcc28", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'/tmp/ray_results/tune_analyzing_results/train_mnist_6e465_00007_7_lr=0.0098,momentum=0.9000_2023-08-25_17-42-27'" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "best_result.path" ] }, { "attachments": {}, "cell_type": "markdown", "id": "44d4080e", "metadata": {}, "source": [ "You can also directly get the latest checkpoint for a specific trial via `Result.checkpoint`." ] }, { "cell_type": "code", "execution_count": 12, "id": "fa4018f1", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Checkpoint(filesystem=local, path=/tmp/ray_results/tune_analyzing_results/train_mnist_6e465_00007_7_lr=0.0098,momentum=0.9000_2023-08-25_17-42-27/checkpoint_000099)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Get the last Checkpoint associated with the best-performing trial\n", "best_result.checkpoint" ] }, { "attachments": {}, "cell_type": "markdown", "id": "79661a56", "metadata": {}, "source": [ "You can also get the last-reported metrics associated with a specific trial via `Result.metrics`." ] }, { "cell_type": "code", "execution_count": 15, "id": "52d4b99c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'mean_accuracy': 0.965625,\n", " 'timestamp': 1693010559,\n", " 'should_checkpoint': True,\n", " 'done': True,\n", " 'training_iteration': 100,\n", " 'trial_id': '6e465_00007',\n", " 'date': '2023-08-25_17-42-39',\n", " 'time_this_iter_s': 0.08028697967529297,\n", " 'time_total_s': 8.77775764465332,\n", " 'pid': 94910,\n", " 'node_ip': '127.0.0.1',\n", " 'config': {'lr': 0.009781335971854077,\n", " 'momentum': 0.9,\n", " 'should_checkpoint': True},\n", " 'time_since_restore': 8.77775764465332,\n", " 'iterations_since_restore': 100,\n", " 'checkpoint_dir_name': 'checkpoint_000099',\n", " 'experiment_tag': '7_lr=0.0098,momentum=0.9000'}" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Get the last reported set of metrics\n", "best_result.metrics" ] }, { "attachments": {}, "cell_type": "markdown", "id": "00705f44", "metadata": {}, "source": [ "Access the entire history of reported metrics from a `Result` as a pandas DataFrame:" ] }, { "cell_type": "code", "execution_count": 16, "id": "ca87204f", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
training_iterationmean_accuracytime_total_s
010.1687500.111393
120.6093750.195086
230.8000000.283543
340.8406250.388538
450.8406250.479402
............
95960.9468758.415694
96970.9437508.524299
97980.9562508.606126
98990.9343758.697471
991000.9656258.777758
\n", "

100 rows × 3 columns

\n", "
" ], "text/plain": [ " training_iteration mean_accuracy time_total_s\n", "0 1 0.168750 0.111393\n", "1 2 0.609375 0.195086\n", "2 3 0.800000 0.283543\n", "3 4 0.840625 0.388538\n", "4 5 0.840625 0.479402\n", ".. ... ... ...\n", "95 96 0.946875 8.415694\n", "96 97 0.943750 8.524299\n", "97 98 0.956250 8.606126\n", "98 99 0.934375 8.697471\n", "99 100 0.965625 8.777758\n", "\n", "[100 rows x 3 columns]" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "result_df = best_result.metrics_dataframe\n", "result_df[[\"training_iteration\", \"mean_accuracy\", \"time_total_s\"]]" ] }, { "attachments": {}, "cell_type": "markdown", "id": "20bc50e9", "metadata": {}, "source": [ "## Plotting metrics\n", "\n", "We can use the metrics DataFrame to quickly visualize learning curves. First, let's plot the mean accuracy vs. training iterations for the best result." ] }, { "cell_type": "code", "execution_count": 17, "id": "1ff489ec", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "best_result.metrics_dataframe.plot(\"training_iteration\", \"mean_accuracy\")" ] }, { "attachments": {}, "cell_type": "markdown", "id": "4fd2f85b", "metadata": {}, "source": [ "We can also iterate through the entire set of results and create a combined plot of all trials with the hyperparameters as labels." ] }, { "cell_type": "code", "execution_count": 18, "id": "54b78da6", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Mean Test Accuracy')" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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c++xMzGvtmVdb8XQ4sWLiYuLa3LeL31Hv1wXOOn+vCJAbpTGbC0619b3Ys6cOcyZM6fV5wbYt28fiYmJREdHNzN8u1wuzGbzSb9uY8aMITs7m7KyMjQaDSaTiejo6Cai63xx2uJmzZo1OBwOBg8ezI4dO3j22WfJyspi+fLl9OrViw0bNvyhm/h58Ykbdb240RhaTEtZnBZklG/olgzFuWL0gkBwdkjSWaWGfmu0JS01YMAAlixZ0uTxFStWnDS6PmDAAB577DGcTqfvxrlixQrS09NPKyUFoNPp6N27NytXrmTixImAcnNfuXIl06ZNO601zpS0tDR0Oh3r1q3zRbmcTiebN29mxowZZ7xuly5d0Ov15ObmNklBtRWdTofb7W5yLCIiAoDCwkJfFKixufhsaEtaasCAAVRWVrJ161Z69+4NwKpVq/B4PPTr1++UzxUeHu67pqSkhMsvv/wsd3/2tDktBco30Ztvvtnee/ld4BU3eCM3Wj+cFq+4aT40U6/Wo1c3Vf8Ol4fCKisAiSJyIxAIaFta6s4772TevHk8/PDD3HLLLaxatYqPP/6YxYsX+86ZN28eX3zxBStXrgTguuuu4x//+Ae33norM2fOZM+ePbz88stNKqwcDgf79u3z/T8/P58dO3YQEBBAhw4dALj//vu56aab6NOnD3379uWll17CYrFw8803t8fb0Cr+/v7cddddPPTQQ4SGhpKYmMhzzz3na19ypgQGBvLggw9y33334fF4GDx4MFVVVaxbt46goCBuuumm01onOTmZnJwcduzYQXx8PIGBgRiNRvr378+zzz5LSkoKJSUl/O1vfzvjvTamLWmpjIwMxo0bx+233878+fNxOp1MmzaNa6+91ieA8vPzufjii3nnnXfo27cvAAsXLiQjI4OIiAg2bNjA9OnTue+++0hPT2+X13A2tEnc7Nu3r1VzkZfGecE/Ir6/rLyGYo0fLnvzaqmTVUrlV1rxyGDUqokIaLncUiAQCFojJSWFxYsXc9999/Hyyy8THx/PW2+9xdixY33nlJWVNalwDQ4OZvny5dx999307t2b8PBw/v73vzcpRS8oKGjiM5k7dy5z585l2LBhvtLlyZMnU1payt///neKioro0aMHS5cubWIynjp1KseOHfNd0148++yzeDwebrjhBmpqaujTpw/Lli077chTa/zz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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = None\n", "for result in result_grid:\n", " label = f\"lr={result.config['lr']:.3f}, momentum={result.config['momentum']}\"\n", " if ax is None:\n", " ax = result.metrics_dataframe.plot(\"training_iteration\", \"mean_accuracy\", label=label)\n", " else:\n", " result.metrics_dataframe.plot(\"training_iteration\", \"mean_accuracy\", ax=ax, label=label)\n", "ax.set_title(\"Mean Accuracy vs. Training Iteration for All Trials\")\n", "ax.set_ylabel(\"Mean Test Accuracy\")" ] }, { "attachments": {}, "cell_type": "markdown", "id": "be02fc7a", "metadata": {}, "source": [ "## Accessing checkpoints and loading for test inference\n", "\n", "We saw earlier that `Result` contains the last checkpoint associated with a trial. Let's see how we can use this checkpoint to load a model for performing inference on some sample MNIST images." ] }, { "cell_type": "code", "execution_count": 19, "id": "50d3acff", "metadata": {}, "outputs": [], "source": [ "import torch\n", "\n", "from ray.tune.examples.mnist_pytorch import ConvNet, get_data_loaders\n", "\n", "model = ConvNet()\n", "\n", "with best_result.checkpoint.as_directory() as checkpoint_dir:\n", " # The model state dict was saved under `model.pt` by the training function\n", " # imported from `ray.tune.examples.mnist_pytorch`\n", " model.load_state_dict(torch.load(os.path.join(checkpoint_dir, \"model.pt\")))" ] }, { "attachments": {}, "cell_type": "markdown", "id": "2813c45d", "metadata": {}, "source": [ "Refer to the training loop definition {doc}`here ` to see how we are saving the checkpoint in the first place.\n", "\n", "Next, let's test our model with a sample data point and print out the predicted class." ] }, { "cell_type": "code", "execution_count": 21, "id": "eb8f6942", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Predicted Class = 9\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "_, test_loader = get_data_loaders()\n", "test_img = next(iter(test_loader))[0][0]\n", "\n", "predicted_class = torch.argmax(model(test_img)).item()\n", "print(\"Predicted Class =\", predicted_class)\n", "\n", "# Need to reshape to (batch_size, channels, width, height)\n", "test_img = test_img.numpy().reshape((1, 1, 28, 28))\n", "plt.figure(figsize=(2, 2))\n", "plt.imshow(test_img.reshape((28, 28)))\n" ] }, { "cell_type": "code", "execution_count": null, "id": "fce0ae4f", "metadata": {}, "outputs": [], "source": [] }, { "attachments": {}, "cell_type": "markdown", "id": "1699bab7", "metadata": {}, "source": [ "Consider using Ray Data if you want to use a checkpointed model for large scale inference!" ] }, { "attachments": {}, "cell_type": "markdown", "id": "16c25683", "metadata": {}, "source": [ "## Summary\n", "\n", "In this guide, we looked at some common analysis workflows you can perform using the `ResultGrid` output returned by `Tuner.fit`. These included: **loading results from an experiment directory, exploring experiment-level and trial-level results, plotting logged metrics, and accessing trial checkpoints for inference.**\n", "\n", "Take a look at [Tune's experiment tracking integrations](./experiment-tracking) for more analysis tools that you can build into your Tune experiment with a few callbacks!" ] } ], "metadata": { "kernelspec": { "display_name": "ray_dev_py38", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.13" }, "vscode": { "interpreter": { "hash": "265d195fda5292fe8f69c6e37c435a5634a1ed3b6799724e66a975f68fa21517" } } }, "nbformat": 4, "nbformat_minor": 5 }