{ "cells": [ { "cell_type": "markdown", "id": "7dd546bd", "metadata": { "collapsed": true, "customInput": null, "originalKey": "ac61b043-8ebf-43b9-9fa5-ed9a42a184ce", "papermill": { "duration": 0.006558, "end_time": "2024-05-02T22:20:28.882806", "exception": false, "start_time": "2024-05-02T22:20:28.876248", "status": "completed" }, "showInput": false, "tags": [] }, "source": [ "# Tune a CNN on MNIST\n", "\n", "This tutorial walks through using Ax to tune two hyperparameters (learning rate and momentum) for a PyTorch CNN on the MNIST dataset trained using SGD with momentum." ] }, { "cell_type": "code", "execution_count": 1, "id": "81bde9dd", "metadata": { "customInput": null, "customOutput": null, "execution": { "iopub.execute_input": "2024-05-02T22:20:28.896973Z", "iopub.status.busy": "2024-05-02T22:20:28.896313Z", "iopub.status.idle": "2024-05-02T22:20:32.452857Z", "shell.execute_reply": "2024-05-02T22:20:32.452080Z" }, "executionStartTime": 1690415246079, "executionStopTime": 1690415266324, "originalKey": "c2b37f0f-3644-4367-912f-f775082f6676", "papermill": { "duration": 3.578301, "end_time": "2024-05-02T22:20:32.467294", "exception": false, "start_time": "2024-05-02T22:20:28.888993", "status": "completed" }, "requestMsgId": "0b481630-f0f4-436a-a205-a25aa163a364", "showInput": true, "tags": [] }, "outputs": [ { "data": { "text/html": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:20:32] ax.utils.notebook.plotting: Injecting Plotly library into cell. Do not overwrite or delete cell.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:20:32] ax.utils.notebook.plotting: Please see\n", " (https://ax.dev/tutorials/visualizations.html#Fix-for-plots-that-are-not-rendering)\n", " if visualizations are not rendering.\n" ] }, { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import torch\n", "\n", "import torch.nn as nn\n", "import torch.nn.functional as F\n", "\n", "from ax.service.ax_client import AxClient, ObjectiveProperties\n", "from ax.service.utils.report_utils import exp_to_df\n", "from ax.utils.notebook.plotting import init_notebook_plotting, render\n", "from ax.utils.tutorials.cnn_utils import evaluate, load_mnist, train\n", "from torch._tensor import Tensor\n", "from torch.utils.data import DataLoader\n", "\n", "init_notebook_plotting()" ] }, { "cell_type": "code", "execution_count": 2, "id": "a24cedab", "metadata": { "customInput": null, "customOutput": null, "execution": { "iopub.execute_input": "2024-05-02T22:20:32.539907Z", "iopub.status.busy": "2024-05-02T22:20:32.539258Z", "iopub.status.idle": "2024-05-02T22:20:32.544639Z", "shell.execute_reply": "2024-05-02T22:20:32.544087Z" }, "executionStartTime": 1690415266521, "executionStopTime": 1690415266529, "originalKey": "4d0a27c4-a6ce-4b7d-97eb-1c229aabb375", "papermill": { "duration": 0.043637, "end_time": "2024-05-02T22:20:32.545950", "exception": false, "start_time": "2024-05-02T22:20:32.502313", "status": "completed" }, "requestMsgId": "fd975d25-a185-4b09-a50f-7b2bcd89f93f", "showInput": true, "tags": [] }, "outputs": [], "source": [ "torch.manual_seed(42)\n", "dtype = torch.float\n", "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")" ] }, { "cell_type": "markdown", "id": "1ee4ccc3", "metadata": { "customInput": null, "originalKey": "10384e51-444c-4265-b56d-ad078d05d2a1", "papermill": { "duration": 0.034982, "end_time": "2024-05-02T22:20:32.616153", "exception": false, "start_time": "2024-05-02T22:20:32.581171", "status": "completed" }, "showInput": false, "tags": [] }, "source": [ "## 1. Load MNIST data\n", "First, we need to load the MNIST data and partition it into training, validation, and test sets.\n", "\n", "Note: this will download the dataset if necessary." ] }, { "cell_type": "code", "execution_count": 3, "id": "5d3b18c6", "metadata": { "customInput": null, "customOutput": null, "execution": { "iopub.execute_input": "2024-05-02T22:20:32.688797Z", "iopub.status.busy": "2024-05-02T22:20:32.688105Z", "iopub.status.idle": "2024-05-02T22:20:34.195487Z", "shell.execute_reply": "2024-05-02T22:20:34.194734Z" }, "executionStartTime": 1690415266733, "executionStopTime": 1690415266902, "originalKey": "6f0949e2-1064-44b8-99c0-f6ce23df7c63", "papermill": { "duration": 1.545383, "end_time": "2024-05-02T22:20:34.197050", "exception": false, "start_time": "2024-05-02T22:20:32.651667", "status": "completed" }, "requestMsgId": "8ce7dd21-9afb-4379-ad11-4112b4d27f8a", "showInput": true, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Downloading http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz\n", "Failed to download (trying next):\n", "HTTP Error 403: Forbidden\n", "\n", "Downloading https://ossci-datasets.s3.amazonaws.com/mnist/train-images-idx3-ubyte.gz\n", "Downloading https://ossci-datasets.s3.amazonaws.com/mnist/train-images-idx3-ubyte.gz to ./data/MNIST/raw/train-images-idx3-ubyte.gz\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\r", " 0%| | 0/9912422 [00:00= p2\" or \"p1 + p2 <= some_bound\".\n", " # outcome_constraints: Optional, a list of strings of form \"constrained_metric <= some_bound\".\n", ")" ] }, { "cell_type": "markdown", "id": "bcf7b019", "metadata": { "customInput": null, "originalKey": "af441a83-50fd-4385-a380-d8ebc570c0e5", "papermill": { "duration": 0.037184, "end_time": "2024-05-02T22:20:34.586894", "exception": false, "start_time": "2024-05-02T22:20:34.549710", "status": "completed" }, "showInput": false, "tags": [] }, "source": [ "## 4. Define how to evaluate trials\n" ] }, { "cell_type": "markdown", "id": "206dd776", "metadata": { "customInput": null, "originalKey": "c7630dfd-548b-408a-badf-b6abf79275e2", "papermill": { "duration": 0.037399, "end_time": "2024-05-02T22:20:34.661558", "exception": false, "start_time": "2024-05-02T22:20:34.624159", "status": "completed" }, "showInput": false, "tags": [] }, "source": [ "First we define a simple CNN class to classify the MNIST images" ] }, { "cell_type": "code", "execution_count": 6, "id": "5bb090b7", "metadata": { "customInput": null, "customOutput": null, "execution": { "iopub.execute_input": "2024-05-02T22:20:34.737701Z", "iopub.status.busy": "2024-05-02T22:20:34.737188Z", "iopub.status.idle": "2024-05-02T22:20:34.742232Z", "shell.execute_reply": "2024-05-02T22:20:34.741602Z" }, "executionStartTime": 1690415267282, "executionStopTime": 1690415267286, "originalKey": "e41fea0a-ae71-4e6f-8c0a-6eb6ae143fb0", "papermill": { "duration": 0.044686, "end_time": "2024-05-02T22:20:34.743484", "exception": false, "start_time": "2024-05-02T22:20:34.698798", "status": "completed" }, "requestMsgId": "60f14ec9-eb1b-4e88-95c5-15c91f999c90", "showInput": true, "tags": [] }, "outputs": [], "source": [ "class CNN(nn.Module):\n", " \n", " def __init__(self) -> None:\n", " super().__init__()\n", " self.conv1 = nn.Conv2d(1, 20, kernel_size=5, stride=1)\n", " self.fc1 = nn.Linear(8 * 8 * 20, 64)\n", " self.fc2 = nn.Linear(64, 10)\n", "\n", " def forward(self, x: Tensor) -> Tensor:\n", " x = F.relu(self.conv1(x))\n", " x = F.max_pool2d(x, 3, 3)\n", " x = x.view(-1, 8 * 8 * 20)\n", " x = F.relu(self.fc1(x))\n", " x = self.fc2(x)\n", " return F.log_softmax(x, dim=-1)" ] }, { "cell_type": "markdown", "id": "51154bd9", "metadata": { "customInput": null, "originalKey": "8ef6bcb9-c492-4874-b8c7-a07f7e6291ad", "papermill": { "duration": 0.036743, "end_time": "2024-05-02T22:20:34.816882", "exception": false, "start_time": "2024-05-02T22:20:34.780139", "status": "completed" }, "showInput": false, "tags": [] }, "source": [ "In this tutorial, we want to optimize classification accuracy on the validation set as a function of the learning rate and momentum. The `train_evaluate` function takes in a parameterization (set of parameter values), computes the classification accuracy, and returns that metric. " ] }, { "cell_type": "code", "execution_count": 7, "id": "5161b2ea", "metadata": { "customInput": null, "customOutput": null, "execution": { "iopub.execute_input": "2024-05-02T22:20:34.892052Z", "iopub.status.busy": "2024-05-02T22:20:34.891325Z", "iopub.status.idle": "2024-05-02T22:20:34.895894Z", "shell.execute_reply": "2024-05-02T22:20:34.895227Z" }, "executionStartTime": 1690415267388, "executionStopTime": 1690415267395, "originalKey": "a7e4bcc4-7494-429b-bb93-7ad84d0985af", "papermill": { "duration": 0.043524, "end_time": "2024-05-02T22:20:34.897224", "exception": false, "start_time": "2024-05-02T22:20:34.853700", "status": "completed" }, "requestMsgId": "5d486dbf-60cb-453d-8f24-8605f974b0a7", "showInput": true, "tags": [] }, "outputs": [], "source": [ "def train_evaluate(parameterization):\n", " \"\"\"\n", " Train the model and then compute an evaluation metric.\n", "\n", " In this tutorial, the CNN utils package is doing a lot of work\n", " under the hood:\n", " - `train` initializes the network, defines the loss function\n", " and optimizer, performs the training loop, and returns the\n", " trained model.\n", " - `evaluate` computes the accuracy of the model on the\n", " evaluation dataset and returns the metric.\n", "\n", " For your use case, you can define training and evaluation functions\n", " of your choosing.\n", "\n", " \"\"\"\n", " net = CNN()\n", " net = train(\n", " net=net,\n", " train_loader=train_loader,\n", " parameters=parameterization,\n", " dtype=dtype,\n", " device=device,\n", " )\n", "\n", " return evaluate(\n", " net=net, \n", " data_loader=valid_loader, \n", " dtype=dtype, \n", " device=device,\n", " )\n" ] }, { "cell_type": "markdown", "id": "f7f20859", "metadata": { "customInput": null, "originalKey": "9ab127a8-021f-4ec8-9f4e-f4256a2e322a", "papermill": { "duration": 0.036552, "end_time": "2024-05-02T22:20:34.970683", "exception": false, "start_time": "2024-05-02T22:20:34.934131", "status": "completed" }, "showInput": false, "tags": [] }, "source": [ "## 5. Run optimization loop\n" ] }, { "cell_type": "markdown", "id": "2e45cd41", "metadata": { "customInput": null, "originalKey": "411a2fb4-e8a3-4414-bc17-09f0b5ba3e74", "papermill": { "duration": 0.036656, "end_time": "2024-05-02T22:20:35.044064", "exception": false, "start_time": "2024-05-02T22:20:35.007408", "status": "completed" }, "showInput": false, "tags": [] }, "source": [ "First we use `attach_trial` to attach a custom trial with manually-chosen parameters. This step is optional, but we include it here to demonstrate adding manual trials and to serve as a baseline model with decent performance. " ] }, { "cell_type": "code", "execution_count": 8, "id": "1dd53d3d", "metadata": { "customInput": null, "execution": { "iopub.execute_input": "2024-05-02T22:20:35.119504Z", "iopub.status.busy": "2024-05-02T22:20:35.118886Z", "iopub.status.idle": "2024-05-02T22:20:41.948315Z", "shell.execute_reply": "2024-05-02T22:20:41.947688Z" }, "executionStartTime": 1690415267533, "executionStopTime": 1690415287786, "originalKey": "1388ef55-5642-46ab-b297-c76a73a48aca", "papermill": { "duration": 6.868906, "end_time": "2024-05-02T22:20:41.949741", "exception": false, "start_time": "2024-05-02T22:20:35.080835", "status": "completed" }, "requestMsgId": "b32a4981-ad59-46e1-b701-fa5a5f118d8b", "showInput": true, "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:20:35] ax.core.experiment: Attached custom parameterizations [{'lr': 2.6e-05, 'momentum': 0.58}] as trial 0.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:20:41] ax.service.ax_client: Completed trial 0 with data: {'accuracy': (0.841833, None)}.\n" ] } ], "source": [ "# Attach the trial\n", "ax_client.attach_trial(\n", " parameters={\"lr\": 0.000026, \"momentum\": 0.58}\n", ")\n", "\n", "# Get the parameters and run the trial \n", "baseline_parameters = ax_client.get_trial_parameters(trial_index=0)\n", "ax_client.complete_trial(trial_index=0, raw_data=train_evaluate(baseline_parameters))" ] }, { "cell_type": "markdown", "id": "7a65085b", "metadata": { "customInput": null, "originalKey": "f0f886a1-c5c8-44bb-b2fd-9fa3f140357a", "papermill": { "duration": 0.038016, "end_time": "2024-05-02T22:20:42.025529", "exception": false, "start_time": "2024-05-02T22:20:41.987513", "status": "completed" }, "showInput": false, "tags": [] }, "source": [ "Now we start the optimization loop.\n", "\n", "At each step, the user queries the client for a new trial then submits the evaluation of that trial back to the client.\n", "\n", "Note that Ax auto-selects an appropriate optimization algorithm based on the search space. For more advanced use cases that require a specific optimization algorithm, pass a `generation_strategy` argument into the `AxClient` constructor. Note that when Bayesian Optimization is used, generating new trials may take a few minutes." ] }, { "cell_type": "code", "execution_count": 9, "id": "c3613a73", "metadata": { "customInput": null, "customOutput": null, "execution": { "iopub.execute_input": "2024-05-02T22:20:42.102768Z", "iopub.status.busy": "2024-05-02T22:20:42.102145Z", "iopub.status.idle": "2024-05-02T22:23:44.053931Z", "shell.execute_reply": "2024-05-02T22:23:44.053235Z" }, "executionStartTime": 1690415287908, "executionStopTime": 1690415945107, "originalKey": "bff5d714-1ab3-43d3-b9b3-8c3a53c81dcb", "papermill": { "duration": 181.991923, "end_time": "2024-05-02T22:23:44.055361", "exception": false, "start_time": "2024-05-02T22:20:42.063438", "status": "completed" }, "requestMsgId": "a203534f-85dd-4dfa-9fa6-6aa46a0200a3", "showInput": true, "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:20:42] ax.service.ax_client: Generated new trial 1 with parameters {'lr': 0.009955, 'momentum': 0.633423} using model Sobol.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:20:48] ax.service.ax_client: Completed trial 1 with data: {'accuracy': (0.100333, None)}.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:20:48] ax.service.ax_client: Generated new trial 2 with parameters {'lr': 5e-06, 'momentum': 0.022851} using model Sobol.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:20:55] ax.service.ax_client: Completed trial 2 with data: {'accuracy': (0.318667, None)}.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:20:55] ax.service.ax_client: Generated new trial 3 with parameters {'lr': 7e-06, 'momentum': 0.176948} using model Sobol.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:21:02] ax.service.ax_client: Completed trial 3 with data: {'accuracy': (0.4585, None)}.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:21:02] ax.service.ax_client: Generated new trial 4 with parameters {'lr': 8.2e-05, 'momentum': 0.90883} using model Sobol.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:21:09] ax.service.ax_client: Completed trial 4 with data: {'accuracy': (0.926, None)}.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:21:09] ax.service.ax_client: Generated new trial 5 with parameters {'lr': 0.000302, 'momentum': 0.341904} using model Sobol.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:21:16] ax.service.ax_client: Completed trial 5 with data: {'accuracy': (0.929, None)}.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:21:16] ax.service.ax_client: Generated new trial 6 with parameters {'lr': 0.000137, 'momentum': 0.590917} using model BoTorch.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:21:23] ax.service.ax_client: Completed trial 6 with data: {'accuracy': (0.92, None)}.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:21:23] ax.service.ax_client: Generated new trial 7 with parameters {'lr': 1e-05, 'momentum': 1.0} using model BoTorch.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:21:30] ax.service.ax_client: Completed trial 7 with data: {'accuracy': (0.860167, None)}.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:21:30] ax.service.ax_client: Generated new trial 8 with parameters {'lr': 0.000246, 'momentum': 0.0} using model BoTorch.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:21:37] ax.service.ax_client: Completed trial 8 with data: {'accuracy': (0.888833, None)}.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:21:38] ax.service.ax_client: Generated new trial 9 with parameters {'lr': 0.000149, 'momentum': 0.286357} using model BoTorch.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:21:45] ax.service.ax_client: Completed trial 9 with data: {'accuracy': (0.901667, None)}.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:21:45] ax.service.ax_client: Generated new trial 10 with parameters {'lr': 1e-06, 'momentum': 1.0} using model BoTorch.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:21:52] ax.service.ax_client: Completed trial 10 with data: {'accuracy': (0.560333, None)}.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:21:53] ax.service.ax_client: Generated new trial 11 with parameters {'lr': 3.7e-05, 'momentum': 1.0} using model BoTorch.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:21:59] ax.service.ax_client: Completed trial 11 with data: {'accuracy': (0.759333, None)}.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:22:00] ax.service.ax_client: Generated new trial 12 with parameters {'lr': 0.000261, 'momentum': 0.913716} using model BoTorch.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:22:07] ax.service.ax_client: Completed trial 12 with data: {'accuracy': (0.9435, None)}.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:22:08] ax.service.ax_client: Generated new trial 13 with parameters {'lr': 0.00017, 'momentum': 0.796705} using model BoTorch.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:22:15] ax.service.ax_client: Completed trial 13 with data: {'accuracy': (0.946667, None)}.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:22:15] ax.service.ax_client: Generated new trial 14 with parameters {'lr': 0.000157, 'momentum': 1.0} using model BoTorch.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:22:22] ax.service.ax_client: Completed trial 14 with data: {'accuracy': (0.698667, None)}.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:22:23] ax.service.ax_client: Generated new trial 15 with parameters {'lr': 0.000311, 'momentum': 0.634907} using model BoTorch.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:22:30] ax.service.ax_client: Completed trial 15 with data: {'accuracy': (0.946667, None)}.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:22:30] ax.service.ax_client: Generated new trial 16 with parameters {'lr': 8.7e-05, 'momentum': 0.69567} using model BoTorch.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:22:37] ax.service.ax_client: Completed trial 16 with data: {'accuracy': (0.917, None)}.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:22:38] ax.service.ax_client: Generated new trial 17 with parameters {'lr': 0.001099, 'momentum': 0.0} using model BoTorch.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:22:44] ax.service.ax_client: Completed trial 17 with data: {'accuracy': (0.8825, None)}.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:22:45] ax.service.ax_client: Generated new trial 18 with parameters {'lr': 0.000553, 'momentum': 0.203965} using model BoTorch.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:22:52] ax.service.ax_client: Completed trial 18 with data: {'accuracy': (0.917667, None)}.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:22:52] ax.modelbridge.base: Untransformed parameter 0.40000000000000013 greater than upper bound 0.4, clamping\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:22:52] ax.service.ax_client: Generated new trial 19 with parameters {'lr': 0.4, 'momentum': 0.0} using model BoTorch.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:22:59] ax.service.ax_client: Completed trial 19 with data: {'accuracy': (0.101, None)}.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:23:00] ax.service.ax_client: Generated new trial 20 with parameters {'lr': 0.000475, 'momentum': 0.0} using model BoTorch.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:23:07] ax.service.ax_client: Completed trial 20 with data: {'accuracy': (0.906667, None)}.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:23:07] ax.service.ax_client: Generated new trial 21 with parameters {'lr': 0.000486, 'momentum': 0.491729} using model BoTorch.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:23:14] ax.service.ax_client: Completed trial 21 with data: {'accuracy': (0.863667, None)}.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:23:15] ax.service.ax_client: Generated new trial 22 with parameters {'lr': 0.000251, 'momentum': 0.735959} using model BoTorch.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:23:21] ax.service.ax_client: Completed trial 22 with data: {'accuracy': (0.950667, None)}.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:23:22] ax.service.ax_client: Generated new trial 23 with parameters {'lr': 1.9e-05, 'momentum': 0.795832} using model BoTorch.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:23:29] ax.service.ax_client: Completed trial 23 with data: {'accuracy': (0.885333, None)}.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:23:30] ax.service.ax_client: Generated new trial 24 with parameters {'lr': 0.000158, 'momentum': 0.722922} using model BoTorch.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:23:36] ax.service.ax_client: Completed trial 24 with data: {'accuracy': (0.925333, None)}.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:23:37] ax.service.ax_client: Generated new trial 25 with parameters {'lr': 0.000456, 'momentum': 0.787437} using model BoTorch.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:23:44] ax.service.ax_client: Completed trial 25 with data: {'accuracy': (0.942833, None)}.\n" ] } ], "source": [ "for i in range(25):\n", " parameters, trial_index = ax_client.get_next_trial()\n", " # Local evaluation here can be replaced with deployment to external system.\n", " ax_client.complete_trial(trial_index=trial_index, raw_data=train_evaluate(parameters))" ] }, { "cell_type": "markdown", "id": "1a9af1bc", "metadata": { "customInput": null, "originalKey": "ccd16059-db9f-475b-b527-75afb320e0f4", "papermill": { "duration": 0.038986, "end_time": "2024-05-02T22:23:44.133647", "exception": false, "start_time": "2024-05-02T22:23:44.094661", "status": "completed" }, "showInput": false, "tags": [] }, "source": [ "### How many trials can run in parallel?\n", "By default, Ax restricts number of trials that can run in parallel for some optimization stages, in order to improve the optimization performance and reduce the number of trials that the optimization will require. To check the maximum parallelism for each optimization stage:" ] }, { "cell_type": "code", "execution_count": 10, "id": "2eaac077", "metadata": { "customInput": null, "customOutput": null, "execution": { "iopub.execute_input": "2024-05-02T22:23:44.212801Z", "iopub.status.busy": "2024-05-02T22:23:44.212482Z", "iopub.status.idle": "2024-05-02T22:23:44.218984Z", "shell.execute_reply": "2024-05-02T22:23:44.218374Z" }, "executionStartTime": 1690415945269, "executionStopTime": 1690415945336, "originalKey": "7182d2f9-912c-464c-b5ad-f65ce6f00017", "papermill": { "duration": 0.047677, "end_time": "2024-05-02T22:23:44.220262", "exception": false, "start_time": "2024-05-02T22:23:44.172585", "status": "completed" }, "requestMsgId": "4cb4ff79-e45b-4c7d-86a1-7f8007eb2c81", "showInput": true, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "[(5, 5), (-1, 3)]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ax_client.get_max_parallelism()" ] }, { "cell_type": "markdown", "id": "34db0541", "metadata": { "customInput": null, "originalKey": "e2f429e6-2ec8-4af2-906b-52a36a53d329", "papermill": { "duration": 0.039371, "end_time": "2024-05-02T22:23:44.298979", "exception": false, "start_time": "2024-05-02T22:23:44.259608", "status": "completed" }, "showInput": false, "tags": [] }, "source": [ "The output of this function is a list of tuples of form (number of trials, max parallelism), so the example above means \"the max parallelism is 5 for the first 5 trials and 3 for all subsequent trials.\" This is because the first 5 trials are produced quasi-randomly and can all be evaluated at once, and subsequent trials are produced via Bayesian optimization, which converges on optimal point in fewer trials when parallelism is limited. MaxParallelismReachedException indicates that the parallelism limit has been reached –– refer to the 'Service API Exceptions Meaning and Handling' section at the end of the tutorial for handling.\n", "\n" ] }, { "cell_type": "markdown", "id": "b29f52d8", "metadata": { "customInput": null, "originalKey": "86c7aef9-993a-411e-add5-05839b00d3cf", "papermill": { "duration": 0.038967, "end_time": "2024-05-02T22:23:44.377155", "exception": false, "start_time": "2024-05-02T22:23:44.338188", "status": "completed" }, "showInput": false, "tags": [] }, "source": [ "### How to view all existing trials during optimization?" ] }, { "cell_type": "code", "execution_count": 11, "id": "56325e4c", "metadata": { "customInput": null, "execution": { "iopub.execute_input": "2024-05-02T22:23:44.456818Z", "iopub.status.busy": "2024-05-02T22:23:44.456507Z", "iopub.status.idle": "2024-05-02T22:23:44.485640Z", "shell.execute_reply": "2024-05-02T22:23:44.485085Z" }, "executionStartTime": 1690415945532, "executionStopTime": 1690415946199, "originalKey": "3fbad5dc-863a-494e-b04f-d7dc1e47936c", "papermill": { "duration": 0.070394, "end_time": "2024-05-02T22:23:44.486940", "exception": false, "start_time": "2024-05-02T22:23:44.416546", "status": "completed" }, "requestMsgId": "905ea8b6-add0-473e-8516-5be6ad7d7658", "showInput": true, "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[WARNING 05-02 22:23:44] ax.service.utils.report_utils: Column reason missing for all trials. Not appending column.\n" ] }, { "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", " \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", " \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", " \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", "
trial_indexarm_nametrial_statusgeneration_methodaccuracylrmomentum
000_0COMPLETEDManual0.8418330.0000260.580000
111_0COMPLETEDSobol0.1003330.0099550.633423
222_0COMPLETEDSobol0.3186670.0000050.022851
333_0COMPLETEDSobol0.4585000.0000070.176948
444_0COMPLETEDSobol0.9260000.0000820.908830
555_0COMPLETEDSobol0.9290000.0003020.341904
666_0COMPLETEDBoTorch0.9200000.0001370.590917
777_0COMPLETEDBoTorch0.8601670.0000101.000000
888_0COMPLETEDBoTorch0.8888330.0002460.000000
999_0COMPLETEDBoTorch0.9016670.0001490.286357
101010_0COMPLETEDBoTorch0.5603330.0000011.000000
111111_0COMPLETEDBoTorch0.7593330.0000371.000000
121212_0COMPLETEDBoTorch0.9435000.0002610.913716
131313_0COMPLETEDBoTorch0.9466670.0001700.796705
141414_0COMPLETEDBoTorch0.6986670.0001571.000000
151515_0COMPLETEDBoTorch0.9466670.0003110.634907
161616_0COMPLETEDBoTorch0.9170000.0000870.695670
171717_0COMPLETEDBoTorch0.8825000.0010990.000000
181818_0COMPLETEDBoTorch0.9176670.0005530.203965
191919_0COMPLETEDBoTorch0.1010000.4000000.000000
202020_0COMPLETEDBoTorch0.9066670.0004750.000000
212121_0COMPLETEDBoTorch0.8636670.0004860.491729
222222_0COMPLETEDBoTorch0.9506670.0002510.735959
232323_0COMPLETEDBoTorch0.8853330.0000190.795832
242424_0COMPLETEDBoTorch0.9253330.0001580.722922
252525_0COMPLETEDBoTorch0.9428330.0004560.787437
\n", "
" ], "text/plain": [ " trial_index arm_name trial_status generation_method accuracy lr \\\n", "0 0 0_0 COMPLETED Manual 0.841833 0.000026 \n", "1 1 1_0 COMPLETED Sobol 0.100333 0.009955 \n", "2 2 2_0 COMPLETED Sobol 0.318667 0.000005 \n", "3 3 3_0 COMPLETED Sobol 0.458500 0.000007 \n", "4 4 4_0 COMPLETED Sobol 0.926000 0.000082 \n", "5 5 5_0 COMPLETED Sobol 0.929000 0.000302 \n", "6 6 6_0 COMPLETED BoTorch 0.920000 0.000137 \n", "7 7 7_0 COMPLETED BoTorch 0.860167 0.000010 \n", "8 8 8_0 COMPLETED BoTorch 0.888833 0.000246 \n", "9 9 9_0 COMPLETED BoTorch 0.901667 0.000149 \n", "10 10 10_0 COMPLETED BoTorch 0.560333 0.000001 \n", "11 11 11_0 COMPLETED BoTorch 0.759333 0.000037 \n", "12 12 12_0 COMPLETED BoTorch 0.943500 0.000261 \n", "13 13 13_0 COMPLETED BoTorch 0.946667 0.000170 \n", "14 14 14_0 COMPLETED BoTorch 0.698667 0.000157 \n", "15 15 15_0 COMPLETED BoTorch 0.946667 0.000311 \n", "16 16 16_0 COMPLETED BoTorch 0.917000 0.000087 \n", "17 17 17_0 COMPLETED BoTorch 0.882500 0.001099 \n", "18 18 18_0 COMPLETED BoTorch 0.917667 0.000553 \n", "19 19 19_0 COMPLETED BoTorch 0.101000 0.400000 \n", "20 20 20_0 COMPLETED BoTorch 0.906667 0.000475 \n", "21 21 21_0 COMPLETED BoTorch 0.863667 0.000486 \n", "22 22 22_0 COMPLETED BoTorch 0.950667 0.000251 \n", "23 23 23_0 COMPLETED BoTorch 0.885333 0.000019 \n", "24 24 24_0 COMPLETED BoTorch 0.925333 0.000158 \n", "25 25 25_0 COMPLETED BoTorch 0.942833 0.000456 \n", "\n", " momentum \n", "0 0.580000 \n", "1 0.633423 \n", "2 0.022851 \n", "3 0.176948 \n", "4 0.908830 \n", "5 0.341904 \n", "6 0.590917 \n", "7 1.000000 \n", "8 0.000000 \n", "9 0.286357 \n", "10 1.000000 \n", "11 1.000000 \n", "12 0.913716 \n", "13 0.796705 \n", "14 1.000000 \n", "15 0.634907 \n", "16 0.695670 \n", "17 0.000000 \n", "18 0.203965 \n", "19 0.000000 \n", "20 0.000000 \n", "21 0.491729 \n", "22 0.735959 \n", "23 0.795832 \n", "24 0.722922 \n", "25 0.787437 " ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ax_client.get_trials_data_frame()" ] }, { "cell_type": "markdown", "id": "eacd0e9a", "metadata": { "customInput": null, "originalKey": "9f1ebc55-e6f2-498f-9185-569227c2f3d5", "papermill": { "duration": 0.039871, "end_time": "2024-05-02T22:23:44.566586", "exception": false, "start_time": "2024-05-02T22:23:44.526715", "status": "completed" }, "showInput": false, "tags": [] }, "source": [ "## 6. Retrieve best parameters\n", "\n", "Once it's complete, we can access the best parameters found, as well as the corresponding metric values. Note that these parameters may not necessarily be the set that yielded the highest _observed_ accuracy because Ax uses the highest model _predicted_ accuracy to choose the best parameters (see [here](https://ax.dev/api/service.html#module-ax.service.utils.best_point_mixin) for more details). Due to randomness in the data or the algorithm itself, using observed accuracy may result in choosing an outlier for the best set of parameters. Using the model predicted best will use the model to regularize the observations and reduce the likelihood of picking some outlier in the data." ] }, { "cell_type": "code", "execution_count": 12, "id": "04b209a1", "metadata": { "customInput": null, "customOutput": null, "execution": { "iopub.execute_input": "2024-05-02T22:23:44.648092Z", "iopub.status.busy": "2024-05-02T22:23:44.647594Z", "iopub.status.idle": "2024-05-02T22:23:44.959849Z", "shell.execute_reply": "2024-05-02T22:23:44.959194Z" }, "executionStartTime": 1690415946312, "executionStopTime": 1690415949198, "originalKey": "8fdf0023-2bf5-4cdd-93ea-a8a708dc6845", "papermill": { "duration": 0.354858, "end_time": "2024-05-02T22:23:44.961423", "exception": false, "start_time": "2024-05-02T22:23:44.606565", "status": "completed" }, "requestMsgId": "c0b8c25d-c6ae-476e-be23-f1b963df296b", "showInput": true, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "{'lr': 0.000251361411682019, 'momentum': 0.7359592568329341}" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "best_parameters, values = ax_client.get_best_parameters()\n", "best_parameters" ] }, { "cell_type": "code", "execution_count": 13, "id": "74c63b5e", "metadata": { "customInput": null, "customOutput": null, "execution": { "iopub.execute_input": "2024-05-02T22:23:45.043182Z", "iopub.status.busy": "2024-05-02T22:23:45.042472Z", "iopub.status.idle": "2024-05-02T22:23:45.047109Z", "shell.execute_reply": "2024-05-02T22:23:45.046597Z" }, "executionStartTime": 1690415949308, "executionStopTime": 1690415949313, "originalKey": "f3eb18fc-be99-494a-aeac-e9b05a3bc182", "papermill": { "duration": 0.046529, "end_time": "2024-05-02T22:23:45.048386", "exception": false, "start_time": "2024-05-02T22:23:45.001857", "status": "completed" }, "requestMsgId": "ac214ea0-ea8c-46f2-a988-b42893ef6d6d", "showInput": true, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "{'accuracy': 0.9528822883574557}" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mean, covariance = values\n", "mean" ] }, { "cell_type": "markdown", "id": "104e6977", "metadata": { "customInput": null, "originalKey": "6be3b006-d090-4c73-a64a-12901d1af817", "papermill": { "duration": 0.039941, "end_time": "2024-05-02T22:23:45.128237", "exception": false, "start_time": "2024-05-02T22:23:45.088296", "status": "completed" }, "showInput": false, "tags": [] }, "source": [ "## 7. Plot the response surface and optimization trace\n", "\n", "Contour plot showing classification accuracy as a function of the two hyperparameters.\n", "\n", "The black squares show points that we have actually run; notice how they are clustered in the optimal region." ] }, { "cell_type": "code", "execution_count": 14, "id": "aeb7a873", "metadata": { "customInput": null, "customOutput": null, "execution": { "iopub.execute_input": "2024-05-02T22:23:45.209637Z", "iopub.status.busy": "2024-05-02T22:23:45.209137Z", "iopub.status.idle": "2024-05-02T22:23:45.864015Z", "shell.execute_reply": "2024-05-02T22:23:45.863332Z" }, "executionStartTime": 1690415949431, "executionStopTime": 1690415953540, "originalKey": "1beca759-2fa5-48d1-bfed-c9b13a054733", "papermill": { "duration": 0.699835, "end_time": "2024-05-02T22:23:45.868046", "exception": false, "start_time": "2024-05-02T22:23:45.168211", "status": "completed" }, "requestMsgId": "fa48963e-b43c-4079-81a4-079d347fe9ba", "showInput": true, "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:23:45] ax.service.ax_client: Retrieving contour plot with parameter 'lr' on X-axis and 'momentum' on Y-axis, for metric 'accuracy'. Remaining parameters are affixed to the middle of their range.\n" ] }, { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "autocolorscale": false, "autocontour": true, "colorbar": { "tickfont": { "size": 8 }, "ticksuffix": "", "x": 0.45, "y": 0.5 }, "colorscale": [ [ 0.0, "rgb(247,252,253)" ], [ 0.125, "rgb(229,245,249)" ], [ 0.25, "rgb(204,236,230)" ], [ 0.375, "rgb(153,216,201)" ], [ 0.5, "rgb(102,194,164)" ], [ 0.625, "rgb(65,174,118)" ], [ 0.75, "rgb(35,139,69)" ], [ 0.875, "rgb(0,109,44)" ], [ 1.0, "rgb(0,68,27)" ] ], "contours": { "coloring": "heatmap" }, "hoverinfo": "x+y+z", "ncontours": 25, "type": "contour", "x": [ 1e-06, 1.3011511650442548e-06, 1.692994354296022e-06, 2.2028415765056147e-06, 2.866229883678204e-06, 3.729398352432554e-06, 4.852511011181743e-06, 6.3138503555892e-06, 8.215273746089953e-06, 1.0689313005882424e-05, 1.390841207112662e-05, 1.809694657026198e-05, 2.354686311364001e-05, 3.063802837345029e-05, 3.986470631277378e-05, 5.1870009063012666e-05, 6.749072272319499e-05, 8.781563250096393e-05, 0.00011426141253772724, 0.00014867137004306603, 0.00019344392634026088, 0.0002516997901283655, 0.0003274994751669172, 0.0004261263236648159, 0.0005544547624925005, 0.0007214294601814526, 0.000938688782612345, 0.0012213760031100258, 0.0015891948094037057, 0.002067782677737912, 0.0026904978401970136, 0.0035007443993213955, 0.004554997653699184, 0.005926740503884541, 0.007711585311544345, 0.010033938212454078, 0.013055670395116691, 0.01698740074503987, 0.02210317627048227, 0.028759573555516536, 0.03742055263793628, 0.04868979566145066, 0.06335278435066323, 0.0824315491666629, 0.10725590623460621, 0.13955614735503497, 0.18158364372009145, 0.23626776957937787, 0.3074200836506151, 0.4 ], "xaxis": "x", "y": [ 0.0, 0.02040816326530612, 0.04081632653061224, 0.061224489795918366, 0.08163265306122448, 0.1020408163265306, 0.12244897959183673, 0.14285714285714285, 0.16326530612244897, 0.18367346938775508, 0.2040816326530612, 0.22448979591836732, 0.24489795918367346, 0.26530612244897955, 0.2857142857142857, 0.3061224489795918, 0.32653061224489793, 0.3469387755102041, 0.36734693877551017, 0.3877551020408163, 0.4081632653061224, 0.42857142857142855, 0.44897959183673464, 0.4693877551020408, 0.4897959183673469, 0.5102040816326531, 0.5306122448979591, 0.5510204081632653, 0.5714285714285714, 0.5918367346938775, 0.6122448979591836, 0.6326530612244897, 0.6530612244897959, 0.673469387755102, 0.6938775510204082, 0.7142857142857142, 0.7346938775510203, 0.7551020408163265, 0.7755102040816326, 0.7959183673469387, 0.8163265306122448, 0.836734693877551, 0.8571428571428571, 0.8775510204081632, 0.8979591836734693, 0.9183673469387754, 0.9387755102040816, 0.9591836734693877, 0.9795918367346939, 1.0 ], "yaxis": "y", "z": [ [ 0.48016966367424696, 0.4787858611458292, 0.4792272178750478, 0.4818960773237056, 0.48720193366171755, 0.4955309181444036, 0.5072053466649045, 0.522439460770888, 0.5412986418737616, 0.5636611711767863, 0.589206410008319, 0.617440152848082, 0.6477378684225262, 0.6793874378985327, 0.7116231786763938, 0.7436506630478049, 0.7746653813843842, 0.8038691666708161, 0.8304878261493764, 0.8537923686693457, 0.8731251485397535, 0.8879317762041661, 0.897799533543605, 0.9024918882806625, 0.9019661166370548, 0.8963881703867506, 0.8861161453578699, 0.8716633402513967, 0.8536769526666856, 0.8328967260576553, 0.810084071400334, 0.7859675496276498, 0.7612090434118199, 0.7363850927030441, 0.7119789699854897, 0.6883802277567085, 0.6658894034680125, 0.6447262606882384, 0.625040397407761, 0.6069233161652172, 0.5904211879304085, 0.5755476061058538, 0.5622956546246625, 0.5506486204338993, 0.5405886630763825, 0.5321026971974191, 0.5251846248827701, 0.5198328476843893, 0.5160416650754558, 0.5137846964037721 ], [ 0.4776650096792725, 0.4761703888602356, 0.47652062705839343, 0.47913314992441525, 0.484437712054181, 0.4928452630627401, 0.5047044751860641, 0.5202511705636108, 0.5395599909158322, 0.5625000284954782, 0.5887248308737304, 0.617705862991638, 0.648783189480578, 0.681212077245674, 0.7141979203384292, 0.7469204651612554, 0.7785515251187904, 0.8082708252214671, 0.8352838294408074, 0.8588440358942829, 0.8782808179618147, 0.8930331637997787, 0.902689204461897, 0.9070209270058622, 0.9060026099063311, 0.8998237469777913, 0.8888708948463535, 0.8736888327966574, 0.8549545781319237, 0.8334332463516549, 0.809907816398624, 0.7851245061581652, 0.7597590976193396, 0.7343985513935724, 0.7095333300150144, 0.6855571334634281, 0.6627717702933866, 0.6413955994908008, 0.6215744172645236, 0.6033938990205737, 0.5868928150118977, 0.5720762812482445, 0.5589283252113786, 0.5474230538753502, 0.5375337036038319, 0.529238807927138, 0.522524613427135, 0.5173826773784591, 0.513801264549109, 0.5117487012754314 ], [ 0.475495624642264, 0.47392318792931587, 0.47421151500225067, 0.4767910880782996, 0.4821101044498355, 0.4906033271946538, 0.5026463020586138, 0.5184982490678599, 0.5382430111559764, 0.5617382690166127, 0.5886092786659584, 0.6182920373890765, 0.6500918089727494, 0.6832330235268462, 0.7168944117878578, 0.7502321461750169, 0.7823963231753217, 0.8125461174736327, 0.8398678742542159, 0.8635987382935721, 0.8830566122258959, 0.8976760988935037, 0.9070487712201905, 0.9109575396453689, 0.9093963460603877, 0.9025798497027292, 0.8909239430533191, 0.8750060552462228, 0.855532236690322, 0.833289675374628, 0.8090795796591254, 0.7836632354005879, 0.7577284866992867, 0.7318715169213262, 0.7065892630494419, 0.6822791720566546, 0.6592440876692072, 0.6377007763044915, 0.617791016559601, 0.5995943755528366, 0.5831418678206858, 0.5684297107539283, 0.555432398663051, 0.5441143293257529, 0.5344392218189207, 0.5263765372963334, 0.5199040240703752, 0.5150053241548576, 0.5116612765332251, 0.5098332140698082 ], [ 0.47369804600561544, 0.472087987262025, 0.472351386528925, 0.47492939614504825, 0.48028622011594674, 0.48887854609472575, 0.5011083401790815, 0.517259241552269, 0.5374242649503347, 0.5614475590744372, 0.5889238930978005, 0.6192534457875847, 0.6517082200593831, 0.6854843628069811, 0.7197367631258484, 0.753600671036726, 0.7862067142765788, 0.8166952705973409, 0.8442348944731277, 0.8680475524731012, 0.8874411203712939, 0.9018477798940845, 0.9108648475338301, 0.9142887010903188, 0.9121350454364597, 0.9046453948876576, 0.8922662092728293, 0.875607827681179, 0.8554040407904113, 0.832461383970495, 0.8075959953195212, 0.7815815164054065, 0.7551159436405469, 0.7288034792070675, 0.7031468557309524, 0.6785469188484187, 0.6553073576598184, 0.6336431855100071, 0.6136919522501565, 0.59552681993948, 0.5791706628541736, 0.5646103426322655, 0.5518103080475026, 0.540724687617395, 0.5313070653505034, 0.5235171233814884, 0.5173232644245214, 0.5127001630059662, 0.5096199458878778, 0.5080357171669605 ], [ 0.4723065396864438, 0.4707063567655008, 0.47098991324655687, 0.47360636709040055, 0.4790329273296559, 0.4877453478519953, 0.5001701830446035, 0.5166151610205973, 0.5371824580788287, 0.561700959279209, 0.5897333507271865, 0.6206447423976019, 0.6536764725298028, 0.687999706902686, 0.7227488085044226, 0.7570411047771461, 0.7899902714317109, 0.8207198435174942, 0.8483820240660936, 0.8721847729313525, 0.8914272322938487, 0.9055407961946007, 0.914130577722787, 0.9170088171530351, 0.9142147601970068, 0.9060184129455042, 0.8928980479398871, 0.8754964917462708, 0.8545735585993407, 0.8309527041987077, 0.8054619388876167, 0.778884567097013, 0.7519268260249973, 0.7251997657311503, 0.6992112944972577, 0.6743653706508317, 0.650966385868798, 0.6292274609592025, 0.6092816990115693, 0.591195530210867, 0.5749832593156572, 0.5606218848985682, 0.5480652498895362, 0.5372566130546881, 0.5281387760359455, 0.5206609205816984, 0.5147812669804481, 0.5104645401132051, 0.5076731041175169, 0.5063511425564555 ], [ 0.47135209944819756, 0.46981643241197785, 0.47017332571513015, 0.47287709350486734, 0.4784144707467223, 0.48727641730390153, 0.49991054143036784, 0.5166466889909895, 0.53759589720568, 0.5625705291551024, 0.5911006864799898, 0.6225186277911949, 0.6560387201972089, 0.6908110990023502, 0.7259533064660726, 0.7605680305249088, 0.7937547574906877, 0.8246223406993141, 0.8523081883082335, 0.8760073931186013, 0.8950114432266375, 0.9087522540927664, 0.9168445316090371, 0.91911852277527, 0.9156386352917874, 0.9067048338109698, 0.8928281715498262, 0.8746830619991263, 0.8530532454228346, 0.8287766926987247, 0.8026905083334014, 0.775585141589915, 0.7481732685270605, 0.7210717168344105, 0.6947930481757273, 0.6697441293489584, 0.6462299642850767, 0.624461658425554, 0.6045676324322322, 0.5866072138613773, 0.5705856497525772, 0.5564695056890767, 0.5442014013644749, 0.5337130802728467, 0.5249358867324507, 0.5178077785415818, 0.5122759994945694, 0.5082944785645305, 0.5058150820223932, 0.5047728254672581 ], [ 0.4708614424921083, 0.4694516038437875, 0.469942703529631, 0.4727912631716441, 0.4784897063485897, 0.4875394377987006, 0.5004038246473759, 0.5174308243803346, 0.5387392857670343, 0.5641243256325926, 0.5930846936290106, 0.6249237779665497, 0.6588336659853405, 0.6939478941377527, 0.7293711573643732, 0.7641950048437165, 0.7975077229784647, 0.8284058635855573, 0.8560137305175991, 0.8795146481661676, 0.8981932953133149, 0.9114831020734567, 0.9190098781675119, 0.9206237942626064, 0.9164159705854755, 0.906717548255833, 0.8920728972765105, 0.8731866565301224, 0.8508639902589629, 0.8259548524712743, 0.7993029077630439, 0.7717035225433864, 0.7438742399727541, 0.716436780247373, 0.6899079852543315, 0.6646975347514537, 0.6411110165879261, 0.6193574121631267, 0.5995601965793409, 0.5817711670452748, 0.5659859529506652, 0.5521600443867164, 0.5402241579771645, 0.5300978321636733, 0.5217002603400269, 0.5149574715595585, 0.509805019455444, 0.5061853762189221, 0.5040394941105327, 0.5032932855167476 ], [ 0.4708560568581833, 0.4696392461255768, 0.4703322820295559, 0.47339090530030004, 0.47930916169929166, 0.4885934853893931, 0.5017162181350519, 0.5190369801400254, 0.5406798792153901, 0.566422856441989, 0.5957370346265767, 0.6279026787805717, 0.662095015991558, 0.6974356977216537, 0.7330207025252783, 0.7679341075679594, 0.8012562057357585, 0.832073869925251, 0.8595001625947465, 0.8827077238345686, 0.9009750511556246, 0.9137377690097072, 0.9206339754154633, 0.9215354958247631, 0.916561727313066, 0.9060759346717413, 0.8906558006105321, 0.871034233420039, 0.8480348571326467, 0.822516908184488, 0.7953282962090935, 0.7672674424674727, 0.7390555216720687, 0.7113185323125955, 0.684577428529767, 0.659244746971755, 0.6356267048079418, 0.6139300635259514, 0.5942730529592729, 0.5766994432113411, 0.5611946032965816, 0.547702225547688, 0.5361403797893305, 0.5264156709712249, 0.5184344433895662, 0.5121101352555131, 0.5073660084548933, 0.5041326237084329, 0.5023398808578049, 0.5019048586366104 ], [ 0.4713513590428497, 0.4703995851862688, 0.4713679134712007, 0.4747082939156745, 0.48091219495838583, 0.4904853011811426, 0.5039012298458336, 0.5215224129332137, 0.5434729631733075, 0.5695151709589037, 0.599099317133004, 0.631489567878024, 0.6658500796903704, 0.7012954528066004, 0.7369171692168883, 0.7717956397939113, 0.8050065874101657, 0.8356301037044135, 0.8627701092610726, 0.8855896985550606, 0.9033616549599681, 0.9155241735996715, 0.9217284317145427, 0.9218694381195733, 0.9160965595842808, 0.904805914314113, 0.8886077998008639, 0.8682606250799091, 0.8446030177037733, 0.8185006639332724, 0.7908036333831308, 0.7623119558394225, 0.7337496194838711, 0.7057466321969659, 0.6788281498236237, 0.6534097789378968, 0.6297984965938651, 0.6081987598049201, 0.5887232078855476, 0.5714070067825734, 0.5562245303555896, 0.5431068668161688, 0.5319586337459739, 0.5226727448549773, 0.5151420091203842, 0.5092666765530609, 0.5049572476843243, 0.50213211918182, 0.5007102217663374, 0.5006001998297582 ], [ 0.4723560165559276, 0.471744783143257, 0.4730658209881505, 0.47676423110991867, 0.4833245971406651, 0.4932458947202901, 0.5069949805926373, 0.5249268468418573, 0.5471567453221353, 0.5734350687119905, 0.6032005318908703, 0.635708730704974, 0.670118660642472, 0.7055427610625495, 0.7410723153126982, 0.7757880120930295, 0.8087646502611527, 0.8390787456469585, 0.8658274974700383, 0.8881657602816099, 0.9053610068545073, 0.9168541134587073, 0.9223096429167017, 0.9216469925670445, 0.9150474128664543, 0.9029405455652391, 0.8859676368044836, 0.8649088173500734, 0.8406138273551714, 0.8139519249962713, 0.7857735236872228, 0.7568792683715135, 0.7279956150511674, 0.6997567125372551, 0.6726923065089504, 0.6472214794728308, 0.6236521924335616, 0.6021865215389673, 0.5829311152624695, 0.5659118673643886, 0.5510913222395362, 0.538387071977711, 0.5276894201425519, 0.5188768140695104, 0.5118278699071197, 0.5064291341675297, 0.502578016147833, 0.5001806786860854, 0.499145334800675, 0.49937267402514385 ], [ 0.47387147981500355, 0.47367831412635836, 0.47543176166628925, 0.47956691038041493, 0.4865570040474758, 0.49688818988524647, 0.5110124009983517, 0.5292667238331614, 0.5517477670558923, 0.5781983438345334, 0.6080553292819691, 0.6405733904642394, 0.6749123609031253, 0.7101875011301348, 0.7454943071491944, 0.7799178449728602, 0.8125358588759275, 0.8424248177741027, 0.8686780267495211, 0.8904437241084123, 0.9069845537074933, 0.9177439977464046, 0.9223997389725866, 0.92089625275445, 0.9134487098353594, 0.9005211137234326, 0.882782640518786, 0.861030369490257, 0.8361209658807658, 0.8089244350325165, 0.7802900359073938, 0.7510185151588588, 0.7218389539771203, 0.6933902063699284, 0.6662073201130486, 0.6407134669011711, 0.6172179120854703, 0.5959202765648419, 0.5769207517806033, 0.5602351899334199, 0.5458133663980054, 0.5335584006904062, 0.5233453724417905, 0.515037483642584, 0.5084985444407919, 0.5036009764647582, 0.5002289059444902, 0.4982763492026415, 0.49764117646076506, 0.49821664988349945 ], [ 0.47589175191329347, 0.47619467498912676, 0.47846067129477043, 0.48311148916199886, 0.4906043836818352, 0.5014063789076586, 0.5159462926841178, 0.5345336381963688, 0.5572397555286678, 0.5838020589082136, 0.6136635060100739, 0.6460853510328685, 0.6802343702129254, 0.7152337721209915, 0.7501878348898068, 0.784190275610986, 0.8163258642386505, 0.8456748541172714, 0.8713299424423013, 0.8924348684833883, 0.9082481906791966, 0.9182158554588112, 0.9220277747434709, 0.9196535571689306, 0.9113441024868274, 0.8975984966303303, 0.8791095546647867, 0.8566858292072116, 0.8311865438916094, 0.8034797632920833, 0.7744124605362078, 0.7447854683069197, 0.7153311621073376, 0.6866941067844384, 0.6594156957099601, 0.6339240125295182, 0.6105300392767405, 0.5894308590033042, 0.5707196614817391, 0.5544013764686508, 0.5404119616579186, 0.5286390070671545, 0.5189414211372715, 0.5111663923599037, 0.5051623700576984, 0.5007873305832801, 0.49791205577013636, 0.49641863352257254, 0.49619505492668736, 0.49712770932957334 ], [ 0.4784034056257464, 0.479279442602618, 0.48213680534065767, 0.4873803905866212, 0.4954466381556144, 0.5067770989972853, 0.5217697014901608, 0.5406987399965457, 0.5636067099070441, 0.5902260336419287, 0.6200107578302148, 0.6522354094206789, 0.6860797373374666, 0.7206801453030944, 0.7551544354387696, 0.7886094308165558, 0.8201411904767293, 0.8488378183286273, 0.8737951185074686, 0.8941551050455921, 0.9091734751922668, 0.9182985481310619, 0.9212309401762757, 0.9179648278479177, 0.9087880567793517, 0.8942342377425295, 0.8750151520312835, 0.8519449852911761, 0.8258810708807995, 0.7976870703419711, 0.7682069591109888, 0.7382421480007275, 0.7085294766039897, 0.6797206532157181, 0.652364779581787, 0.6268958728089347, 0.6036271234941246, 0.5827529712520724, 0.5643589665585396, 0.5484381144760068, 0.5349113955593556, 0.5236497399849052, 0.5144949138681247, 0.5072773505138641, 0.5018296545168868, 0.4979951412111122, 0.4956313069023799, 0.4946086360909822, 0.49480576699759665, 0.4961027838133956 ], [ 0.4813858374444666, 0.48290965624020704, 0.4864343316624229, 0.49234424098666163, 0.501050110407209, 0.512961885370282, 0.5284398241423081, 0.5477176894834136, 0.5708073398268265, 0.5974357156914712, 0.627070400397149, 0.6590044029764484, 0.6924360452554954, 0.7265201625942057, 0.7603929593656518, 0.7931789901792659, 0.8239900169596317, 0.8519261967384837, 0.8760904310391686, 0.8956264934922036, 0.9097891723172488, 0.9180291406176947, 0.9200556500854662, 0.9158862984758769, 0.9058460846530847, 0.8905008701500747, 0.8705764384540731, 0.8468868298598355, 0.8202831906577599, 0.7916226834188282, 0.7617460590265324, 0.731456308826548, 0.7014963765961237, 0.6725269370788995, 0.6451064519828779, 0.6196760686602207, 0.5965517374866058, 0.5759251068661801, 0.5578733410704142, 0.542376387760475, 0.5293389811889941, 0.518614198620712, 0.5100256853066812, 0.5033864210071745, 0.49851276428476615, 0.4952332599900337, 0.49339228704963456, 0.49284913816653675, 0.4934736680646141, 0.4951402268068003 ], [ 0.48481173136508604, 0.4870544759168267, 0.4913182843657175, 0.4979632696422876, 0.5073696431977193, 0.5199101345632093, 0.5359018750387086, 0.5555347286842671, 0.5787890502198962, 0.6053853999880301, 0.6348055833108552, 0.6663646562529708, 0.6992843555237299, 0.7327429861384137, 0.7659000921686285, 0.797902732622405, 0.8278829156060638, 0.8549571075219998, 0.8782393375889745, 0.8968790962572223, 0.9101331394836597, 0.9174543976290297, 0.9185585533083984, 0.9134849768762728, 0.9025946889864771, 0.8864817526532348, 0.86588042038243, 0.8415991517225988, 0.8144791079254956, 0.7853694209882487, 0.7551079514728539, 0.7245007749712762, 0.6942989988709634, 0.6651744196913548, 0.6376967519070054, 0.6123156103889421, 0.5893502889282265, 0.568989431932166, 0.5513009439351777, 0.5362504445508405, 0.5237250477150388, 0.5135587371598233, 0.5055560713612526, 0.4995119399684224, 0.4952261481709525, 0.49251246783732405, 0.491202427591385, 0.49114460970940654, 0.49220068312091786, 0.4942398307975578 ], [ 0.4886476927999529, 0.4916760497081302, 0.4967457637916201, 0.504188969995959, 0.5143508392494238, 0.5275620150065763, 0.5440923909858804, 0.5640859651268421, 0.587491187493303, 0.6140211755051773, 0.6431715635391232, 0.6742815697712586, 0.7066002628284423, 0.7393340859568568, 0.7716708275687316, 0.8027849436699934, 0.8318333629751586, 0.8579531488482144, 0.8802733642874033, 0.8979530932466547, 0.9102543827691816, 0.9166323343673088, 0.9168075884628188, 0.910839293260282, 0.8991215639872006, 0.8822707478061369, 0.8610234785196842, 0.8361777136493009, 0.8085616466951789, 0.7790156174953297, 0.7483755580930882, 0.7174526030165611, 0.687008427053557, 0.6577283570370109, 0.6301954315081164, 0.6048691668154788, 0.5820727845214368, 0.5619916221361569, 0.5446833070382199, 0.5300977176205139, 0.5181028786212966, 0.508512412839529, 0.5011108629403653, 0.4956744741046832, 0.4919862962383022, 0.48984543305324285, 0.4890709194846687, 0.48950116455639114, 0.4909902658152658, 0.4934027960302807 ], [ 0.4928550064590956, 0.49673051647777905, 0.502667265751062, 0.510965840619108, 0.521932262181555, 0.5358510478498654, 0.5529419211577759, 0.5733019801739424, 0.596847603951227, 0.6232833700328096, 0.6521177518153078, 0.6827151325538874, 0.7143549085093835, 0.7462758546002413, 0.7776987947296653, 0.8078305681368498, 0.8358578471923777, 0.8609426412194697, 0.8822327920432708, 0.8989002626768265, 0.9102146454062394, 0.9156337043423795, 0.9148831840556426, 0.9080399877172913, 0.8955257939063468, 0.8779716644329597, 0.8561103143582727, 0.8307249632086923, 0.8026288922522112, 0.7726538120822256, 0.7416353427774666, 0.7103920587621897, 0.6796988475708619, 0.6502571286424806, 0.6226654391017294, 0.5973946775895486, 0.5747725445727048, 0.5549806521138974, 0.5380651735212956, 0.5239586903224629, 0.5125085911952827, 0.5035068714872339, 0.4967171949631671, 0.4918967127224701, 0.48881163455097926, 0.48724660829922767, 0.4870086127702763, 0.48792646475622803, 0.48984731178521707, 0.4926316574405761 ], [ 0.49739047120289487, 0.5021690738057982, 0.5090280382266825, 0.5182330687328047, 0.5300474257103922, 0.5447062703248378, 0.5623771626435715, 0.5831098618072083, 0.6067886319164036, 0.6331084589818665, 0.6615893894071372, 0.691621208233415, 0.7225158322989695, 0.7535480561927124, 0.7839763615307396, 0.8130450253251652, 0.8399754480831221, 0.8639590240548221, 0.8841659067399482, 0.8997832170751059, 0.9100887293765454, 0.9145433167362671, 0.9128796700928139, 0.9051909073837106, 0.891917584041923, 0.8736971553329971, 0.8512523333906159, 0.8253482076360402, 0.7967823769279808, 0.7663790798611996, 0.7349758584545081, 0.703401404307719, 0.6724465718825019, 0.6428314712583844, 0.6151723312092654, 0.589952907969457, 0.5675058656158509, 0.5480085327561253, 0.531494280200181, 0.5178767014301726, 0.5069809501527146, 0.4985761645345464, 0.4924043665756254, 0.4882032928591955, 0.4857223567641915, 0.4847320696438616, 0.48502786434771844, 0.4864295794554456, 0.488778031948935, 0.49193017561709246 ], [ 0.5022072686896885, 0.5079390512647218, 0.515769387793152, 0.525926068667793, 0.538626503512472, 0.554053985606521, 0.5723226197380966, 0.5934347509047825, 0.6172425556739434, 0.6434304781225335, 0.671528811371448, 0.70095251270896, 0.7310475823673144, 0.761128046377305, 0.7904944673690585, 0.8184336528616527, 0.8442068656746017, 0.8670394065947039, 0.8861269955393003, 0.9006731618480364, 0.9099631631049336, 0.9134605309294659, 0.9109065334187958, 0.9024087348561831, 0.8884168799600016, 0.8695667041923414, 0.8465652851696633, 0.8201571771484398, 0.7911247844500273, 0.7602870033896973, 0.7284860349619807, 0.6965635029765183, 0.6653289313707825, 0.6355236216727917, 0.6077836155495265, 0.5826069453863079, 0.5603316278318689, 0.5411299908102285, 0.5250210765433431, 0.5118976803362947, 0.5015611074278177, 0.49375649124309645, 0.48820358878568004, 0.48462055645924595, 0.4827401939946489, 0.4823193010528188, 0.48314233858976624, 0.4850208034552293, 0.4877897910734619, 0.49130319718514703 ], [ 0.507255829592677, 0.5139849431218813, 0.522829883825825, 0.5339778300472547, 0.5475977463265377, 0.5638191396956909, 0.5827018625082648, 0.6042009808262325, 0.6281366623356563, 0.6541820039251777, 0.6818763092752205, 0.7106592561065854, 0.739912044915106, 0.7689907327056172, 0.7972421742235092, 0.8240007965450492, 0.8485729624842164, 0.8702224459850055, 0.8881735204278398, 0.90164662427752, 0.9099328078954682, 0.9124964415238699, 0.9090861161802491, 0.8998201221415137, 0.8851502708986786, 0.8657034048491878, 0.8421660113757877, 0.8152609263332558, 0.7857571759428255, 0.7544713075378554, 0.7222532331203048, 0.6899602619396059, 0.6584230581955453, 0.6284063762420604, 0.6005680278179388, 0.5754216366060685, 0.5533108426302911, 0.5344020832431893, 0.5186983706612147, 0.5060698025292747, 0.49629225922977654, 0.48908585971752183, 0.4841476561378856, 0.48117623917790225, 0.47988812500095984, 0.48002692805828434, 0.4813667654808398, 0.483711440498437, 0.4868909167537174, 0.4907564897141055 ], [ 0.5124846696708087, 0.5202493691508393, 0.5301464315829723, 0.5423200614731747, 0.5568886227564996, 0.5739263772117145, 0.5934384534890993, 0.6153328820938642, 0.6393979460639881, 0.6652947711487506, 0.692570636130354, 0.7206894606507084, 0.7490684900143948, 0.77710827623935, 0.8042059570499326, 0.8297486045704819, 0.8530929392983213, 0.8735457611309694, 0.8903626856763722, 0.9027811060634613, 0.9100953254746954, 0.9117667050649948, 0.9075457917922503, 0.8975557011086214, 0.8822459715512017, 0.862229408598525, 0.8381682422613838, 0.8107640832398112, 0.780775786217752, 0.7490212136376698, 0.716361111351647, 0.6836709446562171, 0.651804571487621, 0.6215520769598324, 0.5935947450800385, 0.5684629629532474, 0.5465061336199881, 0.5278837362856565, 0.5125808902718569, 0.5004430534284081, 0.49121921063937246, 0.48460366042274045, 0.48027053981344453, 0.4778990913723262, 0.47719002957298057, 0.4778744049532832, 0.47971666130563945, 0.4825135564784865, 0.48609048390717935, 0.49029655608504297 ], [ 0.5178411767291531, 0.526673945545648, 0.5376552034055821, 0.5508841356725329, 0.5664267145066162, 0.584300828818353, 0.6044566041489372, 0.626755316772547, 0.6509535341207378, 0.6766999973184579, 0.7035492110522488, 0.7309889915721925, 0.758473357837482, 0.7854495608795148, 0.8113687795493519, 0.8356756100589711, 0.8577822848977014, 0.8770430796101865, 0.8927475956236083, 0.9041499528097661, 0.9105443104201516, 0.9113827784466709, 0.9064087496573728, 0.895742117688317, 0.8798271794455159, 0.8592601169908005, 0.8346775057152901, 0.8067625460258747, 0.7762685001121952, 0.7440186067542577, 0.7108873728919343, 0.6777703962112744, 0.6455461925356613, 0.6150315344266095, 0.5869325371959248, 0.5617973485800654, 0.539981141114902, 0.5216351957497123, 0.5067247436391689, 0.49506868678849236, 0.48638783757815135, 0.4803501466513469, 0.4766069008923446, 0.4748184332974782, 0.47467028926924415, 0.4758816607520453, 0.47820801747945074, 0.48143970806325215, 0.48539807998605866, 0.4899304331890625 ], [ 0.5232723375677217, 0.5332000589255772, 0.5452924303009932, 0.5596018538223194, 0.5761404020352082, 0.5948686796460505, 0.6156816157340201, 0.6383940004229014, 0.6627308975916751, 0.688328481667953, 0.7147480882023797, 0.7415013541901483, 0.7680798289512276, 0.7939794757343369, 0.818709017372746, 0.8417751967413176, 0.8626506416936415, 0.8807413128459094, 0.8953732793300706, 0.9058169594884353, 0.9113621509807946, 0.9114433461336171, 0.9057849339260259, 0.8944933065090227, 0.8780043141040607, 0.856897346075033, 0.8317853589703575, 0.8033388403228615, 0.7723111884957216, 0.7395351483413065, 0.7059014810681843, 0.6723272327881928, 0.6397163141944413, 0.6089128963042116, 0.5806488544813897, 0.5554908928953997, 0.5337998361205053, 0.5157173710224466, 0.501186762136819, 0.4899985623200114, 0.4818444363454303, 0.47636581806133316, 0.4731915246889321, 0.4719636485953473, 0.47235334130322604, 0.4740687103394489, 0.4768569638718925, 0.48050265266101655, 0.4848235562975411, 0.4896654798305415 ], [ 0.5287254008604471, 0.5397695447967783, 0.552995064715848, 0.5684060526911271, 0.585959377010596, 0.6055575631565333, 0.6270401523318753, 0.6501756628763653, 0.6746579038672265, 0.7001105429791686, 0.7261017576974544, 0.7521673202176616, 0.7778372354086378, 0.8026580679732961, 0.8261992984661768, 0.848034041710412, 0.867699718851618, 0.8846577514012233, 0.8982728947714148, 0.9078312453834021, 0.9126133702130811, 0.9120263330727356, 0.9057621326696319, 0.8939014423266243, 0.8768665219928329, 0.8552217925969855, 0.8295633332369651, 0.8005574759653677, 0.7689641498186255, 0.7356294981572196, 0.701462443887112, 0.6674020504905089, 0.6343775479352379, 0.6032604652615265, 0.5748088444762303, 0.5496085128026136, 0.5280257242903292, 0.510191050065506, 0.49602370266686013, 0.48528434648614915, 0.4776349526818303, 0.4726907064463929, 0.4700586802939063, 0.469363622929841, 0.47026319346380163, 0.47245523866357236, 0.4756794138811655, 0.47971504617345306, 0.48437677106292926, 0.48950915875116746 ], [ 0.5341484773152707, 0.5463252777536174, 0.5607013303394166, 0.5772310803935173, 0.5958150158968802, 0.6162968195307468, 0.6384603874491216, 0.6620280922734196, 0.6866627614358036, 0.7119758562556887, 0.7375428469158472, 0.7629244527410591, 0.787690377911735, 0.8114396305432666, 0.8338053312212453, 0.8544306186719698, 0.8729213620969356, 0.8887975476975891, 0.90146439419517, 0.9102228300645551, 0.9143389354514024, 0.9131818560004574, 0.9063974268239368, 0.8940275737770189, 0.8764726259771115, 0.8542853633196383, 0.828057215398704, 0.7984607544622261, 0.7662689476857814, 0.7323448256638126, 0.6976167742333812, 0.6630457078354018, 0.6295852666914554, 0.5981334628466024, 0.5694742830327226, 0.5442129732010206, 0.5227209135341191, 0.5051159569035844, 0.49129128528191335, 0.4809765615779525, 0.47380408627539244, 0.46936356775760085, 0.46724141388705687, 0.4670461380814628, 0.46842291040106016, 0.47106016742636486, 0.47469069949201326, 0.4790891355221264, 0.4840673300921545, 0.4894688177353904 ], [ 0.5394910824495254, 0.5528116845285089, 0.5683511772751004, 0.5860131664454438, 0.6056406458334977, 0.6270176523651677, 0.6498720591200264, 0.673880099712718, 0.6986738997355553, 0.7238532412852043, 0.7490017888160826, 0.7737066039047303, 0.79757882045298, 0.8202717929004433, 0.8414847872869821, 0.860933826581492, 0.8782958542179918, 0.8931516019475758, 0.9049478528237711, 0.9129992112910752, 0.9165519169115524, 0.9149267145565885, 0.907709926704814, 0.8948922206794048, 0.876841937075181, 0.8541045562442748, 0.8272825222632714, 0.797065529480949, 0.7642459372595743, 0.7297067850741004, 0.6943967267438099, 0.6592977311666907, 0.6253861539183205, 0.5935847254501119, 0.5647023949180522, 0.5393637752316129, 0.5179450107608703, 0.5005496168347793, 0.4870430402655906, 0.47712347259636795, 0.47039427373979853, 0.46642099144924437, 0.46477079005847466, 0.46503723586617046, 0.46685408427703856, 0.46990121537485974, 0.473905205500856, 0.4786364534292998, 0.4839043311510647, 0.4895514747704041 ], [ 0.5447046300055673, 0.5591751931693614, 0.5758866616804318, 0.5946907104328677, 0.6153717304512863, 0.6376532125306544, 0.6612064627217337, 0.6856614346822831, 0.710619817534893, 0.7356704454585964, 0.7604065172475882, 0.7844434624636935, 0.8074362396042074, 0.8290946857987815, 0.8491862981797449, 0.8675017828101511, 0.8837904753749599, 0.897694894419719, 0.9087035550613607, 0.9161431067172064, 0.9192347747058552, 0.9172411048969956, 0.9096765584402005, 0.8964692115602724, 0.8779482875502953, 0.8546568294631749, 0.8272220408099015, 0.7963613523337152, 0.7628927192047225, 0.7277220972784144, 0.6918188979137398, 0.6561848855606666, 0.6218167617894408, 0.589659306704685, 0.5605445268884486, 0.5351158610258411, 0.5137538036896827, 0.49654598893256324, 0.4833289419733668, 0.47376981128216067, 0.46744456434866305, 0.46389644763408466, 0.4626751021034487, 0.4633605706228278, 0.46557630544846546, 0.4689944648229886, 0.4733360129004314, 0.4783675233034424, 0.48389611820369577, 0.48976361217953507 ], [ 0.5497428856166089, 0.5653646325435181, 0.5832522686121324, 0.6032045115948825, 0.6249459998044017, 0.6481386336914354, 0.6723964055826211, 0.6973026748017819, 0.7224289232333893, 0.7473539478081573, 0.771682232808993, 0.7950602267709864, 0.8171899128893382, 0.8378402552540495, 0.856848609978879, 0.874080787039985, 0.8893583063754582, 0.9023852268734042, 0.9126908080481541, 0.919611365799107, 0.9223383659190929, 0.9200679164751973, 0.9122321300397241, 0.8986874917757476, 0.8797220796609324, 0.8558812649454888, 0.8278258975117577, 0.7963102242747505, 0.7621836536987483, 0.7263778307436184, 0.6898832560516779, 0.6537199500812587, 0.61890207944086, 0.5863929501379597, 0.5570446221154226, 0.5315180813479696, 0.5101976729518773, 0.4931538228441591, 0.4801938181671154, 0.47095535446700815, 0.4649894188579325, 0.46181930400984567, 0.46097907953396683, 0.46203677329240056, 0.4646066512102615, 0.46835394824244264, 0.47299456195770956, 0.4782915822462252, 0.4840500516714521, 0.49011098449574375 ], [ 0.5545623910018955, 0.5713315963704365, 0.5903951957485953, 0.6114979593543711, 0.634303545403115, 0.6584110403378245, 0.6833761435012877, 0.7087351082965483, 0.7340293815638141, 0.7588287927741363, 0.7827512504119496, 0.8054774571004483, 0.8267604408730814, 0.8464318058955006, 0.8643999044796127, 0.8806044220497518, 0.8949372249832295, 0.9071622731134046, 0.9168473217840388, 0.9233348876100245, 0.9257825306675961, 0.9233144038096368, 0.91527289907093, 0.9014374259739042, 0.8820568252413534, 0.8576827025404924, 0.8290139301120746, 0.7968478939106312, 0.7620704359720396, 0.725641413564683, 0.6885726479277836, 0.6519007410778049, 0.6166541242545418, 0.5838103933949925, 0.5542374297638859, 0.5286113586515142, 0.5073196685329171, 0.49041470376267504, 0.47767555034476705, 0.4687134022486703, 0.4630574822677598, 0.4602138570367243, 0.45970312799389906, 0.46108285369395335, 0.46395921231982434, 0.467991269435763, 0.4728903456686726, 0.47841633008914786, 0.4843723006236851, 0.49059844456659046 ], [ 0.5591228688883807, 0.5770307853218938, 0.5972656141729812, 0.6195172025024959, 0.6433868984734803, 0.6684095462829411, 0.6940813167084525, 0.7198906251271073, 0.7453489766143337, 0.7700184475440421, 0.7935328939766864, 0.815611077287054, 0.8360617984246752, 0.8547838273691556, 0.8717572123239743, 0.8869927167572158, 0.9004490379026997, 0.9119468371863916, 0.9210888845430844, 0.9272192073746988, 0.9294579727656189, 0.9268556865675442, 0.9186619698383803, 0.9045776333756469, 0.8848161164033566, 0.8599374899202836, 0.830679637606454, 0.7978864015666147, 0.7624836180519586, 0.7254613541405633, 0.6878528142585444, 0.650709444734713, 0.6150706069695219, 0.5819234868993244, 0.5521463700806211, 0.5264264628518558, 0.5051531758978938, 0.4883607812849035, 0.47580313198161595, 0.46706924078342316, 0.46167040418894933, 0.459098433451586, 0.45886264213107136, 0.46051166978331926, 0.4636446776628863, 0.46791527374436315, 0.4730306439252312, 0.47874771192776994, 0.4848676623692889, 0.4912297919666653 ], [ 0.5633876181466547, 0.5824203395666793, 0.6038169206452303, 0.6272113124336283, 0.6521411069969549, 0.6780752592785366, 0.7044489015512782, 0.7307016333772067, 0.7563150039236937, 0.7808446774464901, 0.8039433752138417, 0.825372332531304, 0.8450015318907207, 0.8628018628566261, 0.8788257337298357, 0.8931512781838113, 0.9057987051736405, 0.9166403126224395, 0.9253091445132762, 0.9311453368079998, 0.9332292202682841, 0.9305396342193963, 0.9222355878107322, 0.9079419687819442, 0.8878404631105508, 0.8624995887569961, 0.8326949174400091, 0.7993174661311304, 0.7633348894856523, 0.7257686090961197, 0.6876729378450667, 0.6501123486544135, 0.6141337944402926, 0.5807291907405854, 0.5507809764338139, 0.5249813006743742, 0.5037191060283891, 0.4870122682089233, 0.47459473432412325, 0.4660387199056379, 0.46084180080931014, 0.4584846260701979, 0.4584674343222132, 0.4603314927606382, 0.4636699966811449, 0.46813178079378276, 0.4734203078117388, 0.47928974081761794, 0.485539414242453, 0.49200764723201335 ], [ 0.5673239073698481, 0.5874621725729249, 0.6100059938440853, 0.6345324535294181, 0.6605138246611415, 0.6873513054080246, 0.7144171937400606, 0.741101020765537, 0.766854215090585, 0.7912274579238848, 0.8138956340731427, 0.8346674908426973, 0.8534802205988182, 0.8703817563249511, 0.8854979202649562, 0.8989703368515656, 0.9108736185797012, 0.9211244205633357, 0.9293799333159171, 0.9349712692555875, 0.936938555246094, 0.9341929306163164, 0.9258102247493264, 0.9113467820937976, 0.8909538809355686, 0.8652064546505523, 0.8349149959967727, 0.8010163310879425, 0.7645199112368641, 0.7264785173140482, 0.6879667423731052, 0.6500600900243552, 0.613809794052538, 0.5802077090411248, 0.5501339287995324, 0.5242776018296542, 0.5030226542093388, 0.4863749928905652, 0.47405603293215137, 0.46562711382690186, 0.4605764631087039, 0.45837672877108787, 0.45852132014258645, 0.46054569434023923, 0.46403813685399015, 0.4686433913651628, 0.47406160194085656, 0.48004436612732243, 0.48638920147284204, 0.4929333547295465 ], [ 0.5709033733465477, 0.5921223150506498, 0.6157934649341384, 0.6414360714563914, 0.6684554224069125, 0.6961828847785436, 0.7239258383990749, 0.7510221849921271, 0.7768928529293757, 0.8010849821073641, 0.8232992309743951, 0.8433974341981765, 0.8613904972864359, 0.8774085502639359, 0.8916524842385142, 0.9043237591389205, 0.9155428685365832, 0.9252611311769224, 0.9331524099859975, 0.9385347087171482, 0.9404102749412598, 0.937627756707193, 0.9291906122473975, 0.9145979975757312, 0.8939698412312059, 0.8678843788078934, 0.8371831919239353, 0.8028457804361001, 0.7659215199288447, 0.7274932142018318, 0.6886541489339542, 0.6504885428548914, 0.6140485627419203, 0.5803213303815432, 0.5501782322542914, 0.5242969532362389, 0.5030502213749704, 0.4864385821743131, 0.4741791250625696, 0.46582844245736804, 0.4608699093538329, 0.45877142707020513, 0.4590218943548184, 0.4611525771187229, 0.46474794959986687, 0.4694493771417842, 0.47495411068232474, 0.48101139154619316, 0.4874169639274072, 0.4940069161513816 ], [ 0.5741024285677114, 0.5963712756019754, 0.6211440104795292, 0.6478811077141269, 0.6759191306383294, 0.7045173673226265, 0.7329159202282151, 0.7603991581444127, 0.7863568263316772, 0.8103338579498859, 0.832060480522725, 0.8514575888365203, 0.8686167392475547, 0.8837560189551984, 0.8971538217825896, 0.9090682509102513, 0.919656423513753, 0.9288923525061659, 0.9364577758493342, 0.9416550987093517, 0.9434537933546352, 0.9406466662544615, 0.9321764249583131, 0.9174964414035017, 0.8966960529077304, 0.8703531114780942, 0.8393353423078431, 0.8046601490941272, 0.767413163810811, 0.7287044428332303, 0.6896434743094725, 0.6513204270904414, 0.6147849159701039, 0.5810147165865399, 0.5508663606492539, 0.5249984608041636, 0.5037682522697898, 0.4871760015841215, 0.47494233957339377, 0.4666253921058468, 0.46170835186104686, 0.4596577822229425, 0.4599605191558837, 0.4621453610529827, 0.4657941526600921, 0.4705456584695542, 0.4760947116392458, 0.4821884449853071, 0.48862090325386826, 0.4952269557097825 ], [ 0.5769026790046404, 0.6001844218800354, 0.6260266731246023, 0.6538302462123313, 0.6828612173220528, 0.7123044339846014, 0.7413301228479177, 0.7691668468193541, 0.7951720745721048, 0.8188895978503131, 0.8400830286815352, 0.8587385584723853, 0.8750357864102296, 0.8892873412399093, 0.9018524292031295, 0.9130432269253621, 0.9230442992995331, 0.9318389810948501, 0.9391066247251436, 0.9441340179851351, 0.9458645570709044, 0.9430431150729364, 0.9345626339513816, 0.9198402247023585, 0.8989378923960305, 0.8724297787286631, 0.8412038768864679, 0.806309255710506, 0.7688624787201875, 0.7299966813007865, 0.6908341190365952, 0.6524676351802483, 0.6159406285399713, 0.582217009695287, 0.5521328629681187, 0.5263222826302317, 0.5051253761898912, 0.48854482124365656, 0.4763110649896581, 0.4679898868991435, 0.4630691016064036, 0.46101752055136774, 0.46132253079820496, 0.46351232936149733, 0.4671674308003421, 0.47192487115858145, 0.4774776169472052, 0.4835710006935209, 0.48999749060750275, 0.496590717142687 ], [ 0.5792913497991056, 0.6035423827229232, 0.6304152124969118, 0.6592501949544369, 0.6892412042568592, 0.7194962643345978, 0.7491129595827366, 0.7772613994762821, 0.8032651573868331, 0.8266674826474705, 0.8472690167758375, 0.8651276370705688, 0.8805188225323419, 0.8938571810767525, 0.9055868633398975, 0.9160721556001273, 0.9255164644734569, 0.933899387780173, 0.9408874930387574, 0.9457545735939231, 0.9474233684563261, 0.944599925761477, 0.9361380295807421, 0.9214255967609158, 0.9005009962917199, 0.8739323422135535, 0.8426216495036114, 0.8076422637974865, 0.7701349494201205, 0.731250504739454, 0.6921196512416663, 0.6538341633688791, 0.6174274541878289, 0.5838453613309225, 0.5538990472682505, 0.5281951272980406, 0.5070565902427898, 0.49048986198959027, 0.4782394687989081, 0.4698842530993146, 0.4649213803171366, 0.4628256104534984, 0.46308765375826944, 0.4652371268424923, 0.4688546501311174, 0.4735765190861825, 0.47909448011343597, 0.485152451953221, 0.4915415137771213, 0.4980940916687957 ], [ 0.5812617120756496, 0.6064314676526761, 0.634288485311656, 0.664112003062941, 0.6950221210381906, 0.7260477673608441, 0.7562110692909861, 0.7846206962134024, 0.8105640803699776, 0.8335838396525904, 0.8535208985594899, 0.8705112632565475, 0.8849345067906639, 0.8973153671520292, 0.9081876908878758, 0.9179663751360682, 0.9268656591962937, 0.9348501122156423, 0.9415671775806347, 0.9462809324271672, 0.9478958842416894, 0.9450895063802689, 0.9366862951179933, 0.9220486007848154, 0.9011939370032281, 0.8746830095649438, 0.8434257104736498, 0.8085115215307934, 0.7710976225026525, 0.7323460956578842, 0.6933911557159828, 0.6553194475785784, 0.6191506999312932, 0.585809072175082, 0.5560777834810438, 0.530535041060612, 0.5094876289713275, 0.49294647633917404, 0.48067279582090766, 0.47226282865285085, 0.46722746258733006, 0.4650510831532085, 0.4652305960109791, 0.4672991939631018, 0.47083917519039076, 0.47548720531583805, 0.48093456339212987, 0.48692423085307185, 0.4932461612208583, 0.49973167510319183 ], [ 0.5828134986412652, 0.6088440950737326, 0.6376308494394538, 0.6683914103578426, 0.700170794109805, 0.7319168490028417, 0.7625735623332024, 0.79118493613999, 0.8169993279783501, 0.8395577196033138, 0.85874390683649, 0.8747784052254789, 0.8881533710162554, 0.8995122367360282, 0.9094836217344864, 0.9185319768437404, 0.9268751765670964, 0.9344543189207319, 0.9408964424259177, 0.9454603200791016, 0.9470352949913078, 0.944278112968003, 0.9359902327962042, 0.9215086253071985, 0.9008317405392884, 0.8745119986669587, 0.8434612109482325, 0.8087764377136376, 0.7716228396513413, 0.7331668088878578, 0.694540696115043, 0.6568218663082573, 0.6210129585769881, 0.5880136796150301, 0.5585777416948092, 0.5332554537268559, 0.5123388220770413, 0.4958438428217239, 0.4835498955843238, 0.47507382846510576, 0.46994404161035336, 0.46765803459387156, 0.46772178699328965, 0.46967431228358353, 0.47310127277395597, 0.4776409309707952, 0.48298495831023774, 0.4888759699774541, 0.4951031393517772, 0.5014968515057411 ], [ 0.5839532896728035, 0.6107792141637121, 0.6404325813929788, 0.6720692233331077, 0.704658167223477, 0.7370647094451837, 0.7681523965013111, 0.796897278534438, 0.8225050331554531, 0.8445128897759338, 0.8628491011108634, 0.8778247994729896, 0.8900534018227066, 0.900305523880399, 0.909309660478607, 0.9175794605194697, 0.9253305989502325, 0.9324751721072991, 0.9386224459025784, 0.9430340196730763, 0.9445919019999927, 0.9419345660362146, 0.9338387284853829, 0.9196139041119006, 0.8992405964534699, 0.8732619237617142, 0.8425855737991803, 0.8083074235499135, 0.7715919459538846, 0.7336026892591005, 0.6954647342480117, 0.6582421855842207, 0.6229176864754778, 0.590364651576254, 0.5613069861760486, 0.536268565171702, 0.515528348481676, 0.4991079493252302, 0.4868057022977444, 0.47826128346009616, 0.4730237049695203, 0.470606737386529, 0.470528212907551, 0.47233523163814317, 0.4756185828025449, 0.48001944846697614, 0.48523085007961125, 0.4909956995055728, 0.497102818440448, 0.5033819000252548 ], [ 0.5846948413923815, 0.6122426974527878, 0.6426902897970137, 0.6751317072905046, 0.7084596498586725, 0.7414561668626627, 0.7729027645384433, 0.8017044831554619, 0.8270201719951403, 0.8483799738950434, 0.8657568371922787, 0.8795579021711879, 0.8905266006907515, 0.8995684495075966, 0.9075167869491223, 0.9149352455294004, 0.9220333810163085, 0.9286911322483433, 0.9345059071776907, 0.9387559434672427, 0.9403285568684938, 0.9378414305703966, 0.930035584312697, 0.9161886553842977, 0.8962637817793621, 0.8707928884923956, 0.8406729654061108, 0.8069898749644527, 0.7708989011479164, 0.733553832148112, 0.6960673605152463, 0.6594867634060462, 0.624772427573651, 0.592770560746488, 0.5641759621319755, 0.5394881425784466, 0.5189749266535946, 0.5026641512662604, 0.49037349710537964, 0.4817669099004049, 0.476416417818225, 0.47385479299684635, 0.47361430238345714, 0.47525234730294347, 0.47836663451259465, 0.4826026540784008, 0.48765581536328895, 0.49327007224808905, 0.49923440177322986, 0.5053781210533658 ], [ 0.5850593210016055, 0.6132476710336934, 0.644407298291978, 0.6775709789276894, 0.7115554914837928, 0.7450600132351946, 0.7767834873889852, 0.8055575010551628, 0.8304896513081358, 0.8510984764705696, 0.867400296223595, 0.8799023164121529, 0.889486057181657, 0.8971984357403071, 0.9039825006653032, 0.9104540842488327, 0.9168151034357868, 0.9229122329565478, 0.9283398928902253, 0.9324123932310607, 0.9340382490723768, 0.9318083006177976, 0.9244098438371252, 0.9110815463831142, 0.8917686382232243, 0.8669881950703504, 0.8376189818286631, 0.8047280993646667, 0.7694536878895752, 0.7329334702618266, 0.696263207305208, 0.6604703809488993, 0.6264915767922108, 0.5951457133615768, 0.5670999252294353, 0.5428317889128897, 0.5225999981673568, 0.5064392908741782, 0.4941868700912004, 0.4855318129362992, 0.48007093217850294, 0.4773582629603363, 0.47694281845794473, 0.4783943959666902, 0.48131938594428086, 0.48536900421800333, 0.49024214224842216, 0.49568460860073643, 0.5014861122475576, 0.5074759774325004 ], [ 0.5850753996575808, 0.6138147368571143, 0.6455939592728186, 0.679385375934312, 0.7139311811126265, 0.7478494218691331, 0.7797574324997497, 0.808411997191919, 0.8328651796487203, 0.8526183995787192, 0.8677284064660271, 0.878804688566275, 0.8868725566164446, 0.8931256953507702, 0.8986215237357095, 0.9040316321647837, 0.9095516868982904, 0.9149963072375215, 0.9199681814317106, 0.9238411476022172, 0.9255616392735306, 0.9236861948614503, 0.9168272895785079, 0.9041751979355392, 0.8856543236501087, 0.8617604155384688, 0.8333453366617593, 0.8014490158307096, 0.7671853771719926, 0.7316706658116754, 0.6959799373512782, 0.6611186114922726, 0.6279986347492574, 0.5974122452076123, 0.5700008612153759, 0.5462227354808661, 0.5263294588992307, 0.5103634028270283, 0.49818135619833326, 0.48949797063527095, 0.48393606561525565, 0.4810727306384968, 0.48047571901949326, 0.48172914214818974, 0.484449765870503, 0.48829594019426775, 0.4929711612952142, 0.49822395326198965, 0.5038453904047566, 0.5096652462790698 ], [ 0.5847791420187298, 0.6139720263981356, 0.6462678442957178, 0.680579769222933, 0.7155778718549918, 0.7498024432976464, 0.7817920131014278, 0.8102288412769691, 0.834105889991223, 0.8529012815040204, 0.8667076418977958, 0.876236623051799, 0.8826597692430153, 0.8873209532580829, 0.8913959554765107, 0.8956165866636594, 0.9001769879045486, 0.9048643731209682, 0.9093024436849414, 0.9129486858055944, 0.9148029862910213, 0.9133817828791023, 0.9072025410237152, 0.895396383746466, 0.8778599118893536, 0.8550574024656663, 0.827804216630089, 0.7971053908561015, 0.7640446843840483, 0.7297124879005973, 0.6951602193209698, 0.6613696717208082, 0.6292279397503511, 0.5995017109820993, 0.5728089388634438, 0.5495912055179737, 0.530094987058167, 0.5143710439006588, 0.5022957507544439, 0.49360947633620955, 0.48796181515483045, 0.4849542589452342, 0.48417495581641323, 0.4852240310643882, 0.48773019962607783, 0.4913603073915095, 0.49582357710743685, 0.5008721358128152, 0.506299097983, 0.5119351769808903 ], [ 0.5842136160351938, 0.6137550071443192, 0.6464537378237349, 0.6811657690223953, 0.7164928270269935, 0.7509026417328077, 0.7828598668242489, 0.8109746764566327, 0.8341787975771645, 0.8519207147964035, 0.8643228686711861, 0.8721964230069702, 0.8768579543177544, 0.8798016600789454, 0.8823240769258573, 0.8852217956325821, 0.8886953201273817, 0.8925146967484132, 0.8963381587967867, 0.899726375643982, 0.9017453662571705, 0.9008711422958071, 0.8955113345524449, 0.8847264382240836, 0.8683721724445341, 0.8468676322966296, 0.8209818682405278, 0.7916783261245605, 0.7600058378899369, 0.7270255634352703, 0.6937631234902655, 0.66117572537324, 0.630125882284105, 0.6013561979722788, 0.5754635363195229, 0.5528753913959075, 0.533835012459656, 0.5184022865715265, 0.5064731258870867, 0.49781353817809637, 0.4921002905920771, 0.4889602225091321, 0.48800319054684527, 0.48884678911008506, 0.4911331033639083, 0.49453875661083874, 0.49877979089633667, 0.5036128278335638, 0.5088337213880407, 0.5142746510913164 ], [ 0.5834281305992098, 0.6132059433030488, 0.6461833394292886, 0.6811617596853603, 0.7166798759910498, 0.7511399308004534, 0.7829398495117373, 0.8106227534015922, 0.8330592945410091, 0.8496625792008523, 0.8605776275087025, 0.8667100664009129, 0.8695161674473876, 0.8706360151348651, 0.8714867072978422, 0.872933367095945, 0.8751925337146651, 0.8780351811470806, 0.8811687421287113, 0.8842652458777689, 0.8864655403624153, 0.8862131597101965, 0.881802781817188, 0.8722109938208378, 0.8572319899049992, 0.8372240995910217, 0.8129009190361142, 0.7851787048278664, 0.7550675923956859, 0.7235969090097932, 0.6917648927337914, 0.6605036296315483, 0.6306516196231307, 0.6029289975464017, 0.5779138791105195, 0.5560220849913162, 0.537495367586357, 0.5224034152646444, 0.510661575823108, 0.5020612473881465, 0.49630646477215634, 0.49305000375597163, 0.4919244144827038, 0.492565958436032, 0.49463133470136644, 0.49780811747652604, 0.501820205858058, 0.5064295900633464, 0.5114355699858293, 0.51667234014797 ], [ 0.5824769920311029, 0.6123728909438408, 0.6454945595849588, 0.6805926848152654, 0.7161498536519657, 0.7505116547247517, 0.7820184955224974, 0.8091542845908984, 0.8307319826881918, 0.8461253072367703, 0.8554940818798697, 0.8598312080889143, 0.8607225436271946, 0.859943943841843, 0.8590295793293213, 0.8589157566003269, 0.8598448439298987, 0.8616136754119859, 0.8639954109943366, 0.8667659724956644, 0.8691464541918376, 0.8695625546749053, 0.8662109761711925, 0.8579671788628216, 0.8445379554303744, 0.826205891347999, 0.8036209549269225, 0.7776473418436416, 0.7492532563271882, 0.7194339825848499, 0.6891590696034842, 0.6593351331003691, 0.6307773178961128, 0.604184870519215, 0.5801193275228651, 0.558986998820314, 0.5410296580229957, 0.5263273616891124, 0.514814721194485, 0.5063081339490585, 0.5005387475818008, 0.49718555100780254, 0.49590446496326585, 0.4963513571357516, 0.49819859119900073, 0.5011457361485002, 0.504925508724823, 0.5093061041113263, 0.514090964770999, 0.5191168578621481 ], [ 0.5814176539699667, 0.6113080876403393, 0.6444302856610253, 0.679489505033072, 0.7149209795255861, 0.7490239178992238, 0.7800920628963864, 0.8065606090149229, 0.8271922300457556, 0.841320568136097, 0.8491128787592369, 0.8516401150971756, 0.8506021492249163, 0.847894124396025, 0.8451599918181153, 0.8434093172535659, 0.8429207365578917, 0.8435426564324398, 0.8451269341149776, 0.8475386014245903, 0.8500816695187422, 0.8511809302382229, 0.8489618725510568, 0.8421849409112301, 0.830445486643809, 0.8139366834143013, 0.7932370023164794, 0.769153676977327, 0.742609666076327, 0.7145639367693328, 0.6859559892543264, 0.6576665523674812, 0.6304879581775267, 0.6050999456770485, 0.58204935149089, 0.5617348144424421, 0.54439938764606, 0.5301339133711664, 0.5188920023806695, 0.5105145316650624, 0.5047593961527099, 0.5013318029871542, 0.4999114376805724, 0.5001744609752323, 0.5018097513881346, 0.5045297719082285, 0.5080769224621784, 0.5122263843293207, 0.5167864137086406, 0.5215969036244478 ], [ 0.580308119945572, 0.6100655827027831, 0.6430365204420492, 0.6778882824202797, 0.7130191160771534, 0.7466930837318638, 0.7771691640492373, 0.8028464161997426, 0.8224489114637412, 0.8352748644221211, 0.841493352327922, 0.8422416319156903, 0.8393120365013997, 0.8346963836715419, 0.8301365134918024, 0.8267170139500053, 0.8247652680552117, 0.8242020705490308, 0.824962243848693, 0.8269868509498652, 0.8296622537944527, 0.8314286378491015, 0.8303647015927267, 0.8251189991597233, 0.8151603695044897, 0.8005797984687837, 0.7818758051171582, 0.7597929924679503, 0.7352051242938157, 0.7090321066872747, 0.6821816792049504, 0.655507972221566, 0.6297807522599124, 0.6056612945258357, 0.5836832322121032, 0.5642389941103176, 0.5475738722948089, 0.5337897273628569, 0.5228587908202246, 0.5146457758496836, 0.5089347770817519, 0.5054569884135529, 0.5039159979496299, 0.5040087062758251, 0.5054411559708751, 0.5079394493664648, 0.5112564266680155, 0.51517496658057, 0.5195087708361295, 0.5241013948210602 ], [ 0.5792034444850402, 0.6086979661406422, 0.6413599021307075, 0.6758289253708556, 0.7104778393902179, 0.743547248214563, 0.773273746046242, 0.7980340530851014, 0.8165288319731213, 0.8280326718054927, 0.8327146821208417, 0.8317624236039509, 0.8270334290614724, 0.8205892308326308, 0.814251777621006, 0.8091807458821136, 0.8057673738963005, 0.8040202975093925, 0.8039555303830326, 0.8055758071808174, 0.8083426597852129, 0.8107262328594672, 0.8107841545097358, 0.8070711518563267, 0.7989269793463997, 0.7863300939444627, 0.7696901011402392, 0.7496823030310613, 0.7271264123760839, 0.7028998188480372, 0.6778762378579106, 0.6528820318186301, 0.6286642224850648, 0.6058662292115399, 0.5850095310293715, 0.5664813914050788, 0.5505299743452804, 0.5372681792072447, 0.526686345714146, 0.5186722567857647, 0.5130354980675886, 0.5095328120861629, 0.5078915972281598, 0.5078297164548794, 0.5090708292674164, 0.5113552649850497, 0.5144469437063277, 0.5181370717316753, 0.522245377004678, 0.5266195860240614 ], [ 0.578151167447253, 0.6072521989303876, 0.6394448693171546, 0.6733537520586581, 0.7073382639340497, 0.7396273770889997, 0.7684478452426118, 0.7921683385250958, 0.8094831286566732, 0.8196618741586631, 0.8228784322054287, 0.8203477061344965, 0.8139615684462501, 0.8058229002675058, 0.7978096762809022, 0.791151969860558, 0.7863236368522842, 0.7834326058098158, 0.782571410990499, 0.7837865961759858, 0.7865935363099456, 0.7895099303729385, 0.7906056135504519, 0.7883670974658874, 0.782012979407825, 0.7714035929340445, 0.7568514078284792, 0.7389552241532086, 0.71847507311554, 0.6962416557783173, 0.673091791039858, 0.6498223739953557, 0.6271570075395664, 0.6057213739756353, 0.5860253672823468, 0.5684516963801661, 0.5532516894583914, 0.5405490755166606, 0.530351641885807, 0.5225693513180314, 0.5170364268206283, 0.5135345403455789, 0.5118146032035087, 0.5116154568821369, 0.5126786429527808, 0.5147591482585074, 0.5176324899262756, 0.5210987427081659, 0.5249841809015385, 0.5291411736817209 ] ], "zauto": true, "zmax": 0.9478958842416894, "zmin": -0.9478958842416894 }, { "autocolorscale": false, "autocontour": true, "colorbar": { "tickfont": { "size": 8 }, "ticksuffix": "", "x": 1, "y": 0.5 }, "colorscale": [ [ 0.0, "rgb(255,247,251)" ], [ 0.14285714285714285, "rgb(236,231,242)" ], [ 0.2857142857142857, "rgb(208,209,230)" ], [ 0.42857142857142855, "rgb(166,189,219)" ], [ 0.5714285714285714, "rgb(116,169,207)" ], [ 0.7142857142857143, "rgb(54,144,192)" ], [ 0.8571428571428571, "rgb(5,112,176)" ], [ 1.0, "rgb(3,78,123)" ] ], "contours": { "coloring": "heatmap" }, "hoverinfo": "x+y+z", "ncontours": 25, "type": "contour", "x": [ 1e-06, 1.3011511650442548e-06, 1.692994354296022e-06, 2.2028415765056147e-06, 2.866229883678204e-06, 3.729398352432554e-06, 4.852511011181743e-06, 6.3138503555892e-06, 8.215273746089953e-06, 1.0689313005882424e-05, 1.390841207112662e-05, 1.809694657026198e-05, 2.354686311364001e-05, 3.063802837345029e-05, 3.986470631277378e-05, 5.1870009063012666e-05, 6.749072272319499e-05, 8.781563250096393e-05, 0.00011426141253772724, 0.00014867137004306603, 0.00019344392634026088, 0.0002516997901283655, 0.0003274994751669172, 0.0004261263236648159, 0.0005544547624925005, 0.0007214294601814526, 0.000938688782612345, 0.0012213760031100258, 0.0015891948094037057, 0.002067782677737912, 0.0026904978401970136, 0.0035007443993213955, 0.004554997653699184, 0.005926740503884541, 0.007711585311544345, 0.010033938212454078, 0.013055670395116691, 0.01698740074503987, 0.02210317627048227, 0.028759573555516536, 0.03742055263793628, 0.04868979566145066, 0.06335278435066323, 0.0824315491666629, 0.10725590623460621, 0.13955614735503497, 0.18158364372009145, 0.23626776957937787, 0.3074200836506151, 0.4 ], "xaxis": "x2", "y": [ 0.0, 0.02040816326530612, 0.04081632653061224, 0.061224489795918366, 0.08163265306122448, 0.1020408163265306, 0.12244897959183673, 0.14285714285714285, 0.16326530612244897, 0.18367346938775508, 0.2040816326530612, 0.22448979591836732, 0.24489795918367346, 0.26530612244897955, 0.2857142857142857, 0.3061224489795918, 0.32653061224489793, 0.3469387755102041, 0.36734693877551017, 0.3877551020408163, 0.4081632653061224, 0.42857142857142855, 0.44897959183673464, 0.4693877551020408, 0.4897959183673469, 0.5102040816326531, 0.5306122448979591, 0.5510204081632653, 0.5714285714285714, 0.5918367346938775, 0.6122448979591836, 0.6326530612244897, 0.6530612244897959, 0.673469387755102, 0.6938775510204082, 0.7142857142857142, 0.7346938775510203, 0.7551020408163265, 0.7755102040816326, 0.7959183673469387, 0.8163265306122448, 0.836734693877551, 0.8571428571428571, 0.8775510204081632, 0.8979591836734693, 0.9183673469387754, 0.9387755102040816, 0.9591836734693877, 0.9795918367346939, 1.0 ], "yaxis": "y2", "z": [ [ 0.12280885882163506, 0.10907512624754157, 0.09431532522889532, 0.07902655931551263, 0.06417872917215042, 0.05162216285347962, 0.044407862873462045, 0.04506309745646577, 0.0520513646709135, 0.06152277244496467, 0.07070605572939362, 0.07814407355044022, 0.0831207959074812, 0.08532658649845416, 0.08470971873413864, 0.08141211843862249, 0.07574330218796757, 0.0681753179803059, 0.059353534343160035, 0.05011926977628667, 0.0415173868647097, 0.034674513061272824, 0.030334221840215617, 0.028394786126798317, 0.028335285933290974, 0.029961642017399766, 0.0337986516625158, 0.04060922373400617, 0.050348225321536794, 0.06209201223457948, 0.07473877921767419, 0.08736957402672656, 0.09930082909903899, 0.11004726726921249, 0.11927372113225947, 0.1267530894838053, 0.13233267492273865, 0.13590849521845083, 0.13740697056696066, 0.13677356836850849, 0.13396822682298812, 0.12896774530646826, 0.12177603452038535, 0.11244463649789574, 0.1011094827869616, 0.08805895923206031, 0.07387323962517113, 0.05974106015242277, 0.04815330634957591, 0.04347739676606452 ], [ 0.12227607603082016, 0.10837710188264703, 0.09337115454238415, 0.07770578281119382, 0.06227373285947175, 0.048857243756010194, 0.04069947619050626, 0.04098764250269016, 0.048269066719660574, 0.0581892300440563, 0.06775398119110672, 0.07547742091009138, 0.08065613862223467, 0.08299845970648537, 0.08247234421750836, 0.07924207112887587, 0.07364218912552511, 0.06617028201141274, 0.0574927931505732, 0.048459676516829316, 0.04010122421111512, 0.03349568856491618, 0.029319784906668717, 0.027449821586734015, 0.027411486805796054, 0.02909544822449628, 0.03306452216211264, 0.04002452834301108, 0.04986077673230351, 0.061638752931523974, 0.07427348426048706, 0.08686521106807046, 0.09874527458744464, 0.10943921230730459, 0.11861971052708317, 0.1260653492440637, 0.13162737609968375, 0.1352042829177398, 0.13672373130497908, 0.1361314928464607, 0.13338726344312032, 0.12846755639668692, 0.1213765927710293, 0.11216767335250927, 0.100981175030983, 0.08811453740813162, 0.07416419623740834, 0.0603414105871279, 0.049130829071694145, 0.044729516698925116 ], [ 0.12206252413386469, 0.10808763868919587, 0.09295041885212167, 0.07705636058764892, 0.061222980097187296, 0.04712583910384991, 0.038051544227342686, 0.03776903848124273, 0.04511181167500884, 0.05530973824444609, 0.06514127691902569, 0.0730761161027271, 0.07841125722380475, 0.08086607600803708, 0.08042562274978118, 0.07727745011544745, 0.07178531729793006, 0.06447947343508742, 0.056055914855488324, 0.04737785558452881, 0.03944953457330186, 0.03325744245057411, 0.02935788133602535, 0.027604745852045667, 0.027613114254195565, 0.029387803693116183, 0.03349799031868995, 0.04053572932157459, 0.05032593277231187, 0.06197369457158221, 0.07444195906487233, 0.08686073524411808, 0.09857820390181772, 0.109129947012902, 0.11819516937294601, 0.12555691075430347, 0.13106945955643254, 0.13463327451334323, 0.13617723331451415, 0.1356480108000366, 0.13300651798379376, 0.12823166471068945, 0.12133246399922772, 0.11237116999368399, 0.10150396661023345, 0.08905494480792615, 0.07566181868256718, 0.06257992514083013, 0.052233620623116074, 0.048358856494444706 ], [ 0.12214597659295076, 0.10817720052301256, 0.09301412751222056, 0.07702893539335165, 0.060972977796683814, 0.046399560223330305, 0.036501960443613736, 0.03545384581286366, 0.04258576024092201, 0.05287159242576249, 0.0628508331322397, 0.07092165572369517, 0.07636512727247143, 0.07890338059562382, 0.07853501906735987, 0.07547057346563428, 0.07010554449952802, 0.06300781415981695, 0.05490835279119677, 0.04668365265710364, 0.039296205408181496, 0.033607078135976784, 0.03002951826047648, 0.028412033482792805, 0.028501341525185495, 0.03042910266524581, 0.03473165201169456, 0.04184183858081381, 0.051520788883320345, 0.06293809130311581, 0.07513038004675955, 0.0872721410114651, 0.0987351822893805, 0.10906796128565358, 0.11795726053004507, 0.12519089819824217, 0.13062626579214393, 0.13416585591381514, 0.1357400276082935, 0.13529702450755599, 0.13280028837571853, 0.12823341763461046, 0.12161391854862937, 0.11301866933553878, 0.10262790024164352, 0.09080313892035265, 0.07823297200411897, 0.06620668883193576, 0.057008963099658194, 0.0537690772361513 ], [ 0.12249908147724362, 0.10860886301784696, 0.09351183732501918, 0.07755456782524435, 0.06143315128397859, 0.046579632512093315, 0.035998664258965654, 0.03404077464309321, 0.04068253727829077, 0.05086024588095643, 0.06086739152094367, 0.06899779896840606, 0.0744985571242228, 0.07708568264689812, 0.0767669117613196, 0.0737739313373242, 0.06853434991930052, 0.06165594171745916, 0.053906843416672075, 0.046173443299216375, 0.03936121120349737, 0.034187479124177245, 0.030926330757220906, 0.029447480039411757, 0.029660033726857292, 0.031821414722280617, 0.0363977045701606, 0.04363015597006491, 0.05320311714258694, 0.06435347393803333, 0.07620802366915545, 0.08800181901867501, 0.09914098058469895, 0.10919309639463602, 0.11785605322281958, 0.12492442515554787, 0.13025983155273382, 0.13376749117506181, 0.135379799821578, 0.13504724316470607, 0.13273683570094133, 0.12843852740326037, 0.12218082516700338, 0.1140586596156134, 0.10428018705259454, 0.0932464099242926, 0.08168928144011461, 0.07089619617455062, 0.06293857577952452, 0.06033412425139702 ], [ 0.1230915116714378, 0.1093419863597451, 0.09438815387877854, 0.07855668144324653, 0.062498022016079915, 0.047532700851244836, 0.036430307376091695, 0.03349915243448528, 0.03939730631643318, 0.04927130462000113, 0.05918434596409435, 0.06729453301755209, 0.07279700995928819, 0.07539244344621293, 0.07509220624164252, 0.07214549098777114, 0.06700993835464998, 0.060332821181461244, 0.05291957834332792, 0.04566331718972164, 0.039403699907482236, 0.03471197983360124, 0.0317410484817727, 0.030405561296331422, 0.03079232978703419, 0.0332737345563209, 0.03821353990984069, 0.0456424727876746, 0.055155768529453114, 0.06604830045929695, 0.07754273992329373, 0.08894764212377386, 0.0997150779524133, 0.10944001325037239, 0.11783681415596825, 0.12471019831581272, 0.12992810050745043, 0.13339973010867556, 0.13506031134762117, 0.1348631753142086, 0.13277956105657798, 0.12880663286428137, 0.12298496992498759, 0.11542843841324613, 0.10637243992553576, 0.09625147949016304, 0.08582123475546673, 0.07632346061485024, 0.06957439498988112, 0.06755613886061487 ], [ 0.12389187869718847, 0.11033542290229424, 0.09558832912627999, 0.07996134595499518, 0.06406707270060716, 0.04912794262348956, 0.03767021769512369, 0.03379089733966137, 0.038743297647132545, 0.04811882737101859, 0.05780770614809454, 0.06581005213834211, 0.07125202673965725, 0.07380900350801618, 0.07348904514853415, 0.0705531156425131, 0.06548425809962219, 0.05896648374273148, 0.051842034223881304, 0.045011090728799004, 0.039248487853697354, 0.034989288038252776, 0.032286142748574324, 0.031112742746482642, 0.03173426290095805, 0.03461914709596648, 0.04000192240749242, 0.0476975935685762, 0.057208353544358395, 0.06787483891529689, 0.07901255155982294, 0.09001056976019076, 0.10037662460971042, 0.10974149024872928, 0.11784227433387709, 0.12449815664134235, 0.1295861976041028, 0.13302129897288706, 0.134742444393528, 0.13470625383935364, 0.13288835833024532, 0.1292931050300662, 0.12397272217233497, 0.11705845144356532, 0.10880837592228715, 0.09967901921230389, 0.09042536355418053, 0.08220673755218924, 0.07657669272613896, 0.07508286595315028 ], [ 0.12486916989849989, 0.11154978309767621, 0.09706194082928506, 0.08170351963563516, 0.0660560229289538, 0.05125848427909179, 0.039607750012174356, 0.034881244822873705, 0.0387525436654984, 0.04743504109772386, 0.05675519717630812, 0.06454988857092428, 0.06986080136137406, 0.07232689018200647, 0.07194418801980972, 0.0689774992313015, 0.06392808993455439, 0.05751175156632937, 0.05060713266610257, 0.04412690017018281, 0.03879194322462964, 0.03491867007055496, 0.032477841042292, 0.03150554296410451, 0.03243192144106506, 0.03579389761937282, 0.041675504676329515, 0.049685514032636297, 0.05924016361081006, 0.06971579301534463, 0.08051223990450249, 0.0910999083128342, 0.10104832102497421, 0.11003122140113789, 0.11781466907919112, 0.12423701551490894, 0.12918767642120957, 0.1325892035206405, 0.1343852858963422, 0.13453602029312217, 0.13302104259842487, 0.12985093535052294, 0.12508775475327602, 0.11887651881701236, 0.11149072897401364, 0.10339492689718484, 0.09532031932417029, 0.08832034320887187, 0.08370227411789052, 0.08267496115867978 ], [ 0.12599359407628297, 0.11294856880879448, 0.09876433780723806, 0.08372872995219353, 0.06839854850136554, 0.05384378977269519, 0.04215445691224885, 0.03673179147665373, 0.039458450661598234, 0.04725907749369251, 0.05604974341522908, 0.06352301398152393, 0.06862384298972499, 0.0709425903297832, 0.07045281942449905, 0.06741321899869195, 0.06233370350593441, 0.0559546028423947, 0.04919032180892471, 0.04297595179086547, 0.03799755398874964, 0.03447498606423734, 0.03231217754743489, 0.03160193074264808, 0.03291072187658736, 0.03680638726746352, 0.0432101781613704, 0.051549980661761786, 0.06117267039759772, 0.07148351978791982, 0.0819555036646825, 0.09213615140074169, 0.10165902015360846, 0.11024594517526473, 0.11769742539061602, 0.1238756248932433, 0.12868567120193844, 0.13205978805061785, 0.1339471960983078, 0.13431130547943437, 0.13313476656049666, 0.130432568272781, 0.1262735805053887, 0.12081152387412712, 0.11432665434127347, 0.10727755914526224, 0.10035339227124572, 0.09449135247529274, 0.09078078529185798, 0.09017100857621148 ], [ 0.12723685014434707, 0.11449826168496807, 0.10065616457412355, 0.0859911764843718, 0.0710412877089147, 0.05681957565687396, 0.0452310919483556, 0.03928157321118092, 0.04086589684691908, 0.04761707022416173, 0.05570856397459801, 0.06273561400762712, 0.06754111120444659, 0.06965495140120649, 0.06901675834487325, 0.06586770163800845, 0.06071479195425737, 0.054313166118109275, 0.04761070579260473, 0.041577056115869496, 0.03688826383389631, 0.03369299099098031, 0.03184221944587858, 0.031473508986430684, 0.03324423805907009, 0.03770540426859303, 0.04461782509056034, 0.053268948109750726, 0.06295819379305591, 0.07311523959744448, 0.08327405891452493, 0.09305183834737686, 0.10214514218213253, 0.1103268831927148, 0.11743645000560822, 0.12336409489895535, 0.12803391244469847, 0.1313897130869743, 0.13338682337603597, 0.13399135957420422, 0.13318735937490445, 0.13099157785600057, 0.12747574918573837, 0.12279634253911133, 0.11723143688350994, 0.11122140546655898, 0.1054009619389809, 0.10059070771225344, 0.09769384023916221, 0.09746194597638737 ], [ 0.1285719362981334, 0.11616765340181244, 0.10270166362122925, 0.08844996219756482, 0.07393626038706354, 0.060124550265961633, 0.048750580583605124, 0.042429435271997405, 0.042924825475726895, 0.04850148617306179, 0.05573116167733913, 0.062184067080751596, 0.06660742231263188, 0.06846164774953722, 0.06764127180629814, 0.06435809384173544, 0.05910349249381748, 0.05263521492167463, 0.04592880392001103, 0.03999890140628898, 0.03553858705578617, 0.032653519086426316, 0.03115758075370367, 0.031217881160232802, 0.033522264845116584, 0.03854965854889214, 0.04592230186597438, 0.05483724482928703, 0.06456862717199514, 0.07456689967532294, 0.08441510950487666, 0.09379107944959925, 0.10245116035575932, 0.11022057660457664, 0.11698103748782722, 0.12265468293574452, 0.12718759180209865, 0.13053683438628233, 0.13266404461322098, 0.1335369041357491, 0.13313854796486158, 0.13148413112863733, 0.12864363296441433, 0.124769968747468, 0.12013067530446951, 0.1151382028995817, 0.11036593384522007, 0.10652394043362033, 0.1043597834522294, 0.10447424838650018 ], [ 0.12997267586773203, 0.11792679297282023, 0.10486655454693457, 0.09106514431806223, 0.07703420544505209, 0.06369102202964763, 0.05261008300005687, 0.0460356029225442, 0.04552583467701328, 0.04985970332350085, 0.056090450905859686, 0.06184907984617183, 0.06580817474600661, 0.06735536878004168, 0.0663309364792665, 0.06290627102287792, 0.057544405723400006, 0.05099169715110933, 0.04424040337129419, 0.03835388188802954, 0.03406645148378596, 0.03147117211837336, 0.030365898549979127, 0.030931497219420512, 0.03381866950290752, 0.03938171248859841, 0.04714121985363017, 0.0562534829556973, 0.06598623231329476, 0.07580740143216966, 0.08533833126396179, 0.09430838800861117, 0.10252947774564179, 0.10987926837977158, 0.11628446268208019, 0.12170246801496697, 0.12610408503436168, 0.12946098446567625, 0.13174082752337266, 0.13291109708038126, 0.13295104560277676, 0.13187021984886696, 0.1297317971425617, 0.12667891164077488, 0.12296128008865663, 0.11895647743788994, 0.11517411332096744, 0.11222332905161354, 0.11072322621816183, 0.11115913285129199 ], [ 0.13141314726648826, 0.11974591039789372, 0.10711616300516638, 0.09379480536262085, 0.08028077805900552, 0.06744199835010155, 0.05669473131493473, 0.04994268125418339, 0.04851948759196204, 0.05159693160148535, 0.05673019755917114, 0.061692676014709506, 0.06511642462341474, 0.0663204968826262, 0.06508521963346839, 0.0615325509808408, 0.05608583517363112, 0.04946569079253364, 0.04266480766872718, 0.036787099569683415, 0.0326222819113882, 0.03028174226811675, 0.029576730151910795, 0.030688771521727193, 0.03416887576358807, 0.04021317774574747, 0.04827592067693535, 0.05751220140943318, 0.06719740059306283, 0.07681412594578566, 0.08601313947210833, 0.09456733563633583, 0.10233999950225907, 0.10926099818715335, 0.11530434547014567, 0.12046585876659953, 0.1247435591826573, 0.1281246732615038, 0.1305820262976267, 0.13208041803597248, 0.13259151322792992, 0.1321146722799217, 0.13070099845772, 0.12847800038814036, 0.1256716457594592, 0.1226202646744706, 0.11977053339613938, 0.11764178744846425, 0.11674795027288495, 0.11748556028050394 ], [ 0.13286717764757508, 0.1215945863667191, 0.10941421920907646, 0.09659368082384696, 0.08361590899988039, 0.07129353811270132, 0.060886634633456074, 0.05399549141724824, 0.05174265869036332, 0.053590207155718834, 0.05756927531995962, 0.06165885112502545, 0.0644920390671344, 0.06533100063903156, 0.06389461017243586, 0.060249082218095586, 0.05476914070383122, 0.04813680360004038, 0.041325448270864464, 0.03545654375750495, 0.031370906898925, 0.02922676324015074, 0.028888484245946467, 0.030533736736702486, 0.03457031997945385, 0.04102541070183438, 0.04931027239492564, 0.05860125521232052, 0.06818953335377693, 0.07757012604032694, 0.08641666692562402, 0.09453938649819772, 0.101849647984922, 0.10832956592855714, 0.114002881995211, 0.1189069925307747, 0.12306950193977667, 0.1264937364981044, 0.12915613414657334, 0.1310154944246833, 0.1320314140133369, 0.13218797584524644, 0.1315188767068429, 0.13013074656005932, 0.1282213052751609, 0.12608750121034334, 0.12411616825618588, 0.12274825098973978, 0.12241204673820745, 0.12343558297866312 ], [ 0.13430800809089619, 0.12344131475523155, 0.11172246846720817, 0.09941329540512266, 0.08697553247329558, 0.07515960250314282, 0.06507329037796163, 0.05805321758592206, 0.05503908781522491, 0.05570595346520012, 0.0585106913315789, 0.061677598887427264, 0.06388316111147513, 0.0643500623569099, 0.06273814450861359, 0.05905421957251084, 0.053618070493521734, 0.04706292368881665, 0.04032283128404404, 0.034501401171027665, 0.030462272612204435, 0.028433040423473263, 0.028378058870972247, 0.030482033201779262, 0.03499466311055436, 0.04178032709267631, 0.05021608220394054, 0.05950344533977523, 0.068950639615879, 0.07806295309454253, 0.086532608431372, 0.09420311283340634, 0.10103199692218377, 0.10705449396485647, 0.11234703146835558, 0.11699208658737063, 0.12104921856435968, 0.12453796941623928, 0.1274360258739786, 0.1296918979996269, 0.13124779096162198, 0.13206695075545544, 0.1321604110902849, 0.13160939985505352, 0.13058029635551285, 0.1293283706367312, 0.12818515532671343, 0.12752421944447628, 0.1277045149903676, 0.12900115039071403 ], [ 0.13570817883936812, 0.12525348510531253, 0.11400101234876923, 0.10220319826003432, 0.09029451870355365, 0.07895711786713662, 0.06915339308611697, 0.0619952180868468, 0.05827132688502066, 0.05781514999023736, 0.059452313174083254, 0.061671193864101546, 0.06322971436176067, 0.0633316331617776, 0.06158298274543736, 0.05792926532912814, 0.05263073716753695, 0.046263988039466054, 0.039705654101981895, 0.03400190031620765, 0.029993703493066765, 0.02798839527675327, 0.028092470262070734, 0.030527037507020478, 0.03540123384473651, 0.04243337769967514, 0.05096148220629556, 0.060200742172399076, 0.0694708907151201, 0.07828482481608295, 0.08635089392817365, 0.09354387007314967, 0.0998671339337466, 0.10541108812584182, 0.11030873756691811, 0.11469180229340048, 0.11865434650393845, 0.1222317908557262, 0.12539973123632034, 0.12809094771314405, 0.13022400127905345, 0.13173531569826075, 0.13260820637544063, 0.1328948056195365, 0.13272839444622891, 0.13232374712414904, 0.13196250846936405, 0.13196115204155642, 0.13262281851859148, 0.1341818383074333 ], [ 0.13703963001680644, 0.12699772135636342, 0.11620916624285792, 0.10491276863959072, 0.09350980374592582, 0.08261004783444616, 0.07304011143962937, 0.06572290379753225, 0.0613259995739226, 0.05980374846471194, 0.06029677085239383, 0.061561356407420144, 0.06246832757308336, 0.062223755937323974, 0.06038631109760442, 0.05683856726807959, 0.051776786831118776, 0.04571390458488739, 0.03945337667164424, 0.03394957127563949, 0.029979537297544392, 0.027920451491148218, 0.0280426013158774, 0.030645926975628134, 0.03574802503901161, 0.042944501310071284, 0.051519297718934876, 0.06067943309705151, 0.06974524592367994, 0.07823370466905068, 0.08586803309949016, 0.09255392319722268, 0.09834180887963627, 0.10338067204703323, 0.10786525377005537, 0.11198168211095978, 0.11586144246444754, 0.11955498988944428, 0.12303128643965132, 0.12620055821973505, 0.12895044063037192, 0.13118418141017207, 0.13285266065157852, 0.13397614184655451, 0.13465430617019256, 0.13506379359124085, 0.13544225209966299, 0.13605847762915377, 0.1371710761921766, 0.13898317709116992 ], [ 0.13827397498267155, 0.12864046141531937, 0.1183065771746484, 0.10749311980401645, 0.09656307411269023, 0.08605211562032947, 0.07666247274857693, 0.06915952090424934, 0.06411505325207516, 0.061578571541749484, 0.06095922310410621, 0.06127615976383118, 0.061537947337029324, 0.060973219115128846, 0.05909938153476793, 0.05573316906388952, 0.051000890262087734, 0.04534432571023803, 0.03948105685206484, 0.03425236049146257, 0.030347097159814408, 0.028187803127093843, 0.028200124606549977, 0.03080418953959342, 0.035999294457670646, 0.043285995781637596, 0.05187385004414838, 0.060934938237661385, 0.06977633752834728, 0.0779148357035797, 0.085087919834218, 0.09123296660574855, 0.0964498933091441, 0.10095105371875734, 0.10499963729756745, 0.10884272163401294, 0.11265270360387256, 0.11649361613422779, 0.12032171765949569, 0.1240161743042205, 0.1274252855341479, 0.1304124979364168, 0.13289204960389986, 0.13485058445682713, 0.13635487228718743, 0.13754672291853942, 0.13862589446327303, 0.1398220454920574, 0.1413586824402846, 0.14341537866924617 ], [ 0.13938288301949775, 0.1301486477567149, 0.12025437067412614, 0.10989876896321761, 0.09940271201727365, 0.08922826002039706, 0.07996547221076877, 0.07224890887070112, 0.06657496069434748, 0.06306991380992603, 0.061372734423018424, 0.06075599776793658, 0.060385499511040636, 0.059530969817909556, 0.05767310456507401, 0.05455731115440735, 0.05023156595730735, 0.045058514938037815, 0.03966209591823427, 0.03476475217592918, 0.03096031982015444, 0.028688909018958587, 0.02849951195885101, 0.030960074480021804, 0.03613086443013699, 0.04344774988959638, 0.05202573651081825, 0.060975537419585966, 0.0695769841956903, 0.0773423183782765, 0.08402288027171023, 0.08958896248992619, 0.09419316440490086, 0.09811728074572597, 0.1017014805632744, 0.10526214735007787, 0.10901689691470746, 0.11304108765067215, 0.11727021765322523, 0.12154182979412151, 0.12565527295970913, 0.12942746750334938, 0.13273254397887135, 0.1355229248153653, 0.13783429814909223, 0.13977770553288546, 0.14152116365650258, 0.14326289107991833, 0.1451992219049014, 0.14749233589675406 ], [ 0.14033850389873956, 0.131490412516576, 0.12201615588668079, 0.11208889148256998, 0.10198494846831271, 0.09209506842024917, 0.08290935421845586, 0.07495376016599707, 0.06866496520945188, 0.0642320404450569, 0.06149157850691506, 0.059958359528307054, 0.05897115946366399, 0.05785772911246546, 0.05606440840558908, 0.053256473048574976, 0.04939277623097976, 0.044749598200809045, 0.0398561109170654, 0.03532354149722095, 0.031656335597597195, 0.029288117857325904, 0.028851451482857383, 0.03107216237677971, 0.03613473574188606, 0.043440573826693245, 0.051994573768961126, 0.06082460361088182, 0.06917189347161498, 0.07654040539931158, 0.08269477484975624, 0.08763922857558651, 0.09158243302936214, 0.09488275384460383, 0.09796796629259795, 0.1012344903947548, 0.10495059266938538, 0.10919960940297929, 0.11388558443846002, 0.11879136375859914, 0.12365652166573078, 0.12824491740453609, 0.13238815834315038, 0.13600514308944087, 0.13910340917495695, 0.14176789522915406, 0.1441409409040525, 0.14639622639890476, 0.14870958941817802, 0.15123081252580678 ], [ 0.1411138748363941, 0.13263566945362612, 0.1235587873938824, 0.11402809942766441, 0.10427430418755684, 0.09462044635669725, 0.08546835280874175, 0.0772535996667892, 0.0703648601381644, 0.0650423929046497, 0.06129292094338842, 0.058861421786352085, 0.05727299497782675, 0.05592936735468862, 0.05424259293523185, 0.05178553494941814, 0.04841549271378526, 0.04431757636248076, 0.039932364810181996, 0.03577696223399417, 0.03227910486007245, 0.02984896554391799, 0.029167137053597067, 0.031110337013118414, 0.036023497724280956, 0.04329784115372418, 0.05181963926955325, 0.06052109928491716, 0.06859826779128712, 0.07554427563224167, 0.08113600347927222, 0.08541172355835859, 0.0886390551827751, 0.09126079821669532, 0.09380536799258886, 0.09676308329268893, 0.10045983464016049, 0.1049820231671423, 0.11018799829678844, 0.11578981404608925, 0.1214553780666652, 0.12688960594331933, 0.1318806109605181, 0.13631592503403772, 0.14017891615890807, 0.14353354139262137, 0.14650233733518123, 0.14924059013554, 0.1519092550533005, 0.1546497696009536 ], [ 0.14168326538849715, 0.1335565590891191, 0.1248528436082979, 0.11568676637411392, 0.1062434538044662, 0.09678274617619753, 0.08762906769834186, 0.07914255125212945, 0.07167245466409324, 0.06549991239006571, 0.06077721757402553, 0.0574665475527171, 0.05529088104025852, 0.053741739826390085, 0.052195066730646084, 0.050115926741897875, 0.047247245334623246, 0.04368201680127053, 0.039785198197813225, 0.03600266770265893, 0.032701540583700756, 0.03025952061879569, 0.029378624287997673, 0.031065906529605548, 0.035833243249177936, 0.04307480759346863, 0.05155809422947021, 0.06011814855509231, 0.06790514412316319, 0.07440012660046436, 0.07939029597486331, 0.08294649322269816, 0.08539689178910188, 0.08727684104617461, 0.089231179321024, 0.09186217068214815, 0.09556243990274602, 0.10041424863722467, 0.10621121572596298, 0.11257498293729858, 0.11908923760405767, 0.12539540908233712, 0.13123905726063426, 0.13648009793697735, 0.14108266827902996, 0.14509515651529953, 0.14862587136933703, 0.15181711069752246, 0.15481963289227535, 0.1577697916258118 ], [ 0.14202243340552476, 0.13422772493713028, 0.12587282773741396, 0.11704096658668336, 0.10787266021292227, 0.09856953239338442, 0.08938859001965617, 0.0806269023440904, 0.07260071863347231, 0.06562259651598058, 0.059967443438401956, 0.055799698624522845, 0.053049609746056436, 0.05131477584666795, 0.04993203768624385, 0.04824106311726611, 0.045858764097538994, 0.042789839514139644, 0.03934208549003026, 0.035916001236573146, 0.03283563304085478, 0.030444394522250923, 0.029448795074999697, 0.030956290330400763, 0.03562258314682272, 0.04284434994815595, 0.05128034929077711, 0.05967958972641549, 0.06715140813719396, 0.07316448653776886, 0.07751318179640843, 0.08029723397805659, 0.08190480001360217, 0.08297141037653155, 0.08427715639651785, 0.08655993271192357, 0.09029121612321021, 0.09553852456303139, 0.10200524608821832, 0.1091991226922386, 0.11660724743902814, 0.12380530650561408, 0.13049964411456427, 0.1365279539763603, 0.14184086934409498, 0.14647671135874704, 0.15053471353217318, 0.15414884861372116, 0.15746352493136728, 0.16061258736226333 ], [ 0.14210878192403772, 0.13462642405850941, 0.12659712727116024, 0.11807211699125365, 0.10914891710536846, 0.0999761259386, 0.0907524666290225, 0.08172247629646825, 0.07317455386567605, 0.06544423000282686, 0.05890702872002779, 0.05391155985466667, 0.05060099677995772, 0.048695585159298026, 0.047489812661705606, 0.04617969284175837, 0.044247606936912834, 0.04161894588300856, 0.03856647984212041, 0.035471936497155326, 0.03263420054965998, 0.030366348287029388, 0.02937153735889532, 0.030821916041660458, 0.03546543872174273, 0.04268801134920775, 0.05106245837414232, 0.05927466584547513, 0.06640256626223319, 0.07190269562489446, 0.07557201146719883, 0.07753287937168898, 0.07822972509951492, 0.07840424881273625, 0.07899371310334728, 0.08090289688141125, 0.08469852857168386, 0.09041770797505122, 0.09763952672664952, 0.10573060639244856, 0.11407073531194545, 0.12217105549019319, 0.12970482109562936, 0.13649442684667842, 0.14248323458434212, 0.14770483551509697, 0.15225397427340645, 0.15626019480254724, 0.15986462055804748, 0.16320054799328354 ], [ 0.14192142083970402, 0.13473249296207276, 0.12700778416434577, 0.11876641435261433, 0.11006492196904953, 0.10100404683751218, 0.09173259182181266, 0.08245185759082409, 0.07342717386577309, 0.06501017607931472, 0.057656182328495086, 0.051875857928869104, 0.0480244728152755, 0.04596011279214341, 0.04493225719177581, 0.04397690034483423, 0.04243898240396838, 0.04017871320694959, 0.03745744792362665, 0.034663572101382, 0.03208813388615015, 0.03002195606719991, 0.029164779424567425, 0.03071501547893738, 0.035436683422892704, 0.042682687076501705, 0.05097636926777691, 0.058971458110006064, 0.06572654578442567, 0.07068654846407901, 0.07364534005982314, 0.07473898842153702, 0.07446036583249682, 0.07365989409986752, 0.07345633568270028, 0.07496249491780636, 0.07886285060155371, 0.08514090284275444, 0.09320648316649054, 0.10225531472940534, 0.11155313393012607, 0.12055241455885726, 0.12890234145947732, 0.1364180913275266, 0.14304207102151867, 0.14880800810645184, 0.15381001844836553, 0.15817630920781567, 0.16204703869510828, 0.16555635098932897 ], [ 0.14144114756022616, 0.13452820058284917, 0.1270901338450325, 0.11911415475629183, 0.11061798509541985, 0.1016594617889904, 0.09234512931446866, 0.08284157253807353, 0.07339617165374099, 0.06437219337563116, 0.05628620735492627, 0.049784988573291195, 0.045425097279932526, 0.04321234709570387, 0.04234961890256393, 0.04170240020426813, 0.04048394847478944, 0.038508090635142926, 0.03604732255123242, 0.03351888552851649, 0.031221706463420904, 0.029434938984296347, 0.028860267956258585, 0.030682724636870086, 0.03559303713736843, 0.0428862215042751, 0.0510801564489339, 0.05883017293605566, 0.0651889941398589, 0.06959113540055327, 0.07182138886002087, 0.07201848113742843, 0.07071111843489795, 0.06885502097470617, 0.06777495881614293, 0.06884492805256015, 0.07289815549264089, 0.07983056685491942, 0.08882508085268509, 0.09887726872728331, 0.10913909052124944, 0.11901576599394612, 0.1281438942244243, 0.13633996674541593, 0.1435512740647342, 0.14981573170375564, 0.15522979776571344, 0.1599225909021701, 0.16403490484856956, 0.16770260217591926 ], [ 0.14065036759849947, 0.13399802498026858, 0.12683237018186547, 0.1191090122408782, 0.11080896376362644, 0.10195173394900334, 0.09260858426889307, 0.08291939410351533, 0.07311950041795316, 0.06358247067232359, 0.05487158215123148, 0.047741809192348196, 0.0429271889968369, 0.04057923610167796, 0.03985337108602093, 0.039445586410266464, 0.038455018684776486, 0.03667158301604913, 0.034397787356542066, 0.032096347776545076, 0.03008713481211644, 0.02864959123776995, 0.028495044712449763, 0.03075365952285102, 0.035959124410033065, 0.043327919759750505, 0.05141110491639596, 0.05889766273562159, 0.06484869481185122, 0.06869098339032953, 0.07019521285357434, 0.06949091953956234, 0.06712541980494469, 0.06414740923827414, 0.062107397159378464, 0.0627059455771591, 0.06696706040408427, 0.0746507488666201, 0.08464344473472497, 0.09571778071071325, 0.10692239376152085, 0.11763200140616636, 0.12748333430037417, 0.13630212481650797, 0.144045246130574, 0.1507576918958524, 0.15654019973447442, 0.16152417634020605, 0.16585195937969027, 0.16966151167051838 ], [ 0.13953297976331713, 0.1331283910801506, 0.12622508825134524, 0.11874734066384943, 0.11064129399173565, 0.10189216104263528, 0.09254215351149284, 0.08271199363995696, 0.0726317512767157, 0.06268743723714994, 0.05348015632841968, 0.04584670674426565, 0.04066121600265098, 0.0381985909310056, 0.0375653212280348, 0.03730680541897689, 0.0364391699630391, 0.034753048532743615, 0.03259412221482832, 0.030479104772475476, 0.028758440975128516, 0.027725374382314816, 0.028108082138347742, 0.030938858363944603, 0.03653006630515943, 0.04400841143409207, 0.05198372131193005, 0.05920432138391576, 0.06475373474902306, 0.068055695948016, 0.06886420249810518, 0.06728914975125702, 0.06387656402708308, 0.059745036416813765, 0.05667727694943693, 0.05677204390134801, 0.06129784034472733, 0.06981476937970651, 0.08083877103762392, 0.09291214998329389, 0.105002363891588, 0.11647359478505319, 0.1269745234750281, 0.1363461297473425, 0.1445577588658547, 0.1516629147075844, 0.1577674183098034, 0.16300546714320077, 0.1675211965783139, 0.1714546017941399 ], [ 0.13807425201702467, 0.1319074047569772, 0.1252608491948254, 0.11802754898628534, 0.1101201740477204, 0.10149296999649339, 0.09216447153441554, 0.082243180291157, 0.07196122909846693, 0.061722316703388055, 0.05216285866664862, 0.044180482066396284, 0.03874227230787499, 0.036197483661494806, 0.03559990377818691, 0.035384925092649115, 0.03452854958190439, 0.03284720359429219, 0.030736876441077324, 0.028766777450586634, 0.027323901009397612, 0.0267323707186565, 0.027741064911096507, 0.031241123169468997, 0.03728401704420293, 0.04490730393573871, 0.05279262572619963, 0.05976376459527564, 0.06493891658625672, 0.06774543550891793, 0.06792175966264631, 0.06555195841194668, 0.06116263909567182, 0.05591057776321922, 0.05179349071379309, 0.05136683263478671, 0.056201980688287856, 0.06558782359374604, 0.0776117194933385, 0.0906028728919009, 0.10347850304266376, 0.11561090587000833, 0.1266688604149648, 0.1365113712951096, 0.14512079726812172, 0.15255894336425554, 0.158936357209618, 0.16438969258943772, 0.16906453663056392, 0.17310244689538015 ], [ 0.13626071405910178, 0.1303246151828324, 0.12393380323983358, 0.11694958620538216, 0.10925193401720527, 0.10076660944741682, 0.09149283375593639, 0.08153292851521203, 0.07112832834314746, 0.06070764245313062, 0.05094552956351409, 0.04278678106558819, 0.037242005581300766, 0.03466233603949882, 0.03404177024373106, 0.0337627794327125, 0.03280992629614657, 0.031049364217318697, 0.028930342503911112, 0.027063798964868154, 0.025876432633129616, 0.025746471470998837, 0.02743942253246536, 0.03166287131783858, 0.03819388885118841, 0.04599323786806705, 0.05381835236498961, 0.06057484651213306, 0.0654246489003703, 0.06780675657350098, 0.06744950391187596, 0.0644119299288422, 0.05919129591039314, 0.05295116994697843, 0.04785805536720591, 0.04693034680893849, 0.05207952873518338, 0.06227566312002788, 0.07517195676279093, 0.08892876369841964, 0.10244354764842378, 0.11510793067558107, 0.1266126548067042, 0.13683338484873803, 0.1457634391775499, 0.1534710635922314, 0.16007008130689204, 0.16569851474764075, 0.1705025343526307, 0.17462444630863191 ], [ 0.13408009211274527, 0.12837083384471593, 0.12223939943433762, 0.11551455938967253, 0.10804360528659711, 0.09972534713314099, 0.09054291731411075, 0.08059728683275942, 0.07014554163935506, 0.05964878854120985, 0.04982597856489789, 0.041661681173420895, 0.036164790522603345, 0.03361202592987816, 0.03292626518837942, 0.03249403678201247, 0.031354829301911406, 0.029445375666748697, 0.027269126933093853, 0.0254646658100302, 0.024503000044031845, 0.02484328327617702, 0.027250226891007902, 0.032208707183892786, 0.03923412311347973, 0.047231973068404286, 0.05503358528486914, 0.06162501803361957, 0.06621726219062017, 0.06826941193989007, 0.06750912247398477, 0.0639793777597365, 0.0581518031324379, 0.05117929725878094, 0.04533084284794574, 0.04399337220959771, 0.04938359424523323, 0.06018790387235691, 0.0737130304665816, 0.08801056507089026, 0.10197559009814382, 0.11501791482799995, 0.12684457307028713, 0.1373422794041858, 0.1465108342867356, 0.15442161150654676, 0.16118933412382405, 0.16695168577542024, 0.17185412957562923, 0.1760386324273978 ], [ 0.1315213110414902, 0.12603803598460175, 0.12017420503944796, 0.11372449825379685, 0.10650268546512458, 0.09838114253163527, 0.08932894289999778, 0.07944910076981546, 0.06901910166705982, 0.05853888059238589, 0.04877811831796906, 0.04075765550555039, 0.035448724055385746, 0.03299421334847145, 0.03223290765137313, 0.0315958480723712, 0.03021252222611422, 0.028104650006336246, 0.025829208254485723, 0.02404362107372012, 0.02327680929775906, 0.02409040401872478, 0.02721543782178162, 0.03288238620652575, 0.04038222334576844, 0.048590915893565914, 0.05640813430454255, 0.06289399123087051, 0.06731048035733618, 0.06914471941183983, 0.06813564425337812, 0.06432582005752807, 0.05817853119894415, 0.05083986632282354, 0.04461429751568929, 0.04304791645077474, 0.04851211867387125, 0.0595724489873855, 0.07337972823100528, 0.08793545297603904, 0.10213049679826704, 0.11537940665197331, 0.12739342836430484, 0.13806140671245315, 0.14738335012762685, 0.15542939910202827, 0.16231213988270216, 0.1681667671929852, 0.17313644429283137, 0.17736151612489257 ], [ 0.1285745895698105, 0.12331936935689379, 0.11773585499117305, 0.11158227424854464, 0.10463708175373122, 0.09674573446040517, 0.08786414658316305, 0.07809930830140134, 0.06775185059561195, 0.05736444636493917, 0.04776226519307458, 0.040001181276012016, 0.03499186052486397, 0.03270824326278495, 0.031895839490046686, 0.031049681357127493, 0.029406696719511013, 0.027077304472780558, 0.024668485969811783, 0.022857402849588638, 0.022255506770165964, 0.023539042499605305, 0.0273613796724538, 0.03368088227613403, 0.04161713659123446, 0.050040649280729856, 0.05791212601718796, 0.06435700797859913, 0.0686876746570878, 0.07042583714727942, 0.06933399815147571, 0.06547241739498823, 0.05931945634540619, 0.0520300938690304, 0.045884356173659054, 0.044324096805964865, 0.049650421369081446, 0.060542313699078025, 0.07423813734198889, 0.08874445462053972, 0.10293616942590389, 0.1162133736750719, 0.1282765844637081, 0.1390063966413497, 0.14839594651389462, 0.1565092888187998, 0.16345350662747976, 0.16935891990663438, 0.1743646311357142, 0.1786079715270545 ], [ 0.12523165680876774, 0.12020929696647514, 0.1149231534057882, 0.10909168297591548, 0.10245521301048009, 0.09483086813978901, 0.08616138023882752, 0.07655842855463756, 0.06634658797034967, 0.05611230095982287, 0.046738252066052, 0.03931565974810666, 0.034684930410289826, 0.03263809164473158, 0.03182498599567102, 0.030808793090482615, 0.028934610658356574, 0.0263923138815309, 0.023829618704963768, 0.021951820682659617, 0.021483872046432335, 0.02321918614702707, 0.027691187254525677, 0.03459065172316024, 0.042917329637966156, 0.05155493088597158, 0.05951773792615213, 0.065987444880315, 0.07032453031063345, 0.07208990339824951, 0.07107992778784734, 0.06738798695355884, 0.06152612664450763, 0.0546659478676235, 0.049002405921211994, 0.04765726444495249, 0.05268268135713647, 0.06303876707257254, 0.0762617701246425, 0.09042686117798109, 0.10439000590176711, 0.11752188507423945, 0.12949918099685628, 0.14018465293587168, 0.14955782438482426, 0.1576719406675468, 0.1646252427351559, 0.1705407714954854, 0.17555177650149897, 0.17979116149143878 ], [ 0.12148612341858116, 0.11670390571954971, 0.11173635566502198, 0.10625770719412525, 0.09996626085970027, 0.09264859460581305, 0.08423365328857675, 0.07483781186732665, 0.06480898533383371, 0.05477580106377075, 0.04567738647643771, 0.03864118539600705, 0.03443777395543401, 0.032680170177348575, 0.031927289848976234, 0.030808026484930393, 0.028766420346542115, 0.026052287983410315, 0.02333625859839536, 0.021362425340427635, 0.02099594215030717, 0.02314198170676152, 0.02818978266523247, 0.03558929150276845, 0.04426038038650849, 0.05311047760906119, 0.06120012165557659, 0.0677588051180721, 0.07219182134700011, 0.07410160013671144, 0.07332497086745632, 0.06999734514220018, 0.0646707558371956, 0.058522037940021636, 0.05360137707558111, 0.052602983135529274, 0.057261407500210866, 0.0668578916830729, 0.07934078398592928, 0.09292357237368865, 0.10646017182480086, 0.11928858399772539, 0.13105427457520183, 0.14159535401536422, 0.1508723717169038, 0.15892374383380348, 0.1658358931253631, 0.17172236402687466, 0.1767088598476399, 0.18092250415167432 ], [ 0.11733404986460669, 0.11280142279799356, 0.1081776720251909, 0.10308699441388194, 0.0971805844237615, 0.0902116116258518, 0.0820944796702709, 0.0729502813233392, 0.06314922531058823, 0.05335878220478426, 0.04457022821748967, 0.037946529656463175, 0.034193902571700706, 0.032758732386395865, 0.03212069953201198, 0.030972359542480496, 0.028844560331730176, 0.026024357948789566, 0.023181851158488233, 0.02110609046707878, 0.02081112606007526, 0.023303679999609257, 0.028832503717748516, 0.03665006562646774, 0.04562413479812364, 0.05468721941916657, 0.0629380767435699, 0.06964627937885783, 0.07425807058012308, 0.07641745721120854, 0.07600400833508193, 0.07319637069993451, 0.06858003513568636, 0.06331134005793945, 0.05925133911970547, 0.05865746579667487, 0.06296099837869862, 0.07171947173746471, 0.0833090645257908, 0.09613799194135686, 0.10909027833560261, 0.1214808215169415, 0.13292385331737705, 0.14322994462229321, 0.15233740178605829, 0.16026693108382037, 0.16709079437051255, 0.17291118179187914, 0.17784476848982436, 0.18201167965991663 ], [ 0.11277476939872899, 0.10850299779188113, 0.10425205302273553, 0.09958860808985506, 0.09411035048029608, 0.08753367800436283, 0.07975800315857272, 0.070909979082779, 0.0613818172600011, 0.05187602461215009, 0.043428499826468195, 0.03723199575358197, 0.0339329060858557, 0.03282872459337414, 0.032339453814076866, 0.031223474850169523, 0.029087284721154946, 0.02623581731958727, 0.023319997662745576, 0.021166950098990202, 0.02092289762895703, 0.023684292906816666, 0.029588581126713007, 0.037745463377541845, 0.046988595698254094, 0.056269147044194015, 0.06471479073133292, 0.07162804248690437, 0.07649194048967298, 0.07899019227177081, 0.07904344504250184, 0.07686836059728298, 0.07306910312352441, 0.06875317711101148, 0.06557246236924773, 0.06539357231848723, 0.06939287841519039, 0.0773342794259628, 0.08797631347199994, 0.09995066991354698, 0.11220624229220419, 0.1240530187736845, 0.13508055723186105, 0.14507304828285011, 0.15394565222733744, 0.1616998606179024, 0.16839224060022068, 0.17411225429188643, 0.178966364918583, 0.18306667492570705 ], [ 0.10781204813930181, 0.10381383424621923, 0.09996834505643673, 0.09577514432158481, 0.09077047750775476, 0.08463021448211311, 0.07723902823882198, 0.06873151793016559, 0.059523533573831715, 0.0503498341930733, 0.04228053018665763, 0.03652345440831497, 0.03366287021647152, 0.03286945760507348, 0.032533013782563576, 0.03148528300792971, 0.029399754945731802, 0.02658691977672336, 0.023667721765153634, 0.021487298483715986, 0.021287836852194084, 0.02424205225215807, 0.030420633562847885, 0.03884935526402995, 0.04833807044395252, 0.057845633439404104, 0.06651872875648186, 0.07368636740716938, 0.0788642492931678, 0.0817725374591302, 0.08236843453100555, 0.0808974905676223, 0.07796523585707774, 0.07460815745580769, 0.07227070212861482, 0.07249298002276992, 0.07624860037809167, 0.08344476627191828, 0.09315420387621563, 0.10423360649255446, 0.11572380739783186, 0.12695066100885427, 0.1374898548472371, 0.14710368885811967, 0.15568549151861275, 0.16321743820375587, 0.16973974549371396, 0.1753283260150757, 0.18007860142477158, 0.18409386284109505 ], [ 0.10245570507896229, 0.09874479482196985, 0.09534094495480082, 0.09166434673100107, 0.08718004285069329, 0.08151929066642882, 0.07455325516414292, 0.06642888507536894, 0.05759006289206034, 0.048803320325752936, 0.041160640010354486, 0.035858662326767425, 0.03340553801543789, 0.0328731921459062, 0.03266198627068704, 0.031688914816313696, 0.029688578072444276, 0.026971385406886136, 0.02412205036176087, 0.02197660232739181, 0.021828627879717045, 0.02491303671737381, 0.03128625994458979, 0.039939751285163895, 0.04966371182195068, 0.05941306069090729, 0.0683445945309209, 0.07580854590428601, 0.08134953904171685, 0.084720233827057, 0.08590829855266348, 0.08517769922546185, 0.08311973052383054, 0.08068689008150032, 0.07913177437232252, 0.07973071805334807, 0.08329907904085766, 0.08983989751460816, 0.09867242191207358, 0.10886154133372118, 0.11955543561546328, 0.1301143329507537, 0.14011240177871204, 0.14929668873840682, 0.15754176588318047, 0.1648116440035678, 0.17113038053262666, 0.17656008142143179, 0.18118467491503867, 0.18509811132251036 ], [ 0.09672388177454688, 0.09331466959097881, 0.09039214147942828, 0.08728140162532001, 0.08336435092961944, 0.07822327125927288, 0.07171816736548449, 0.06401487352172258, 0.05559268999610888, 0.04725231135377004, 0.04009451066327884, 0.035268118882279195, 0.033177670031216216, 0.032832818981587186, 0.03269399681626603, 0.03177716624820927, 0.02987426471228623, 0.027294034794375137, 0.024580513273903863, 0.022533229135514154, 0.022452487979604776, 0.025625739477182344, 0.03214637090691914, 0.041003733224642465, 0.05096660598183731, 0.06097652366338072, 0.07019418119274436, 0.07798753735468611, 0.08392714723132229, 0.08779408676366691, 0.08959997853908308, 0.08961728496556057, 0.0884112329121757, 0.0868457468829399, 0.08600350965419566, 0.08695065785824573, 0.09037916009356718, 0.09635480573197776, 0.1043857348527293, 0.11371935641737944, 0.12361579499039684, 0.1334833382283189, 0.14290633472122236, 0.15162411234529502, 0.15949671538712112, 0.1664721243215047, 0.1725591665486859, 0.17780641140130116, 0.18228621337692016, 0.18608291659159948 ], [ 0.09064626335907036, 0.0875534040064059, 0.08515541979957233, 0.08266215506131831, 0.07935790003001417, 0.07477143794409098, 0.06875510365944962, 0.061502020724557634, 0.053536854761234855, 0.04569932843621976, 0.03908565691749627, 0.03475508661854878, 0.03297453700513435, 0.032733215332056975, 0.03260185472719348, 0.031708735045769286, 0.029900373279387705, 0.027483563436541746, 0.02495786636260834, 0.02306369905569419, 0.023072459959758027, 0.026320915071551612, 0.0329778112200606, 0.04204406859276513, 0.05226102676629487, 0.06255123981573768, 0.07207686733590389, 0.08022223556204228, 0.08658175739583257, 0.09096112469090424, 0.09338977810309132, 0.09414036457412737, 0.09374436597195286, 0.09297862045338899, 0.0927791822720704, 0.09404511077550733, 0.09737142474470106, 0.10286432639598958, 0.11017515824189664, 0.11870598708224334, 0.12782559539311375, 0.1369986330326655, 0.1458293163689525, 0.15405664231250646, 0.16153089245844204, 0.16818680859777607, 0.17401949462428853, 0.17906470643710587, 0.18338348462550416, 0.18705055453017402 ], [ 0.08426873985770704, 0.0815067590185506, 0.07968013504836756, 0.07785756098845482, 0.07520850436581851, 0.07120389651608362, 0.06569302985970335, 0.05890601681129105, 0.05142448892135099, 0.044133612065005275, 0.038111509635458986, 0.034287204647365226, 0.032765345852507934, 0.0325505391507406, 0.03236563529663008, 0.0314630328638086, 0.02974064144231163, 0.027501878601297124, 0.02519863772018669, 0.02349816167586253, 0.023626215902121044, 0.02696925056082564, 0.033785518026565146, 0.043085459183417094, 0.05357689450169651, 0.06416315706172229, 0.07400949870935576, 0.08251725121067607, 0.0893034322670769, 0.0941949857255116, 0.09723381594428512, 0.09868639541238039, 0.09904639041236146, 0.09900874175640009, 0.09938479944431028, 0.10094032814002063, 0.10419327473030032, 0.1092753255261086, 0.11594602803280904, 0.12373576389404309, 0.132113893541324, 0.1406049809476749, 0.14884022086918583, 0.1565648049269394, 0.1636240269899216, 0.16994251573858432, 0.17550355345100543, 0.1803311617820996, 0.18447561776241905, 0.18800224371156432 ], [ 0.07766030475662318, 0.07524315818105755, 0.07403813992830745, 0.07293972615901358, 0.0709827986443335, 0.06757699384655372, 0.06257437737198172, 0.056252266525435676, 0.049261404424269496, 0.04253970999662657, 0.03713483138205992, 0.03381296772162965, 0.03250656603872563, 0.032261128547949706, 0.03197931708963138, 0.03104628178686851, 0.029405593363491044, 0.02735210690963317, 0.025288310692751195, 0.02380758898212864, 0.024095751334365957, 0.027586134350211202, 0.034611231235381, 0.0441780544733341, 0.05496025120574533, 0.06584824677376637, 0.07601545220569801, 0.08488215401308442, 0.09208716713728571, 0.09747569067355051, 0.10109760385370946, 0.10320867805591305, 0.10426340132083901, 0.10488184937801613, 0.10577005079045473, 0.10758665650897674, 0.11078751259415942, 0.11551979371683417, 0.12162483658549052, 0.12873812545486088, 0.13641917128296815, 0.1442523651008397, 0.1519004176578312, 0.15911999375032493, 0.16575579676304203, 0.17172552023568813, 0.17700274293771823, 0.1816010810443535, 0.18556082816660827, 0.18893831382792542 ], [ 0.07092346271102173, 0.06886389401532145, 0.06833314370252841, 0.06800988901174411, 0.06677319870958956, 0.06397024257123703, 0.05946299965334731, 0.053585775222959445, 0.04706991683862019, 0.04091419156216235, 0.036126944840611616, 0.033290485210756386, 0.032166467313867846, 0.03185796245855634, 0.03146158819443434, 0.03049910963064445, 0.02894914073392586, 0.02708607601689797, 0.025263814033957978, 0.024019533766159878, 0.024523594840981024, 0.028241210622798843, 0.035536147430959286, 0.0453961964032883, 0.05647081375946633, 0.06765017029774371, 0.07812281547457593, 0.0873301962230809, 0.09493203909176372, 0.1007889663904197, 0.10495508946571999, 0.10767243143237346, 0.10935674254866645, 0.1105608410110328, 0.11190195734822114, 0.11395186327798175, 0.11711564731485155, 0.1215492218556709, 0.12715584705217692, 0.1336564372242204, 0.14068953166512196, 0.14789676750510275, 0.15497466367868984, 0.1616952700141796, 0.16790647739803063, 0.17352205627460127, 0.17850805765995223, 0.18286916640546697, 0.18663663772258524, 0.18985837366394284 ], [ 0.06421001881259113, 0.06251833911393707, 0.06271359464650157, 0.0632083389324757, 0.06270593259708743, 0.060494235450493275, 0.05645369290665293, 0.05098375563181998, 0.04490570443027929, 0.039287776077202595, 0.035095386891635376, 0.032716882376064876, 0.03175162551744539, 0.031370859202961496, 0.030869706028489045, 0.0299051439052498, 0.02847408658938685, 0.026809831599387216, 0.025221401902550258, 0.02422810576394309, 0.025019620524586308, 0.02905782399904278, 0.03667448087024837, 0.04683119064330858, 0.058176369063448176, 0.0696163967896473, 0.08036181035786347, 0.0898766309645153, 0.09784006407369006, 0.10412527568436401, 0.10878741624655269, 0.11205278232997368, 0.11429987865146864, 0.11602167225924857, 0.1177603714961944, 0.12001652701492596, 0.1231531263005179, 0.12733020048714483, 0.13249795198695213, 0.13844641078167536, 0.14488231884666974, 0.1515004532693463, 0.15803164722486054, 0.1642659419581183, 0.17005746025317234, 0.1753187460243327, 0.18001042809388976, 0.1841297860412982, 0.1877000832468553, 0.19076147345132155 ], [ 0.05774434996118073, 0.056425778465764465, 0.05738906392221146, 0.05872512632611581, 0.05894863360141882, 0.05729794723946401, 0.053681558641206, 0.048569034823367246, 0.04287651165558216, 0.037749110078956254, 0.03411042203325312, 0.03215390286621959, 0.03133042350926496, 0.030886650704051437, 0.030314373068618266, 0.029398968224270204, 0.02813340201046914, 0.026683027824810503, 0.025318501922279676, 0.024595345943226654, 0.02575390811968392, 0.03019696498893344, 0.03815609885945912, 0.04857867432176427, 0.06014480538710421, 0.07179331574845933, 0.08276178559092544, 0.09253681982353387, 0.100814900220538, 0.10747869564537878, 0.11258157891440213, 0.11633284963727009, 0.11907576125133831, 0.121250214931971, 0.12333472191574413, 0.1257707661187972, 0.12888588647910626, 0.13284102033559733, 0.1376219414515132, 0.14307442156475114, 0.1489633999329155, 0.15503189492986127, 0.16104424306212053, 0.1668099415782207, 0.17219163834173187, 0.17710294566146575, 0.18150101197553883, 0.18537721187234887, 0.18874790755285875, 0.1916462573006205 ], [ 0.05185396113452349, 0.05090281133092005, 0.05264676011997752, 0.05480748242057569, 0.05571372567371915, 0.054571847991833226, 0.05132737162121043, 0.04651984640577665, 0.04115764645463753, 0.03646447709419729, 0.03332484285225728, 0.031745199430669925, 0.031049068115910648, 0.030564250854885063, 0.029970855612014565, 0.029169316206608495, 0.02812329671373463, 0.026906931304926808, 0.025764447891509865, 0.025338202970879197, 0.026931543362567527, 0.03182451663603477, 0.04010157960547683, 0.050723773613609774, 0.062435559346490595, 0.07422124449719043, 0.08534823274338166, 0.0953243689107177, 0.1038605449930185, 0.11084576761482684, 0.1163290963779061, 0.1205020098043324, 0.12367464859577074, 0.1262398313832161, 0.1286216014842404, 0.1312118480190069, 0.13430780662983713, 0.13806904420422644, 0.14250820159232286, 0.14751588737575413, 0.15290627807809654, 0.15846545391165828, 0.163989542435385, 0.1693080266970201, 0.17429366886433983, 0.1788630088409602, 0.18297143217182898, 0.18660582331176445, 0.18977672915876045, 0.192511102368419 ], [ 0.046995913738551505, 0.046384231005261886, 0.048855959816580155, 0.05175441342409737, 0.05325050044389151, 0.05254061512151426, 0.04961218099009741, 0.045067599015118566, 0.03999402545882106, 0.03568225884269184, 0.03297664588830565, 0.03171638593617286, 0.031131307772992462, 0.03063463137800434, 0.030075842750224523, 0.029448622413894805, 0.02866511625609532, 0.027701463473907312, 0.026793494772695135, 0.026693882989642592, 0.02875178059380503, 0.03407606562363807, 0.042600585193216, 0.053328907440954976, 0.06509260276090632, 0.07693029879607804, 0.08814028517160694, 0.09824952540715241, 0.1069801614353625, 0.11422441917468502, 0.12002478345092249, 0.12455437903075316, 0.12809231616794461, 0.1309894821760706, 0.13362293781011214, 0.13634239295638226, 0.1394187836809709, 0.1430086604062788, 0.14714480523556583, 0.15175378532639996, 0.15669114915775484, 0.16178091232357203, 0.16684871760570863, 0.17174384016746005, 0.17635012642359185, 0.18058847202357034, 0.18441396088487, 0.1878102750099725, 0.1907831881685758, 0.19335424240389007 ], [ 0.04373777070296491, 0.04339876781228728, 0.04643388156610807, 0.04988358349309614, 0.051816897988405206, 0.05143815305667312, 0.048772885291688814, 0.04447114594040521, 0.03967290155284846, 0.03570388942106526, 0.03335776645200343, 0.032343870161670715, 0.031848244015086805, 0.03137065484498544, 0.030895009591965637, 0.030477404587308403, 0.029970253929055574, 0.029268382886778757, 0.02861703929056633, 0.02886530419609741, 0.0313637072403588, 0.03703639883260949, 0.045702084777836834, 0.05642763636145666, 0.0681404575110228, 0.07993782009366245, 0.09114903711075803, 0.10131800913049759, 0.11017513731839174, 0.11761303210717951, 0.12366567241898149, 0.12848752097845767, 0.13232859794574653, 0.13550223634220734, 0.13834457839248046, 0.14116899248697634, 0.1442232506398498, 0.1476596735169894, 0.15152593806204545, 0.1557773361038067, 0.1603039718091054, 0.16496292493575332, 0.16960677250525208, 0.17410385796300154, 0.17834956382063646, 0.18227016928767778, 0.1858216527024731, 0.18898562858964854, 0.19176406725055534, 0.19417387426582103 ], [ 0.042620154835977475, 0.042438809563880915, 0.04574544154296234, 0.04946160067180461, 0.05162812570081129, 0.05146315785235211, 0.049016102613616254, 0.04496201440285601, 0.04045681840510789, 0.03680852026850589, 0.03473913980365079, 0.03388608268476183, 0.033452250160645715, 0.03301983689364714, 0.03265655140683479, 0.03244452462199359, 0.0321908690001368, 0.03174402761688999, 0.03136907576719838, 0.0319678536196094, 0.034835178042246444, 0.040731696052550566, 0.04941431200647775, 0.06002451501431244, 0.07158349680889765, 0.08324757103220297, 0.09437681872764853, 0.10453036486653698, 0.11344443718419263, 0.12100970209774717, 0.1272501123554999, 0.13230137476031137, 0.1363862065009917, 0.13978409208030274, 0.14279518085003862, 0.145701127758234, 0.14872901562552404, 0.1520260266872969, 0.15565060409413534, 0.15958085833084362, 0.16373559112197844, 0.16800044110845463, 0.17225222159841214, 0.17637725535876453, 0.18028249812095715, 0.18390028613932483, 0.1871884309346567, 0.1901274499560672, 0.19271638783315387, 0.19496824685974137 ] ] }, { "hoverinfo": "text", "legendgroup": "In-sample", "marker": { "color": "black", "opacity": 0.5, "symbol": 1 }, "mode": "markers", "name": "In-sample", "text": [ "Arm 0_0
accuracy: 0.841833 (SEM: None)
lr: 2.6e-05
momentum: 0.58", "Arm 10_0
accuracy: 0.560333 (SEM: None)
lr: 1e-06
momentum: 1", "Arm 11_0
accuracy: 0.759333 (SEM: None)
lr: 3.7322e-05
momentum: 1", "Arm 12_0
accuracy: 0.9435 (SEM: None)
lr: 0.000261031
momentum: 0.913716", "Arm 13_0
accuracy: 0.946667 (SEM: None)
lr: 0.000170011
momentum: 0.796705", "Arm 14_0
accuracy: 0.698667 (SEM: None)
lr: 0.000157101
momentum: 1", "Arm 15_0
accuracy: 0.946667 (SEM: None)
lr: 0.000311131
momentum: 0.634907", "Arm 16_0
accuracy: 0.917 (SEM: None)
lr: 8.72286e-05
momentum: 0.69567", "Arm 17_0
accuracy: 0.8825 (SEM: None)
lr: 0.00109916
momentum: 0", "Arm 18_0
accuracy: 0.917667 (SEM: None)
lr: 0.000552597
momentum: 0.203965", "Arm 19_0
accuracy: 0.101 (SEM: None)
lr: 0.4
momentum: 0", "Arm 1_0
accuracy: 0.100333 (SEM: None)
lr: 0.00995509
momentum: 0.633423", "Arm 20_0
accuracy: 0.906667 (SEM: None)
lr: 0.00047477
momentum: 0", "Arm 21_0
accuracy: 0.863667 (SEM: None)
lr: 0.000486462
momentum: 0.491729", "Arm 22_0
accuracy: 0.950667 (SEM: None)
lr: 0.000251361
momentum: 0.735959", "Arm 23_0
accuracy: 0.885333 (SEM: None)
lr: 1.87347e-05
momentum: 0.795832", "Arm 24_0
accuracy: 0.925333 (SEM: None)
lr: 0.000157909
momentum: 0.722922", "Arm 2_0
accuracy: 0.318667 (SEM: None)
lr: 5.18336e-06
momentum: 0.0228515", "Arm 3_0
accuracy: 0.4585 (SEM: None)
lr: 6.63497e-06
momentum: 0.176948", "Arm 4_0
accuracy: 0.926 (SEM: None)
lr: 8.15482e-05
momentum: 0.90883", "Arm 5_0
accuracy: 0.929 (SEM: None)
lr: 0.000302077
momentum: 0.341904", "Arm 6_0
accuracy: 0.92 (SEM: None)
lr: 0.000137311
momentum: 0.590917", "Arm 7_0
accuracy: 0.860167 (SEM: None)
lr: 1.03262e-05
momentum: 1", "Arm 8_0
accuracy: 0.888833 (SEM: None)
lr: 0.000246295
momentum: 0", "Arm 9_0
accuracy: 0.901667 (SEM: None)
lr: 0.000149439
momentum: 0.286357" ], "type": "scatter", "x": [ 2.6e-05, 1e-06, 3.732203042440573e-05, 0.0002610311526492216, 0.00017001076327630705, 0.00015710058476787537, 0.0003111310298441722, 8.722863799591371e-05, 0.0010991641099331285, 0.0005525971627619024, 0.4, 0.00995509203921593, 0.00047477025206108046, 0.0004864619889446352, 0.000251361411682019, 1.873467504609066e-05, 0.00015790887036680373, 5.183362665905935e-06, 6.6349677287433636e-06, 8.154817047148868e-05, 0.000302076728574865, 0.00013731096878444508, 1.0326238937471567e-05, 0.00024629478836000866, 0.00014943856257187694 ], "xaxis": "x", "y": [ 0.58, 1.0, 1.0, 0.9137160651593753, 0.7967047838336898, 1.0, 0.6349071669266169, 0.6956697448621064, 0.0, 0.2039654558489162, 0.0, 0.6334228515625, 0.0, 0.4917288225982615, 0.7359592568329341, 0.7958318549871963, 0.7229219854783816, 0.022851496934890747, 0.1769482558593154, 0.9088304992765188, 0.34190391190350056, 0.5909173273841994, 1.0, 0.0, 0.2863569283143983 ], "yaxis": "y" }, { "hoverinfo": "text", "legendgroup": "In-sample", "marker": { "color": "black", "opacity": 0.5, "symbol": 1 }, "mode": "markers", "name": "In-sample", "showlegend": false, "text": [ "Arm 0_0
accuracy: 0.841833 (SEM: None)
lr: 2.6e-05
momentum: 0.58", "Arm 10_0
accuracy: 0.560333 (SEM: None)
lr: 1e-06
momentum: 1", "Arm 11_0
accuracy: 0.759333 (SEM: None)
lr: 3.7322e-05
momentum: 1", "Arm 12_0
accuracy: 0.9435 (SEM: None)
lr: 0.000261031
momentum: 0.913716", "Arm 13_0
accuracy: 0.946667 (SEM: None)
lr: 0.000170011
momentum: 0.796705", "Arm 14_0
accuracy: 0.698667 (SEM: None)
lr: 0.000157101
momentum: 1", "Arm 15_0
accuracy: 0.946667 (SEM: None)
lr: 0.000311131
momentum: 0.634907", "Arm 16_0
accuracy: 0.917 (SEM: None)
lr: 8.72286e-05
momentum: 0.69567", "Arm 17_0
accuracy: 0.8825 (SEM: None)
lr: 0.00109916
momentum: 0", "Arm 18_0
accuracy: 0.917667 (SEM: None)
lr: 0.000552597
momentum: 0.203965", "Arm 19_0
accuracy: 0.101 (SEM: None)
lr: 0.4
momentum: 0", "Arm 1_0
accuracy: 0.100333 (SEM: None)
lr: 0.00995509
momentum: 0.633423", "Arm 20_0
accuracy: 0.906667 (SEM: None)
lr: 0.00047477
momentum: 0", "Arm 21_0
accuracy: 0.863667 (SEM: None)
lr: 0.000486462
momentum: 0.491729", "Arm 22_0
accuracy: 0.950667 (SEM: None)
lr: 0.000251361
momentum: 0.735959", "Arm 23_0
accuracy: 0.885333 (SEM: None)
lr: 1.87347e-05
momentum: 0.795832", "Arm 24_0
accuracy: 0.925333 (SEM: None)
lr: 0.000157909
momentum: 0.722922", "Arm 2_0
accuracy: 0.318667 (SEM: None)
lr: 5.18336e-06
momentum: 0.0228515", "Arm 3_0
accuracy: 0.4585 (SEM: None)
lr: 6.63497e-06
momentum: 0.176948", "Arm 4_0
accuracy: 0.926 (SEM: None)
lr: 8.15482e-05
momentum: 0.90883", "Arm 5_0
accuracy: 0.929 (SEM: None)
lr: 0.000302077
momentum: 0.341904", "Arm 6_0
accuracy: 0.92 (SEM: None)
lr: 0.000137311
momentum: 0.590917", "Arm 7_0
accuracy: 0.860167 (SEM: None)
lr: 1.03262e-05
momentum: 1", "Arm 8_0
accuracy: 0.888833 (SEM: None)
lr: 0.000246295
momentum: 0", "Arm 9_0
accuracy: 0.901667 (SEM: None)
lr: 0.000149439
momentum: 0.286357" ], "type": "scatter", "x": [ 2.6e-05, 1e-06, 3.732203042440573e-05, 0.0002610311526492216, 0.00017001076327630705, 0.00015710058476787537, 0.0003111310298441722, 8.722863799591371e-05, 0.0010991641099331285, 0.0005525971627619024, 0.4, 0.00995509203921593, 0.00047477025206108046, 0.0004864619889446352, 0.000251361411682019, 1.873467504609066e-05, 0.00015790887036680373, 5.183362665905935e-06, 6.6349677287433636e-06, 8.154817047148868e-05, 0.000302076728574865, 0.00013731096878444508, 1.0326238937471567e-05, 0.00024629478836000866, 0.00014943856257187694 ], "xaxis": "x2", "y": [ 0.58, 1.0, 1.0, 0.9137160651593753, 0.7967047838336898, 1.0, 0.6349071669266169, 0.6956697448621064, 0.0, 0.2039654558489162, 0.0, 0.6334228515625, 0.0, 0.4917288225982615, 0.7359592568329341, 0.7958318549871963, 0.7229219854783816, 0.022851496934890747, 0.1769482558593154, 0.9088304992765188, 0.34190391190350056, 0.5909173273841994, 1.0, 0.0, 0.2863569283143983 ], "yaxis": "y2" } ], "layout": { "annotations": [ { "font": { "size": 14 }, "showarrow": false, "text": "Mean", "x": 0.25, "xanchor": "center", "xref": "paper", "y": 1, "yanchor": "bottom", "yref": "paper" }, { "font": { "size": 14 }, "showarrow": false, "text": "Standard Error", "x": 0.8, "xanchor": "center", "xref": "paper", "y": 1, "yanchor": "bottom", "yref": "paper" } ], "autosize": false, "height": 450, "hovermode": "closest", "legend": { "orientation": "h", "x": 0, "y": -0.25 }, "margin": { "b": 100, "l": 35, "pad": 0, "r": 35, "t": 35 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "sequentialminus": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "accuracy" }, "width": 950, "xaxis": { "anchor": "y", "autorange": false, "domain": [ 0.05, 0.45 ], "exponentformat": "e", "range": [ -6.0, -0.3979400086720376 ], "tickfont": { "size": 11 }, "tickmode": "auto", "title": { "text": "lr" }, "type": "log" }, "xaxis2": { "anchor": "y2", "autorange": false, "domain": [ 0.6, 1 ], "exponentformat": "e", "range": [ -6.0, -0.3979400086720376 ], "tickfont": { "size": 11 }, "tickmode": "auto", "title": { "text": "lr" }, "type": "log" }, "yaxis": { "anchor": "x", "autorange": false, "domain": [ 0, 1 ], "exponentformat": "e", "range": [ 0.0, 1.0 ], "tickfont": { "size": 11 }, "tickmode": "auto", "title": { "text": "momentum" }, "type": "linear" }, "yaxis2": { "anchor": "x2", "autorange": false, "domain": [ 0, 1 ], "exponentformat": "e", "range": [ 0.0, 1.0 ], "tickfont": { "size": 11 }, "tickmode": "auto", "type": "linear" } } }, "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "render(ax_client.get_contour_plot(param_x=\"lr\", param_y=\"momentum\", metric_name=\"accuracy\"))" ] }, { "cell_type": "markdown", "id": "5a264af8", "metadata": { "customInput": null, "originalKey": "5c91d83a-9a90-4ea0-8df9-9d242d998cb3", "papermill": { "duration": 0.05362, "end_time": "2024-05-02T22:23:45.975707", "exception": false, "start_time": "2024-05-02T22:23:45.922087", "status": "completed" }, "showInput": false, "tags": [] }, "source": [ "Here we plot the optimization trace, showing the progression of finding the point with the optimal objective:\n", "\n" ] }, { "cell_type": "code", "execution_count": 15, "id": "6e795104", "metadata": { "customInput": null, "customOutput": null, "execution": { "iopub.execute_input": "2024-05-02T22:23:46.085640Z", "iopub.status.busy": "2024-05-02T22:23:46.085180Z", "iopub.status.idle": "2024-05-02T22:23:46.133023Z", "shell.execute_reply": "2024-05-02T22:23:46.132321Z" }, "executionStartTime": 1690415953760, "executionStopTime": 1690415954260, "originalKey": "3a767bdf-7ef3-48e7-b853-6fae5e9e02ff", "papermill": { "duration": 0.104643, "end_time": "2024-05-02T22:23:46.134417", "exception": false, "start_time": "2024-05-02T22:23:46.029774", "status": "completed" }, "requestMsgId": "043de459-6a28-4796-b237-808385c9e54c", "showInput": true, "tags": [] }, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "hoverinfo": "none", "legendgroup": "", "line": { "width": 0 }, "mode": "lines", "showlegend": false, "type": "scatter", "x": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 ], "y": [ 0.8418333333333333, 0.8418333333333333, 0.8418333333333333, 0.8418333333333333, 0.926, 0.929, 0.929, 0.929, 0.929, 0.929, 0.929, 0.929, 0.9435, 0.9466666666666667, 0.9466666666666667, 0.9466666666666667, 0.9466666666666667, 0.9466666666666667, 0.9466666666666667, 0.9466666666666667, 0.9466666666666667, 0.9466666666666667, 0.9506666666666667, 0.9506666666666667, 0.9506666666666667, 0.9506666666666667 ] }, { "fill": "tonexty", "fillcolor": "rgba(128,177,211,0.3)", "legendgroup": "objective value", "line": { "color": "rgba(128,177,211,1)" }, "mode": "lines", "name": "objective value", "text": [ "
Parameterization:
lr: 2.6e-05
momentum: 0.58", "
Parameterization:
lr: 0.00995509203921593
momentum: 0.6334228515625", "
Parameterization:
lr: 5.183362665905935e-06
momentum: 0.022851496934890747", "
Parameterization:
lr: 6.6349677287433636e-06
momentum: 0.1769482558593154", "
Parameterization:
lr: 8.154817047148868e-05
momentum: 0.9088304992765188", "
Parameterization:
lr: 0.000302076728574865
momentum: 0.34190391190350056", "
Parameterization:
lr: 0.00013731096878444508
momentum: 0.5909173273841994", "
Parameterization:
lr: 1.0326238937471567e-05
momentum: 1.0", "
Parameterization:
lr: 0.00024629478836000866
momentum: 0.0", "
Parameterization:
lr: 0.00014943856257187694
momentum: 0.2863569283143983", "
Parameterization:
lr: 1e-06
momentum: 1.0", "
Parameterization:
lr: 3.732203042440573e-05
momentum: 1.0", "
Parameterization:
lr: 0.0002610311526492216
momentum: 0.9137160651593753", "
Parameterization:
lr: 0.00017001076327630705
momentum: 0.7967047838336898", "
Parameterization:
lr: 0.00015710058476787537
momentum: 1.0", "
Parameterization:
lr: 0.0003111310298441722
momentum: 0.6349071669266169", "
Parameterization:
lr: 8.722863799591371e-05
momentum: 0.6956697448621064", "
Parameterization:
lr: 0.0010991641099331285
momentum: 0.0", "
Parameterization:
lr: 0.0005525971627619024
momentum: 0.2039654558489162", "
Parameterization:
lr: 0.4
momentum: 0.0", "
Parameterization:
lr: 0.00047477025206108046
momentum: 0.0", "
Parameterization:
lr: 0.0004864619889446352
momentum: 0.4917288225982615", "
Parameterization:
lr: 0.000251361411682019
momentum: 0.7359592568329341", "
Parameterization:
lr: 1.873467504609066e-05
momentum: 0.7958318549871963", "
Parameterization:
lr: 0.00015790887036680373
momentum: 0.7229219854783816", "
Parameterization:
lr: 0.0004560991259635546
momentum: 0.7874368655628239" ], "type": "scatter", "x": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 ], "y": [ 0.8418333333333333, 0.8418333333333333, 0.8418333333333333, 0.8418333333333333, 0.926, 0.929, 0.929, 0.929, 0.929, 0.929, 0.929, 0.929, 0.9435, 0.9466666666666667, 0.9466666666666667, 0.9466666666666667, 0.9466666666666667, 0.9466666666666667, 0.9466666666666667, 0.9466666666666667, 0.9466666666666667, 0.9466666666666667, 0.9506666666666667, 0.9506666666666667, 0.9506666666666667, 0.9506666666666667 ] }, { "fill": "tonexty", "fillcolor": "rgba(128,177,211,0.3)", "hoverinfo": "none", "legendgroup": "", "line": { "width": 0 }, "mode": "lines", "showlegend": false, "type": "scatter", "x": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 ], "y": [ 0.8418333333333333, 0.8418333333333333, 0.8418333333333333, 0.8418333333333333, 0.926, 0.929, 0.929, 0.929, 0.929, 0.929, 0.929, 0.929, 0.9435, 0.9466666666666667, 0.9466666666666667, 0.9466666666666667, 0.9466666666666667, 0.9466666666666667, 0.9466666666666667, 0.9466666666666667, 0.9466666666666667, 0.9466666666666667, 0.9506666666666667, 0.9506666666666667, 0.9506666666666667, 0.9506666666666667 ] } ], "layout": { "showlegend": true, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ], "sequentialminus": [ [ 0.0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1.0, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Best objective found vs. # of iterations" }, "xaxis": { "title": { "text": "Iteration" } }, "yaxis": { "title": { "text": "Accuracy" } } } }, "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "render(\n", " ax_client.get_optimization_trace()\n", ") " ] }, { "cell_type": "markdown", "id": "0dd68c76", "metadata": { "customInput": null, "executionStartTime": 1689617061294, "executionStopTime": 1689617061325, "originalKey": "09aaec9d-c178-42e2-b549-663cd17f8c3d", "papermill": { "duration": 0.057177, "end_time": "2024-05-02T22:23:46.288302", "exception": false, "start_time": "2024-05-02T22:23:46.231125", "status": "completed" }, "requestMsgId": "09aaec9d-c178-42e2-b549-663cd17f8c3d", "showInput": false, "tags": [] }, "source": [ "## 8. Train CNN with best hyperparameters and evaluate on test set\n", "Note that the resulting accuracy on the test set generally won't be the same as the maximum accuracy achieved on the evaluation set throughout optimization. " ] }, { "cell_type": "code", "execution_count": 16, "id": "b9ac183b", "metadata": { "customInput": null, "customOutput": null, "execution": { "iopub.execute_input": "2024-05-02T22:23:46.405808Z", "iopub.status.busy": "2024-05-02T22:23:46.405270Z", "iopub.status.idle": "2024-05-02T22:23:46.429351Z", "shell.execute_reply": "2024-05-02T22:23:46.428702Z" }, "executionStartTime": 1690415954397, "executionStopTime": 1690415954452, "originalKey": "27f92d16-93c4-43bb-a37f-e7a1aeecd856", "papermill": { "duration": 0.083948, "end_time": "2024-05-02T22:23:46.430628", "exception": false, "start_time": "2024-05-02T22:23:46.346680", "status": "completed" }, "requestMsgId": "07eba5ce-bebe-4588-8dbb-07553efeb2b0", "showInput": true, "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[WARNING 05-02 22:23:46] ax.service.utils.report_utils: Column reason missing for all trials. Not appending column.\n" ] }, { "data": { "text/plain": [ "{'lr': 0.000251361411682019, 'momentum': 0.7359592568329341}" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = ax_client.get_trials_data_frame()\n", "best_arm_idx = df.trial_index[df[\"accuracy\"] == df[\"accuracy\"].max()].values[0]\n", "best_arm = ax_client.get_trial_parameters(best_arm_idx)\n", "best_arm" ] }, { "cell_type": "code", "execution_count": 17, "id": "f28a43b5", "metadata": { "customInput": null, "customOutput": null, "execution": { "iopub.execute_input": "2024-05-02T22:23:46.548354Z", "iopub.status.busy": "2024-05-02T22:23:46.547747Z", "iopub.status.idle": "2024-05-02T22:23:46.551913Z", "shell.execute_reply": "2024-05-02T22:23:46.551253Z" }, "executionStartTime": 1690415954677, "executionStopTime": 1690415954681, "originalKey": "d0c7c645-c230-4654-a3b5-a01c61a09393", "papermill": { "duration": 0.064372, "end_time": "2024-05-02T22:23:46.553291", "exception": false, "start_time": "2024-05-02T22:23:46.488919", "status": "completed" }, "requestMsgId": "0a962cef-65a1-4f95-9410-37a9a8e5c5ac", "showInput": true, "tags": [] }, "outputs": [], "source": [ "combined_train_valid_set = torch.utils.data.ConcatDataset(\n", " [\n", " train_loader.dataset.dataset,\n", " valid_loader.dataset.dataset,\n", " ]\n", ")\n", "combined_train_valid_loader = torch.utils.data.DataLoader(\n", " combined_train_valid_set,\n", " batch_size=BATCH_SIZE,\n", " shuffle=True,\n", ")" ] }, { "cell_type": "code", "execution_count": 18, "id": "6bad032f", "metadata": { "customInput": null, "customOutput": null, "execution": { "iopub.execute_input": "2024-05-02T22:23:46.671084Z", "iopub.status.busy": "2024-05-02T22:23:46.670376Z", "iopub.status.idle": "2024-05-02T22:24:15.979479Z", "shell.execute_reply": "2024-05-02T22:24:15.978722Z" }, "executionStartTime": 1690415954791, "executionStopTime": 1690416061340, "originalKey": "5695c78b-4c6e-4d35-ab08-6c60781bd8f1", "papermill": { "duration": 29.369934, "end_time": "2024-05-02T22:24:15.981336", "exception": false, "start_time": "2024-05-02T22:23:46.611402", "status": "completed" }, "requestMsgId": "e22fa0c7-88cc-4d8a-bb7d-4f96fbae9a42", "showInput": true, "tags": [] }, "outputs": [], "source": [ "net = train(\n", " net=CNN(),\n", " train_loader=combined_train_valid_loader,\n", " parameters=best_arm,\n", " dtype=dtype,\n", " device=device,\n", ")\n", "test_accuracy = evaluate(\n", " net=net,\n", " data_loader=test_loader,\n", " dtype=dtype,\n", " device=device,\n", ")" ] }, { "cell_type": "code", "execution_count": 19, "id": "13a6c12a", "metadata": { "customInput": null, "customOutput": null, "execution": { "iopub.execute_input": "2024-05-02T22:24:16.101269Z", "iopub.status.busy": "2024-05-02T22:24:16.100751Z", "iopub.status.idle": "2024-05-02T22:24:16.104817Z", "shell.execute_reply": "2024-05-02T22:24:16.104113Z" }, "executionStartTime": 1690416061460, "executionStopTime": 1690416061467, "originalKey": "7522e229-9641-4383-a892-12c3f0a8011c", "papermill": { "duration": 0.064872, "end_time": "2024-05-02T22:24:16.106110", "exception": false, "start_time": "2024-05-02T22:24:16.041238", "status": "completed" }, "requestMsgId": "5552d77d-9c9d-4712-9256-2cb3da836f2c", "showInput": true, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Classification Accuracy (test set): 98.04%\n" ] } ], "source": [ "print(f\"Classification Accuracy (test set): {round(test_accuracy*100, 2)}%\")" ] }, { "cell_type": "markdown", "id": "71afe2c3", "metadata": { "customInput": null, "originalKey": "c8232211-4837-4677-b86c-bce730635fff", "papermill": { "duration": 0.062269, "end_time": "2024-05-02T22:24:16.226599", "exception": false, "start_time": "2024-05-02T22:24:16.164330", "status": "completed" }, "showInput": false, "tags": [] }, "source": [ "## 9. Save / reload optimization to JSON / SQL\n", "We can serialize the state of optimization to JSON and save it to a `.json` file or save it to the SQL backend. For the former:" ] }, { "cell_type": "code", "execution_count": 20, "id": "ade2187d", "metadata": { "customInput": null, "customOutput": null, "execution": { "iopub.execute_input": "2024-05-02T22:24:16.343783Z", "iopub.status.busy": "2024-05-02T22:24:16.343274Z", "iopub.status.idle": "2024-05-02T22:24:16.369799Z", "shell.execute_reply": "2024-05-02T22:24:16.369256Z" }, "executionStartTime": 1690416061571, "executionStopTime": 1690416061657, "originalKey": "6afddb45-c980-4b14-b5e9-927747ea98ea", "papermill": { "duration": 0.086747, "end_time": "2024-05-02T22:24:16.371045", "exception": false, "start_time": "2024-05-02T22:24:16.284298", "status": "completed" }, "requestMsgId": "bab02be8-706c-4422-b97b-c222b5084bba", "showInput": true, "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:24:16] ax.service.ax_client: Saved JSON-serialized state of optimization to `ax_client_snapshot.json`.\n" ] } ], "source": [ "ax_client.save_to_json_file() # For custom filepath, pass `filepath` argument." ] }, { "cell_type": "code", "execution_count": 21, "id": "926fc945", "metadata": { "customInput": null, "customOutput": null, "execution": { "iopub.execute_input": "2024-05-02T22:24:16.490137Z", "iopub.status.busy": "2024-05-02T22:24:16.489661Z", "iopub.status.idle": "2024-05-02T22:24:16.615340Z", "shell.execute_reply": "2024-05-02T22:24:16.614817Z" }, "executionStartTime": 1690416061758, "executionStopTime": 1690416062132, "originalKey": "31e6f7b4-cf6b-4967-95ff-f76d03657fb2", "papermill": { "duration": 0.186496, "end_time": "2024-05-02T22:24:16.616658", "exception": false, "start_time": "2024-05-02T22:24:16.430162", "status": "completed" }, "requestMsgId": "f2d10848-f995-420d-88e7-9036894d7b1b", "showInput": true, "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:24:16] ax.service.ax_client: Starting optimization with verbose logging. To disable logging, set the `verbose_logging` argument to `False`. Note that float values in the logs are rounded to 6 decimal points.\n" ] } ], "source": [ "restored_ax_client = (\n", " AxClient.load_from_json_file()\n", ") # For custom filepath, pass `filepath` argument." ] }, { "cell_type": "markdown", "id": "53104ce7", "metadata": { "customInput": null, "originalKey": "122510f5-5b9e-4b1c-9f5e-8c8ea2e08848", "papermill": { "duration": 0.057291, "end_time": "2024-05-02T22:24:16.732191", "exception": false, "start_time": "2024-05-02T22:24:16.674900", "status": "completed" }, "showInput": false, "tags": [] }, "source": [ "To store state of optimization to an SQL backend, first follow [setup instructions](https://ax.dev/docs/storage.html#sql) on Ax website." ] }, { "cell_type": "markdown", "id": "19b1804b", "metadata": { "customInput": null, "originalKey": "bd80e639-aa0f-4dc1-8542-0caf0d674fda", "papermill": { "duration": 0.057874, "end_time": "2024-05-02T22:24:16.847611", "exception": false, "start_time": "2024-05-02T22:24:16.789737", "status": "completed" }, "showInput": false, "tags": [] }, "source": [ "Having set up the SQL backend, pass `DBSettings` to `AxClient` on instantiation (note that `SQLAlchemy` dependency will have to be installed – for installation, refer to [optional dependencies](https://ax.dev/docs/installation.html#optional-dependencies) on Ax website):" ] }, { "cell_type": "code", "execution_count": 22, "id": "3e75c71a", "metadata": { "customInput": null, "customOutput": null, "execution": { "iopub.execute_input": "2024-05-02T22:24:16.964696Z", "iopub.status.busy": "2024-05-02T22:24:16.964396Z", "iopub.status.idle": "2024-05-02T22:24:16.974732Z", "shell.execute_reply": "2024-05-02T22:24:16.974215Z" }, "executionStartTime": 1690416062222, "executionStopTime": 1690416062314, "originalKey": "80eb6a2e-6564-405e-b5d4-d448e32dbf60", "papermill": { "duration": 0.07022, "end_time": "2024-05-02T22:24:16.975947", "exception": false, "start_time": "2024-05-02T22:24:16.905727", "status": "completed" }, "requestMsgId": "65f2307f-b800-4415-b9e7-11734a2a6889", "showInput": true, "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:24:16] ax.service.ax_client: Starting optimization with verbose logging. To disable logging, set the `verbose_logging` argument to `False`. Note that float values in the logs are rounded to 6 decimal points.\n" ] } ], "source": [ "from ax.storage.sqa_store.structs import DBSettings\n", "\n", "# URL is of the form \"dialect+driver://username:password@host:port/database\".\n", "db_settings = DBSettings(url=\"sqlite:///foo.db\")\n", "# Instead of URL, can provide a `creator function`; can specify custom encoders/decoders if necessary.\n", "new_ax = AxClient(db_settings=db_settings)" ] }, { "cell_type": "markdown", "id": "4bd38a26", "metadata": { "customInput": null, "originalKey": "adafd3aa-b84e-4e86-9694-a29f94c6d5f3", "papermill": { "duration": 0.058988, "end_time": "2024-05-02T22:24:17.092932", "exception": false, "start_time": "2024-05-02T22:24:17.033944", "status": "completed" }, "showInput": false, "tags": [] }, "source": [ "When valid `DBSettings` are passed into `AxClient`, a unique experiment name is a required argument (`name`) to `ax_client.create_experiment`. The **state of the optimization is auto-saved** any time it changes (i.e. a new trial is added or completed, etc). \n", "\n", "To reload an optimization state later, instantiate `AxClient` with the same `DBSettings` and use `ax_client.load_experiment_from_database(experiment_name=\"my_experiment\")`." ] }, { "cell_type": "markdown", "id": "1a507fcc", "metadata": { "customInput": null, "originalKey": "2f4a875b-1e18-4352-955d-576d6b01c5ed", "papermill": { "duration": 0.058749, "end_time": "2024-05-02T22:24:17.209926", "exception": false, "start_time": "2024-05-02T22:24:17.151177", "status": "completed" }, "showInput": false, "tags": [] }, "source": [ "# Special Cases" ] }, { "cell_type": "markdown", "id": "6446f73d", "metadata": { "customInput": null, "originalKey": "0d49e448-4768-401d-ac1d-810aee633c9a", "papermill": { "duration": 0.057851, "end_time": "2024-05-02T22:24:17.326323", "exception": false, "start_time": "2024-05-02T22:24:17.268472", "status": "completed" }, "showInput": false, "tags": [] }, "source": [ "**Evaluation failure**: should any optimization iterations fail during evaluation, `log_trial_failure` will ensure that the same trial is not proposed again." ] }, { "cell_type": "code", "execution_count": 23, "id": "ef11ee87", "metadata": { "customInput": null, "customOutput": null, "execution": { "iopub.execute_input": "2024-05-02T22:24:17.444645Z", "iopub.status.busy": "2024-05-02T22:24:17.444050Z", "iopub.status.idle": "2024-05-02T22:24:18.144161Z", "shell.execute_reply": "2024-05-02T22:24:18.143507Z" }, "executionStartTime": 1690416062420, "executionStopTime": 1690416064316, "originalKey": "faa83f1d-31da-481a-96e4-ccbc12f30b91", "papermill": { "duration": 0.760964, "end_time": "2024-05-02T22:24:18.145665", "exception": false, "start_time": "2024-05-02T22:24:17.384701", "status": "completed" }, "requestMsgId": "80a40c3a-76ed-4e1d-aa77-3652fadbe69f", "showInput": true, "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:24:18] ax.service.ax_client: Generated new trial 26 with parameters {'lr': 0.000296, 'momentum': 0.152462} using model BoTorch.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:24:18] ax.service.ax_client: Registered failure of trial 26.\n" ] } ], "source": [ "_, trial_index = ax_client.get_next_trial()\n", "ax_client.log_trial_failure(trial_index=trial_index)" ] }, { "cell_type": "markdown", "id": "876634a1", "metadata": { "customInput": null, "originalKey": "c826a96e-9431-49bd-87d7-62b517537a15", "papermill": { "duration": 0.05825, "end_time": "2024-05-02T22:24:18.262595", "exception": false, "start_time": "2024-05-02T22:24:18.204345", "status": "completed" }, "showInput": false, "tags": [] }, "source": [ "**Need to run many trials in parallel**: for optimal results and optimization efficiency, we strongly recommend sequential optimization (generating a few trials, then waiting for them to be completed with evaluation data). However, if your use case needs to dispatch many trials in parallel before they are updated with data and you are running into the *\"All trials for current model have been generated, but not enough data has been observed to fit next model\"* error, instantiate `AxClient` as `AxClient(enforce_sequential_optimization=False)`." ] }, { "cell_type": "markdown", "id": "357efc04", "metadata": { "customInput": null, "originalKey": "683378e0-893b-49a1-b090-084dc394da1a", "papermill": { "duration": 0.058577, "end_time": "2024-05-02T22:24:18.380154", "exception": false, "start_time": "2024-05-02T22:24:18.321577", "status": "completed" }, "showInput": false, "tags": [] }, "source": [ "# Service API Exceptions Meaning and Handling\n", "[**`DataRequiredError`**](https://ax.dev/api/exceptions.html#ax.exceptions.core.DataRequiredError): Ax generation strategy needs to be updated with more data to proceed to the next optimization model. When the optimization moves from initialization stage to the Bayesian optimization stage, the underlying BayesOpt model needs sufficient data to train. For optimal results and optimization efficiency (finding the optimal point in the least number of trials), we recommend sequential optimization (generating a few trials, then waiting for them to be completed with evaluation data). Therefore, the correct way to handle this exception is to wait until more trial evaluations complete and log their data via `ax_client.complete_trial(...)`. \n", "\n", "However, if there is strong need to generate more trials before more data is available, instantiate `AxClient` as `AxClient(enforce_sequential_optimization=False)`. With this setting, as many trials will be generated from the initialization stage as requested, and the optimization will move to the BayesOpt stage whenever enough trials are completed." ] }, { "cell_type": "markdown", "id": "f9e50547", "metadata": { "customInput": null, "originalKey": "4602d41d-43aa-46d2-9ca6-392c414d0b5f", "papermill": { "duration": 0.058493, "end_time": "2024-05-02T22:24:18.496871", "exception": false, "start_time": "2024-05-02T22:24:18.438378", "status": "completed" }, "showInput": false, "tags": [] }, "source": [ "[**`MaxParallelismReachedException`**](https://ax.dev/api/modelbridge.html#ax.modelbridge.generation_strategy.MaxParallelismReachedException): generation strategy restricts the number of trials that can be run simultaneously (to encourage sequential optimization), and the parallelism limit has been reached. The correct way to handle this exception is the same as `DataRequiredError` – to wait until more trial evluations complete and log their data via `ax_client.complete_trial(...)`.\n", " \n", "In some cases higher parallelism is important, so `enforce_sequential_optimization=False` kwarg to AxClient allows the user to suppress limiting of parallelism. It's also possible to override the default parallelism setting for all stages of the optimization by passing `choose_generation_strategy_kwargs` to `ax_client.create_experiment`:" ] }, { "cell_type": "code", "execution_count": 24, "id": "6744805c", "metadata": { "customInput": null, "customOutput": null, "execution": { "iopub.execute_input": "2024-05-02T22:24:18.615158Z", "iopub.status.busy": "2024-05-02T22:24:18.614682Z", "iopub.status.idle": "2024-05-02T22:24:18.625619Z", "shell.execute_reply": "2024-05-02T22:24:18.624998Z" }, "executionStartTime": 1690416064534, "executionStopTime": 1690416064564, "originalKey": "d62e6cfd-5127-450e-80b7-d0edcaf97d6c", "papermill": { "duration": 0.071021, "end_time": "2024-05-02T22:24:18.626862", "exception": false, "start_time": "2024-05-02T22:24:18.555841", "status": "completed" }, "requestMsgId": "cb9a17f9-5734-41c6-9018-c0635c61d8b3", "showInput": true, "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:24:18] ax.service.ax_client: Starting optimization with verbose logging. To disable logging, set the `verbose_logging` argument to `False`. Note that float values in the logs are rounded to 6 decimal points.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:24:18] ax.service.utils.instantiation: Inferred value type of ParameterType.FLOAT for parameter x. If that is not the expected value type, you can explicitly specify 'value_type' ('int', 'float', 'bool' or 'str') in parameter dict.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:24:18] ax.service.utils.instantiation: Inferred value type of ParameterType.FLOAT for parameter y. If that is not the expected value type, you can explicitly specify 'value_type' ('int', 'float', 'bool' or 'str') in parameter dict.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:24:18] ax.service.utils.instantiation: Created search space: SearchSpace(parameters=[RangeParameter(name='x', parameter_type=FLOAT, range=[-5.0, 10.0]), RangeParameter(name='y', parameter_type=FLOAT, range=[0.0, 15.0])], parameter_constraints=[]).\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:24:18] ax.modelbridge.dispatch_utils: Using Models.BOTORCH_MODULAR since there is at least one ordered parameter and there are no unordered categorical parameters.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:24:18] ax.modelbridge.dispatch_utils: Calculating the number of remaining initialization trials based on num_initialization_trials=None max_initialization_trials=None num_tunable_parameters=2 num_trials=None use_batch_trials=False\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:24:18] ax.modelbridge.dispatch_utils: calculated num_initialization_trials=5\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:24:18] ax.modelbridge.dispatch_utils: num_completed_initialization_trials=0 num_remaining_initialization_trials=5\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:24:18] ax.modelbridge.dispatch_utils: `verbose`, `disable_progbar`, and `jit_compile` are not yet supported when using `choose_generation_strategy` with ModularBoTorchModel, dropping these arguments.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[INFO 05-02 22:24:18] ax.modelbridge.dispatch_utils: Using Bayesian Optimization generation strategy: GenerationStrategy(name='Sobol+BoTorch', steps=[Sobol for 5 trials, BoTorch for subsequent trials]). Iterations after 5 will take longer to generate due to model-fitting.\n" ] } ], "source": [ "ax_client = AxClient()\n", "ax_client.create_experiment(\n", " parameters=[\n", " {\"name\": \"x\", \"type\": \"range\", \"bounds\": [-5.0, 10.0]},\n", " {\"name\": \"y\", \"type\": \"range\", \"bounds\": [0.0, 15.0]},\n", " ],\n", " # Sets max parallelism to 10 for all steps of the generation strategy.\n", " choose_generation_strategy_kwargs={\"max_parallelism_override\": 10},\n", ")" ] }, { "cell_type": "code", "execution_count": 25, "id": "7368d998", "metadata": { "customInput": null, "customOutput": null, "execution": { "iopub.execute_input": "2024-05-02T22:24:18.745361Z", "iopub.status.busy": "2024-05-02T22:24:18.744867Z", "iopub.status.idle": "2024-05-02T22:24:18.749368Z", "shell.execute_reply": "2024-05-02T22:24:18.748757Z" }, "executionStartTime": 1690416064679, "executionStopTime": 1690416064702, "originalKey": "bc15d2cf-8ddc-4d66-83b6-7469cd15aa4d", "papermill": { "duration": 0.065286, "end_time": "2024-05-02T22:24:18.750654", "exception": false, "start_time": "2024-05-02T22:24:18.685368", "status": "completed" }, "requestMsgId": "996c4bd3-b296-4cf9-8f95-cbf488639c2f", "showInput": true, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "[(5, 10), (-1, 10)]" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ax_client.get_max_parallelism() # Max parallelism is now 10 for all stages of the optimization." ] } ], "metadata": { "fileHeader": "", "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.14" }, "papermill": { "default_parameters": {}, "duration": 233.127893, "end_time": "2024-05-02T22:24:21.335810", "environment_variables": {}, "exception": null, "input_path": "/tmp/tmp.J4Ip05By14/Ax-main/tutorials/tune_cnn_service.ipynb", "output_path": "/tmp/tmp.J4Ip05By14/Ax-main/tutorials/tune_cnn_service.ipynb", "parameters": {}, "start_time": "2024-05-02T22:20:28.207917", "version": "2.6.0" } }, "nbformat": 4, "nbformat_minor": 5 }