{ "cells": [ { "cell_type": "code", "execution_count": 4, "id": "fc11a4d1", "metadata": {}, "outputs": [], "source": [ "import sys, os\n", "os.chdir(os.path.dirname(os.path.abspath(\"__file__\")))\n", "sys.path.insert(0, \"sudoku\")\n", "\n", "import numpy as np\n", "import torch\n", "import time\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "from argparse import Namespace\n", "from torch.utils.data import DataLoader, TensorDataset, Subset\n", "from models_sudoku import SingleOptLayerSudoku\n", "from utils_sudoku import computeErr\n", "\n", "sns.set_theme(style=\"whitegrid\", context=\"talk\")" ] }, { "cell_type": "code", "execution_count": 5, "id": "7489d36d", "metadata": {}, "outputs": [], "source": [ "METHOD = \"ffocp_eq\"\n", "SEED = 1\n", "N = 2\n", "BATCH_SIZE = 8\n", "LR = 0.1\n", "EPOCHS = 1\n", "DEVICE = torch.device(\"cpu\")" ] }, { "cell_type": "code", "execution_count": 6, "id": "67e1da38", "metadata": {}, "outputs": [], "source": [ "def run_training(warm_start: bool):\n", " \"\"\"Run one epoch of sudoku training. Returns per-iteration timing DataFrame.\"\"\"\n", " np.random.seed(SEED)\n", " torch.manual_seed(SEED)\n", "\n", " # Load data\n", " features = torch.load(f\"sudoku/data/{N}/features.pt\")\n", " labels = torch.load(f\"sudoku/data/{N}/labels.pt\")\n", " features = torch.tensor(features, dtype=torch.float32).to(DEVICE)\n", " labels = torch.tensor(labels, dtype=torch.float32).to(DEVICE)\n", "\n", " dataset = TensorDataset(features, labels)\n", " train_size = int(len(dataset) * 0.9)\n", " train_dataset = Subset(dataset, list(range(train_size)))\n", " train_loader = DataLoader(train_dataset, batch_size=BATCH_SIZE, shuffle=True)\n", "\n", " model = SingleOptLayerSudoku(\n", " N, learnable_parts=[\"eq\"], layer_type=METHOD,\n", " Qpenalty=0.1, alpha=100, dual_cutoff=1e-3,\n", " slack_tol=1e-8, batch_size=BATCH_SIZE, warm_start=warm_start,\n", " ).to(DEVICE)\n", "\n", " optimizer = torch.optim.Adam(model.parameters(), lr=LR)\n", " loss_fn = torch.nn.MSELoss()\n", "\n", " records = []\n", " accum_fwd, accum_bwd = 0.0, 0.0\n", "\n", " model.train()\n", " for i, (x, y) in enumerate(train_loader):\n", " if i % 50 == 0:\n", " print(f\" iter {i}/{len(train_loader)}\")\n", "\n", " t0 = time.time()\n", " pred = model(x)\n", " loss = loss_fn(pred, y)\n", " fwd_time = time.time() - t0\n", "\n", " t0 = time.time()\n", " loss.backward()\n", " bwd_time = time.time() - t0\n", "\n", " optimizer.step()\n", " optimizer.zero_grad()\n", "\n", " accum_fwd += fwd_time\n", " accum_bwd += bwd_time\n", " records.append({\n", " \"iter\": i,\n", " \"train_loss\": loss.item(),\n", " \"fwd_time\": fwd_time,\n", " \"bwd_time\": bwd_time,\n", " \"accum_fwd_time\": accum_fwd,\n", " \"accum_bwd_time\": accum_bwd,\n", " })\n", "\n", " return pd.DataFrame(records)" ] }, { "cell_type": "code", "execution_count": 7, "id": "0fcbff20", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running WITH warm start...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/tmp/ipykernel_1216057/786279542.py:7: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.\n", " features = torch.load(f\"sudoku/data/{N}/features.pt\")\n", "/tmp/ipykernel_1216057/786279542.py:8: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.\n", " labels = torch.load(f\"sudoku/data/{N}/labels.pt\")\n", "/tmp/ipykernel_1216057/786279542.py:9: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", " features = torch.tensor(features, dtype=torch.float32).to(DEVICE)\n", "/tmp/ipykernel_1216057/786279542.py:10: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", " labels = torch.tensor(labels, dtype=torch.float32).to(DEVICE)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "FFOLayer forward eps = 1e-06, backward eps = 1e-05\n", " iter 0/1125\n", "max_workers: 8\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/storage/home/hcoda1/9/zzhao628/r-kwang692-0/.conda/envs/rl/lib/python3.10/site-packages/scs/__init__.py:113: UserWarning: Converting P to a CSC (compressed sparse column) matrix; may take a while.\n", " warn(\n", "/storage/home/hcoda1/9/zzhao628/r-kwang692-0/.conda/envs/rl/lib/python3.10/site-packages/scs/__init__.py:83: UserWarning: Converting A to a CSC (compressed sparse column) matrix; may take a while.\n", " warn(\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[forward] iters: avg=66, max_solve=0.004s, sum_solve=0.019s, cache=8\n", "[backward] iters: avg=25, max_solve=0.019s, sum_solve=0.078s\n", "[forward] iters: avg=78, max_solve=0.010s, sum_solve=0.019s, cache=16\n", "[backward] iters: avg=25, max_solve=0.019s, sum_solve=0.046s\n", "[forward] iters: avg=103, max_solve=0.009s, sum_solve=0.032s, cache=24\n", "[backward] iters: avg=25, max_solve=0.014s, sum_solve=0.046s\n", "[forward] iters: avg=112, max_solve=0.015s, sum_solve=0.033s, cache=32\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.031s\n", "[forward] iters: avg=94, max_solve=0.011s, sum_solve=0.022s, cache=40\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=131, max_solve=0.003s, sum_solve=0.017s, cache=48\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=134, max_solve=0.018s, sum_solve=0.039s, cache=56\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=153, max_solve=0.018s, sum_solve=0.034s, cache=64\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=206, max_solve=0.026s, sum_solve=0.068s, cache=72\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=200, max_solve=0.024s, sum_solve=0.066s, cache=80\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=209, max_solve=0.024s, sum_solve=0.051s, cache=88\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=197, max_solve=0.024s, sum_solve=0.077s, cache=96\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=241, max_solve=0.025s, sum_solve=0.049s, cache=104\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=188, max_solve=0.012s, sum_solve=0.034s, cache=112\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=203, max_solve=0.027s, sum_solve=0.067s, cache=120\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=228, max_solve=0.016s, sum_solve=0.044s, cache=128\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=188, max_solve=0.022s, sum_solve=0.051s, cache=136\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=319, max_solve=0.033s, sum_solve=0.072s, cache=144\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=300, max_solve=0.038s, sum_solve=0.085s, cache=152\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=228, max_solve=0.029s, sum_solve=0.074s, cache=160\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=281, max_solve=0.036s, sum_solve=0.090s, cache=168\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=250, max_solve=0.032s, sum_solve=0.088s, cache=176\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=253, max_solve=0.032s, sum_solve=0.092s, cache=184\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=222, max_solve=0.026s, sum_solve=0.072s, cache=192\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=350, max_solve=0.040s, sum_solve=0.124s, cache=200\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=294, max_solve=0.018s, sum_solve=0.067s, cache=208\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=300, max_solve=0.037s, sum_solve=0.107s, cache=216\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=244, max_solve=0.030s, sum_solve=0.086s, cache=224\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=397, max_solve=0.039s, sum_solve=0.110s, cache=232\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=281, max_solve=0.032s, sum_solve=0.105s, cache=240\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=359, max_solve=0.028s, sum_solve=0.067s, cache=248\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=209, max_solve=0.024s, sum_solve=0.057s, cache=256\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=294, max_solve=0.035s, sum_solve=0.098s, cache=264\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=316, max_solve=0.040s, sum_solve=0.142s, cache=272\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=278, max_solve=0.033s, sum_solve=0.101s, cache=280\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.031s\n", "[forward] iters: avg=253, max_solve=0.032s, sum_solve=0.087s, cache=288\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=209, max_solve=0.025s, sum_solve=0.053s, cache=296\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=234, max_solve=0.028s, sum_solve=0.080s, cache=304\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=247, max_solve=0.029s, sum_solve=0.072s, cache=312\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=266, max_solve=0.031s, sum_solve=0.122s, cache=320\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=188, max_solve=0.021s, sum_solve=0.055s, cache=328\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=241, max_solve=0.029s, sum_solve=0.075s, cache=336\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=247, max_solve=0.028s, sum_solve=0.067s, cache=344\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.031s\n", "[forward] iters: avg=222, max_solve=0.028s, sum_solve=0.059s, cache=351\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=309, max_solve=0.027s, sum_solve=0.090s, cache=358\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=338, max_solve=0.025s, sum_solve=0.080s, cache=366\n", "[backward] iters: avg=25, max_solve=0.012s, sum_solve=0.023s\n", "[forward] iters: avg=319, max_solve=0.043s, sum_solve=0.116s, cache=374\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=334, max_solve=0.020s, sum_solve=0.050s, cache=382\n", "[backward] iters: avg=25, max_solve=0.006s, sum_solve=0.020s\n", "[forward] iters: avg=516, max_solve=0.028s, sum_solve=0.074s, cache=390\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=344, max_solve=0.030s, sum_solve=0.082s, cache=398\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", " iter 50/1125\n", "[forward] iters: avg=269, max_solve=0.026s, sum_solve=0.072s, cache=406\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.034s\n", "[forward] iters: avg=338, max_solve=0.038s, sum_solve=0.098s, cache=414\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.023s\n", "[forward] iters: avg=328, max_solve=0.038s, sum_solve=0.150s, cache=422\n", "[backward] iters: avg=25, max_solve=0.017s, sum_solve=0.038s\n", "[forward] iters: avg=225, max_solve=0.026s, sum_solve=0.070s, cache=430\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=316, max_solve=0.041s, sum_solve=0.115s, cache=438\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=309, max_solve=0.028s, sum_solve=0.072s, cache=446\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.020s\n", "[forward] iters: avg=309, max_solve=0.009s, sum_solve=0.042s, cache=454\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=409, max_solve=0.051s, sum_solve=0.191s, cache=462\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=366, max_solve=0.049s, sum_solve=0.147s, cache=470\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=325, max_solve=0.034s, sum_solve=0.089s, cache=478\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=309, max_solve=0.038s, sum_solve=0.125s, cache=486\n", "[backward] iters: avg=25, max_solve=0.006s, sum_solve=0.019s\n", "[forward] iters: avg=231, max_solve=0.027s, sum_solve=0.062s, cache=494\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[forward] iters: avg=269, max_solve=0.034s, sum_solve=0.099s, cache=502\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=228, max_solve=0.005s, sum_solve=0.028s, cache=510\n", "[backward] iters: avg=25, max_solve=0.019s, sum_solve=0.040s\n", "[forward] iters: avg=297, max_solve=0.035s, sum_solve=0.119s, cache=518\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=275, max_solve=0.032s, sum_solve=0.095s, cache=526\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=278, max_solve=0.034s, sum_solve=0.089s, cache=534\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=238, max_solve=0.031s, sum_solve=0.086s, cache=542\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=247, max_solve=0.031s, sum_solve=0.086s, cache=550\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=203, max_solve=0.025s, sum_solve=0.044s, cache=558\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=253, max_solve=0.029s, sum_solve=0.083s, cache=566\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=203, max_solve=0.015s, sum_solve=0.041s, cache=574\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=484, max_solve=0.035s, sum_solve=0.138s, cache=582\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=456, max_solve=0.055s, sum_solve=0.200s, cache=590\n", "[backward] iters: avg=25, max_solve=0.006s, sum_solve=0.017s\n", "[forward] iters: avg=306, max_solve=0.035s, sum_solve=0.103s, cache=596\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=291, max_solve=0.035s, sum_solve=0.100s, cache=604\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=319, max_solve=0.027s, sum_solve=0.083s, cache=612\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.070s\n", "[forward] iters: avg=244, max_solve=0.019s, sum_solve=0.056s, cache=620\n", "[backward] iters: avg=25, max_solve=0.008s, sum_solve=0.025s\n", "[forward] iters: avg=228, max_solve=0.005s, sum_solve=0.028s, cache=628\n", "[backward] iters: avg=25, max_solve=0.019s, sum_solve=0.036s\n", "[forward] iters: avg=300, max_solve=0.022s, sum_solve=0.070s, cache=636\n", "[backward] iters: avg=25, max_solve=0.002s, sum_solve=0.012s\n", "[forward] iters: avg=288, max_solve=0.026s, sum_solve=0.072s, cache=644\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.034s\n", "[forward] iters: avg=275, max_solve=0.034s, sum_solve=0.118s, cache=652\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.020s\n", "[forward] iters: avg=319, max_solve=0.031s, sum_solve=0.092s, cache=660\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=331, max_solve=0.039s, sum_solve=0.127s, cache=668\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=369, max_solve=0.032s, sum_solve=0.100s, cache=676\n", "[backward] iters: avg=25, max_solve=0.018s, sum_solve=0.044s\n", "[forward] iters: avg=269, max_solve=0.032s, sum_solve=0.092s, cache=684\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=312, max_solve=0.037s, sum_solve=0.089s, cache=692\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=206, max_solve=0.024s, sum_solve=0.059s, cache=699\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=272, max_solve=0.034s, sum_solve=0.088s, cache=707\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=262, max_solve=0.033s, sum_solve=0.094s, cache=715\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=372, max_solve=0.032s, sum_solve=0.079s, cache=723\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=247, max_solve=0.028s, sum_solve=0.071s, cache=731\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=281, max_solve=0.027s, sum_solve=0.056s, cache=739\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=206, max_solve=0.014s, sum_solve=0.036s, cache=747\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=297, max_solve=0.035s, sum_solve=0.114s, cache=755\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=284, max_solve=0.035s, sum_solve=0.105s, cache=763\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=197, max_solve=0.024s, sum_solve=0.049s, cache=771\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=397, max_solve=0.036s, sum_solve=0.085s, cache=779\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=297, max_solve=0.033s, sum_solve=0.110s, cache=787\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=266, max_solve=0.034s, sum_solve=0.086s, cache=795\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", " iter 100/1125\n", "[forward] iters: avg=319, max_solve=0.044s, sum_solve=0.116s, cache=803\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=231, max_solve=0.031s, sum_solve=0.083s, cache=811\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=178, max_solve=0.022s, sum_solve=0.056s, cache=819\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=312, max_solve=0.028s, sum_solve=0.067s, cache=827\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=253, max_solve=0.021s, sum_solve=0.055s, cache=835\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=188, max_solve=0.022s, sum_solve=0.041s, cache=843\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=231, max_solve=0.026s, sum_solve=0.066s, cache=851\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=247, max_solve=0.031s, sum_solve=0.075s, cache=859\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=262, max_solve=0.030s, sum_solve=0.089s, cache=867\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=247, max_solve=0.029s, sum_solve=0.080s, cache=875\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=297, max_solve=0.034s, sum_solve=0.085s, cache=883\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=378, max_solve=0.043s, sum_solve=0.131s, cache=891\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=228, max_solve=0.015s, sum_solve=0.046s, cache=899\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=212, max_solve=0.024s, sum_solve=0.064s, cache=907\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=291, max_solve=0.033s, sum_solve=0.097s, cache=915\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=288, max_solve=0.034s, sum_solve=0.089s, cache=923\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=312, max_solve=0.040s, sum_solve=0.103s, cache=931\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=278, max_solve=0.039s, sum_solve=0.081s, cache=939\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=319, max_solve=0.041s, sum_solve=0.087s, cache=947\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=291, max_solve=0.035s, sum_solve=0.123s, cache=955\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=284, max_solve=0.033s, sum_solve=0.106s, cache=963\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=338, max_solve=0.039s, sum_solve=0.123s, cache=971\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=262, max_solve=0.028s, sum_solve=0.086s, cache=979\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=291, max_solve=0.040s, sum_solve=0.122s, cache=987\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=234, max_solve=0.027s, sum_solve=0.071s, cache=995\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[forward] iters: avg=272, max_solve=0.038s, sum_solve=0.096s, cache=1003\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=231, max_solve=0.030s, sum_solve=0.088s, cache=1011\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=259, max_solve=0.030s, sum_solve=0.083s, cache=1019\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=281, max_solve=0.035s, sum_solve=0.083s, cache=1027\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=381, max_solve=0.044s, sum_solve=0.129s, cache=1035\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=275, max_solve=0.030s, sum_solve=0.087s, cache=1043\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=241, max_solve=0.027s, sum_solve=0.082s, cache=1051\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=275, max_solve=0.015s, sum_solve=0.040s, cache=1058\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=247, max_solve=0.029s, sum_solve=0.069s, cache=1066\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=241, max_solve=0.029s, sum_solve=0.082s, cache=1074\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=197, max_solve=0.024s, sum_solve=0.053s, cache=1082\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=212, max_solve=0.023s, sum_solve=0.062s, cache=1090\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=272, max_solve=0.032s, sum_solve=0.097s, cache=1098\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=331, max_solve=0.036s, sum_solve=0.119s, cache=1106\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=322, max_solve=0.035s, sum_solve=0.121s, cache=1114\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=238, max_solve=0.028s, sum_solve=0.098s, cache=1122\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=381, max_solve=0.040s, sum_solve=0.132s, cache=1130\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=200, max_solve=0.028s, sum_solve=0.071s, cache=1138\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=247, max_solve=0.029s, sum_solve=0.077s, cache=1146\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=375, max_solve=0.047s, sum_solve=0.113s, cache=1154\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=297, max_solve=0.020s, sum_solve=0.062s, cache=1162\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=225, max_solve=0.029s, sum_solve=0.066s, cache=1170\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=381, max_solve=0.038s, sum_solve=0.125s, cache=1178\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=212, max_solve=0.025s, sum_solve=0.051s, cache=1186\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=250, max_solve=0.029s, sum_solve=0.083s, cache=1194\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", " iter 150/1125\n", "[forward] iters: avg=219, max_solve=0.016s, sum_solve=0.044s, cache=1202\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=291, max_solve=0.034s, sum_solve=0.109s, cache=1210\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=222, max_solve=0.016s, sum_solve=0.043s, cache=1218\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=209, max_solve=0.026s, sum_solve=0.048s, cache=1224\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=225, max_solve=0.014s, sum_solve=0.042s, cache=1232\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=322, max_solve=0.036s, sum_solve=0.134s, cache=1240\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=338, max_solve=0.039s, sum_solve=0.095s, cache=1248\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=222, max_solve=0.026s, sum_solve=0.066s, cache=1256\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=275, max_solve=0.032s, sum_solve=0.079s, cache=1264\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=275, max_solve=0.031s, sum_solve=0.063s, cache=1272\n", "[backward] iters: avg=25, max_solve=0.007s, sum_solve=0.019s\n", "[forward] iters: avg=228, max_solve=0.016s, sum_solve=0.042s, cache=1280\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=153, max_solve=0.018s, sum_solve=0.035s, cache=1288\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=203, max_solve=0.027s, sum_solve=0.069s, cache=1296\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=241, max_solve=0.035s, sum_solve=0.073s, cache=1304\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=247, max_solve=0.029s, sum_solve=0.080s, cache=1312\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=175, max_solve=0.022s, sum_solve=0.056s, cache=1320\n", "[backward] iters: avg=25, max_solve=0.007s, sum_solve=0.018s\n", "[forward] iters: avg=231, max_solve=0.026s, sum_solve=0.065s, cache=1328\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=197, max_solve=0.016s, sum_solve=0.039s, cache=1336\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=491, max_solve=0.059s, sum_solve=0.168s, cache=1343\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=369, max_solve=0.039s, sum_solve=0.157s, cache=1351\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=188, max_solve=0.022s, sum_solve=0.041s, cache=1359\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=228, max_solve=0.029s, sum_solve=0.075s, cache=1367\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=181, max_solve=0.022s, sum_solve=0.054s, cache=1375\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=188, max_solve=0.024s, sum_solve=0.047s, cache=1383\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=325, max_solve=0.042s, sum_solve=0.121s, cache=1391\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=288, max_solve=0.034s, sum_solve=0.103s, cache=1399\n", "[backward] iters: avg=25, max_solve=0.017s, sum_solve=0.036s\n", "[forward] iters: avg=366, max_solve=0.047s, sum_solve=0.152s, cache=1407\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=212, max_solve=0.021s, sum_solve=0.040s, cache=1415\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=184, max_solve=0.021s, sum_solve=0.043s, cache=1423\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=244, max_solve=0.028s, sum_solve=0.076s, cache=1431\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=194, max_solve=0.023s, sum_solve=0.057s, cache=1439\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=244, max_solve=0.031s, sum_solve=0.089s, cache=1447\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=444, max_solve=0.049s, sum_solve=0.111s, cache=1455\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=281, max_solve=0.028s, sum_solve=0.092s, cache=1463\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=216, max_solve=0.028s, sum_solve=0.050s, cache=1471\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=469, max_solve=0.054s, sum_solve=0.216s, cache=1479\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=184, max_solve=0.024s, sum_solve=0.046s, cache=1487\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[forward] iters: avg=191, max_solve=0.022s, sum_solve=0.042s, cache=1495\n", "[backward] iters: avg=25, max_solve=0.002s, sum_solve=0.013s\n", "[forward] iters: avg=309, max_solve=0.039s, sum_solve=0.097s, cache=1503\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=262, max_solve=0.033s, sum_solve=0.090s, cache=1511\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=269, max_solve=0.038s, sum_solve=0.110s, cache=1518\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=269, max_solve=0.032s, sum_solve=0.094s, cache=1526\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=216, max_solve=0.018s, sum_solve=0.046s, cache=1534\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=309, max_solve=0.043s, sum_solve=0.094s, cache=1542\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=400, max_solve=0.033s, sum_solve=0.102s, cache=1550\n", "[backward] iters: avg=25, max_solve=0.007s, sum_solve=0.019s\n", "[forward] iters: avg=284, max_solve=0.038s, sum_solve=0.093s, cache=1558\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=291, max_solve=0.040s, sum_solve=0.080s, cache=1566\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=547, max_solve=0.057s, sum_solve=0.217s, cache=1574\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=244, max_solve=0.029s, sum_solve=0.068s, cache=1582\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=206, max_solve=0.028s, sum_solve=0.063s, cache=1590\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", " iter 200/1125\n", "[forward] iters: avg=438, max_solve=0.048s, sum_solve=0.171s, cache=1597\n", "[backward] iters: avg=25, max_solve=0.017s, sum_solve=0.048s\n", "[forward] iters: avg=194, max_solve=0.024s, sum_solve=0.057s, cache=1605\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=234, max_solve=0.029s, sum_solve=0.061s, cache=1613\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=234, max_solve=0.028s, sum_solve=0.058s, cache=1621\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=194, max_solve=0.024s, sum_solve=0.051s, cache=1629\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=356, max_solve=0.036s, sum_solve=0.111s, cache=1637\n", "[backward] iters: avg=25, max_solve=0.008s, sum_solve=0.019s\n", "[forward] iters: avg=203, max_solve=0.023s, sum_solve=0.058s, cache=1645\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=325, max_solve=0.031s, sum_solve=0.097s, cache=1653\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] SCS direct failed for problem 6: solved (inaccurate - reached max_iters), falling back to CVXPY\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/storage/home/hcoda1/9/zzhao628/r-kwang692-0/.conda/envs/rl/lib/python3.10/site-packages/cvxpy/problems/problem.py:1539: UserWarning: Solution may be inaccurate. Try another solver, adjusting the solver settings, or solve with verbose=True for more information.\n", " warnings.warn(\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[forward] iters: avg=503, max_solve=0.096s, sum_solve=0.158s, cache=1660\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=284, max_solve=0.037s, sum_solve=0.076s, cache=1668\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=262, max_solve=0.034s, sum_solve=0.088s, cache=1676\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=225, max_solve=0.026s, sum_solve=0.074s, cache=1684\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=175, max_solve=0.020s, sum_solve=0.038s, cache=1692\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=188, max_solve=0.022s, sum_solve=0.060s, cache=1700\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=312, max_solve=0.043s, sum_solve=0.101s, cache=1708\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=191, max_solve=0.022s, sum_solve=0.063s, cache=1716\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=294, max_solve=0.021s, sum_solve=0.059s, cache=1724\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=209, max_solve=0.023s, sum_solve=0.063s, cache=1732\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=369, max_solve=0.048s, sum_solve=0.173s, cache=1740\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=269, max_solve=0.023s, sum_solve=0.042s, cache=1747\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=197, max_solve=0.016s, sum_solve=0.037s, cache=1755\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=194, max_solve=0.023s, sum_solve=0.061s, cache=1763\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=212, max_solve=0.024s, sum_solve=0.061s, cache=1771\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=306, max_solve=0.042s, sum_solve=0.066s, cache=1779\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=312, max_solve=0.033s, sum_solve=0.080s, cache=1787\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=281, max_solve=0.011s, sum_solve=0.051s, cache=1795\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=353, max_solve=0.019s, sum_solve=0.061s, cache=1802\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=181, max_solve=0.022s, sum_solve=0.053s, cache=1810\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=344, max_solve=0.043s, sum_solve=0.116s, cache=1818\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=200, max_solve=0.023s, sum_solve=0.060s, cache=1826\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=206, max_solve=0.025s, sum_solve=0.063s, cache=1834\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=281, max_solve=0.031s, sum_solve=0.096s, cache=1842\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=372, max_solve=0.034s, sum_solve=0.097s, cache=1849\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=238, max_solve=0.034s, sum_solve=0.062s, cache=1857\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=250, max_solve=0.029s, sum_solve=0.088s, cache=1865\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=244, max_solve=0.026s, sum_solve=0.069s, cache=1873\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=269, max_solve=0.031s, sum_solve=0.055s, cache=1881\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=256, max_solve=0.033s, sum_solve=0.078s, cache=1889\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=162, max_solve=0.019s, sum_solve=0.038s, cache=1897\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=497, max_solve=0.064s, sum_solve=0.147s, cache=1905\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=219, max_solve=0.028s, sum_solve=0.059s, cache=1913\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=238, max_solve=0.026s, sum_solve=0.074s, cache=1921\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=203, max_solve=0.024s, sum_solve=0.069s, cache=1928\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=359, max_solve=0.044s, sum_solve=0.078s, cache=1936\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=209, max_solve=0.025s, sum_solve=0.050s, cache=1944\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=231, max_solve=0.026s, sum_solve=0.069s, cache=1952\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=209, max_solve=0.024s, sum_solve=0.058s, cache=1960\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=231, max_solve=0.026s, sum_solve=0.048s, cache=1968\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=219, max_solve=0.013s, sum_solve=0.035s, cache=1976\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=206, max_solve=0.024s, sum_solve=0.062s, cache=1984\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", " iter 250/1125\n", "[forward] iters: avg=306, max_solve=0.036s, sum_solve=0.093s, cache=1992\n", "[backward] iters: avg=25, max_solve=0.002s, sum_solve=0.013s\n", "[forward] iters: avg=166, max_solve=0.019s, sum_solve=0.047s, cache=1999\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=231, max_solve=0.027s, sum_solve=0.059s, cache=2007\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=244, max_solve=0.026s, sum_solve=0.070s, cache=2014\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=391, max_solve=0.048s, sum_solve=0.106s, cache=2022\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=188, max_solve=0.023s, sum_solve=0.049s, cache=2030\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=147, max_solve=0.017s, sum_solve=0.034s, cache=2038\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=303, max_solve=0.035s, sum_solve=0.118s, cache=2046\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=194, max_solve=0.018s, sum_solve=0.038s, cache=2054\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=244, max_solve=0.026s, sum_solve=0.063s, cache=2062\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=203, max_solve=0.025s, sum_solve=0.057s, cache=2070\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=266, max_solve=0.031s, sum_solve=0.080s, cache=2078\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=188, max_solve=0.022s, sum_solve=0.059s, cache=2085\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=209, max_solve=0.025s, sum_solve=0.058s, cache=2093\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=375, max_solve=0.046s, sum_solve=0.144s, cache=2101\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=212, max_solve=0.027s, sum_solve=0.066s, cache=2109\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=222, max_solve=0.026s, sum_solve=0.064s, cache=2117\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=197, max_solve=0.018s, sum_solve=0.035s, cache=2125\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=206, max_solve=0.023s, sum_solve=0.062s, cache=2133\n", "[backward] iters: avg=25, max_solve=0.003s, sum_solve=0.014s\n", "[forward] iters: avg=509, max_solve=0.034s, sum_solve=0.073s, cache=2141\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[forward] iters: avg=194, max_solve=0.015s, sum_solve=0.035s, cache=2149\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=234, max_solve=0.026s, sum_solve=0.058s, cache=2157\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=203, max_solve=0.027s, sum_solve=0.053s, cache=2165\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=256, max_solve=0.020s, sum_solve=0.064s, cache=2173\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=338, max_solve=0.036s, sum_solve=0.126s, cache=2181\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=159, max_solve=0.003s, sum_solve=0.020s, cache=2189\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=247, max_solve=0.032s, sum_solve=0.075s, cache=2195\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=322, max_solve=0.036s, sum_solve=0.092s, cache=2201\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=366, max_solve=0.037s, sum_solve=0.127s, cache=2209\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=188, max_solve=0.021s, sum_solve=0.049s, cache=2217\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=231, max_solve=0.030s, sum_solve=0.067s, cache=2225\n", "[backward] iters: avg=25, max_solve=0.007s, sum_solve=0.018s\n", "[forward] iters: avg=203, max_solve=0.023s, sum_solve=0.064s, cache=2233\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=209, max_solve=0.028s, sum_solve=0.048s, cache=2241\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=209, max_solve=0.024s, sum_solve=0.064s, cache=2249\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=516, max_solve=0.044s, sum_solve=0.123s, cache=2257\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=228, max_solve=0.033s, sum_solve=0.060s, cache=2265\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=347, max_solve=0.040s, sum_solve=0.167s, cache=2273\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=231, max_solve=0.026s, sum_solve=0.067s, cache=2281\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=191, max_solve=0.023s, sum_solve=0.064s, cache=2289\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=447, max_solve=0.037s, sum_solve=0.131s, cache=2297\n", "[backward] iters: avg=25, max_solve=0.008s, sum_solve=0.019s\n", "[forward] iters: avg=231, max_solve=0.026s, sum_solve=0.072s, cache=2305\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.027s\n", "[forward] iters: avg=181, max_solve=0.022s, sum_solve=0.060s, cache=2313\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=212, max_solve=0.024s, sum_solve=0.053s, cache=2321\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=306, max_solve=0.039s, sum_solve=0.108s, cache=2329\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=197, max_solve=0.023s, sum_solve=0.063s, cache=2337\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=272, max_solve=0.031s, sum_solve=0.091s, cache=2345\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=216, max_solve=0.025s, sum_solve=0.065s, cache=2353\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=275, max_solve=0.023s, sum_solve=0.072s, cache=2360\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=253, max_solve=0.029s, sum_solve=0.068s, cache=2368\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=191, max_solve=0.022s, sum_solve=0.053s, cache=2376\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", " iter 300/1125\n", "[forward] iters: avg=169, max_solve=0.019s, sum_solve=0.037s, cache=2383\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=469, max_solve=0.041s, sum_solve=0.117s, cache=2391\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=209, max_solve=0.026s, sum_solve=0.072s, cache=2399\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=303, max_solve=0.030s, sum_solve=0.085s, cache=2407\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=272, max_solve=0.038s, sum_solve=0.100s, cache=2415\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=178, max_solve=0.010s, sum_solve=0.032s, cache=2423\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=203, max_solve=0.023s, sum_solve=0.055s, cache=2431\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=272, max_solve=0.037s, sum_solve=0.078s, cache=2439\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=194, max_solve=0.023s, sum_solve=0.062s, cache=2447\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=266, max_solve=0.034s, sum_solve=0.081s, cache=2455\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=219, max_solve=0.025s, sum_solve=0.075s, cache=2463\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=322, max_solve=0.044s, sum_solve=0.119s, cache=2470\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=175, max_solve=0.021s, sum_solve=0.055s, cache=2478\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=144, max_solve=0.016s, sum_solve=0.033s, cache=2486\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=322, max_solve=0.044s, sum_solve=0.130s, cache=2494\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=191, max_solve=0.021s, sum_solve=0.046s, cache=2502\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=138, max_solve=0.016s, sum_solve=0.036s, cache=2510\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=194, max_solve=0.025s, sum_solve=0.047s, cache=2517\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=288, max_solve=0.036s, sum_solve=0.099s, cache=2524\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=281, max_solve=0.034s, sum_solve=0.099s, cache=2532\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=238, max_solve=0.027s, sum_solve=0.067s, cache=2540\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=162, max_solve=0.020s, sum_solve=0.050s, cache=2548\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=197, max_solve=0.023s, sum_solve=0.060s, cache=2555\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=228, max_solve=0.026s, sum_solve=0.059s, cache=2563\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=250, max_solve=0.028s, sum_solve=0.052s, cache=2571\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=269, max_solve=0.032s, sum_solve=0.087s, cache=2579\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=197, max_solve=0.023s, sum_solve=0.044s, cache=2587\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=178, max_solve=0.023s, sum_solve=0.059s, cache=2595\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=219, max_solve=0.028s, sum_solve=0.073s, cache=2602\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=175, max_solve=0.020s, sum_solve=0.052s, cache=2610\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] SCS direct failed for problem 6: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=422, max_solve=0.084s, sum_solve=0.117s, cache=2617\n", "[backward] iters: avg=25, max_solve=0.002s, sum_solve=0.013s\n", "[forward] iters: avg=188, max_solve=0.015s, sum_solve=0.040s, cache=2625\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[forward] iters: avg=241, max_solve=0.028s, sum_solve=0.073s, cache=2633\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=222, max_solve=0.025s, sum_solve=0.050s, cache=2641\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=291, max_solve=0.035s, sum_solve=0.115s, cache=2649\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=275, max_solve=0.029s, sum_solve=0.081s, cache=2657\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=256, max_solve=0.032s, sum_solve=0.056s, cache=2664\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=200, max_solve=0.023s, sum_solve=0.065s, cache=2672\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=212, max_solve=0.025s, sum_solve=0.072s, cache=2680\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=381, max_solve=0.036s, sum_solve=0.106s, cache=2687\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=234, max_solve=0.026s, sum_solve=0.082s, cache=2695\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=250, max_solve=0.032s, sum_solve=0.105s, cache=2703\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=225, max_solve=0.026s, sum_solve=0.062s, cache=2711\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=338, max_solve=0.038s, sum_solve=0.121s, cache=2719\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=200, max_solve=0.026s, sum_solve=0.067s, cache=2727\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=247, max_solve=0.035s, sum_solve=0.064s, cache=2735\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=169, max_solve=0.009s, sum_solve=0.028s, cache=2742\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=272, max_solve=0.036s, sum_solve=0.094s, cache=2750\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=256, max_solve=0.029s, sum_solve=0.064s, cache=2758\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=394, max_solve=0.044s, sum_solve=0.115s, cache=2766\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", " iter 350/1125\n", "[forward] iters: avg=159, max_solve=0.005s, sum_solve=0.020s, cache=2773\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=262, max_solve=0.020s, sum_solve=0.054s, cache=2780\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=262, max_solve=0.031s, sum_solve=0.081s, cache=2788\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=328, max_solve=0.035s, sum_solve=0.130s, cache=2795\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=247, max_solve=0.014s, sum_solve=0.041s, cache=2803\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=172, max_solve=0.020s, sum_solve=0.039s, cache=2811\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=231, max_solve=0.032s, sum_solve=0.071s, cache=2819\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=341, max_solve=0.042s, sum_solve=0.092s, cache=2827\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=438, max_solve=0.037s, sum_solve=0.136s, cache=2835\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=234, max_solve=0.031s, sum_solve=0.076s, cache=2842\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=138, max_solve=0.003s, sum_solve=0.017s, cache=2849\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=191, max_solve=0.022s, sum_solve=0.061s, cache=2857\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=347, max_solve=0.033s, sum_solve=0.096s, cache=2864\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=200, max_solve=0.023s, sum_solve=0.053s, cache=2872\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=262, max_solve=0.032s, sum_solve=0.095s, cache=2880\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=216, max_solve=0.012s, sum_solve=0.036s, cache=2888\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=203, max_solve=0.014s, sum_solve=0.039s, cache=2895\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=250, max_solve=0.031s, sum_solve=0.067s, cache=2903\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] SCS direct failed for problem 0: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=488, max_solve=0.108s, sum_solve=0.156s, cache=2910\n", "[backward] iters: avg=25, max_solve=0.019s, sum_solve=0.046s\n", "[forward] iters: avg=212, max_solve=0.024s, sum_solve=0.046s, cache=2918\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=228, max_solve=0.028s, sum_solve=0.075s, cache=2926\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=291, max_solve=0.035s, sum_solve=0.079s, cache=2934\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=181, max_solve=0.023s, sum_solve=0.049s, cache=2941\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=316, max_solve=0.029s, sum_solve=0.091s, cache=2949\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=284, max_solve=0.035s, sum_solve=0.078s, cache=2957\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=191, max_solve=0.023s, sum_solve=0.055s, cache=2965\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=150, max_solve=0.004s, sum_solve=0.019s, cache=2973\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=272, max_solve=0.034s, sum_solve=0.074s, cache=2981\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=209, max_solve=0.025s, sum_solve=0.064s, cache=2989\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=291, max_solve=0.032s, sum_solve=0.090s, cache=2997\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=322, max_solve=0.028s, sum_solve=0.073s, cache=3005\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=191, max_solve=0.022s, sum_solve=0.055s, cache=3013\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=147, max_solve=0.018s, sum_solve=0.036s, cache=3020\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=169, max_solve=0.019s, sum_solve=0.040s, cache=3028\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=347, max_solve=0.041s, sum_solve=0.103s, cache=3036\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=216, max_solve=0.026s, sum_solve=0.075s, cache=3044\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=206, max_solve=0.010s, sum_solve=0.028s, cache=3052\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=159, max_solve=0.020s, sum_solve=0.043s, cache=3060\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=238, max_solve=0.030s, sum_solve=0.074s, cache=3066\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=262, max_solve=0.030s, sum_solve=0.057s, cache=3074\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=341, max_solve=0.043s, sum_solve=0.131s, cache=3082\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=331, max_solve=0.037s, sum_solve=0.111s, cache=3090\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=281, max_solve=0.035s, sum_solve=0.079s, cache=3097\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=203, max_solve=0.024s, sum_solve=0.043s, cache=3105\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[forward] iters: avg=178, max_solve=0.020s, sum_solve=0.039s, cache=3113\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=294, max_solve=0.028s, sum_solve=0.087s, cache=3121\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=225, max_solve=0.027s, sum_solve=0.068s, cache=3129\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=306, max_solve=0.030s, sum_solve=0.072s, cache=3137\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=219, max_solve=0.026s, sum_solve=0.063s, cache=3144\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=197, max_solve=0.006s, sum_solve=0.024s, cache=3152\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", " iter 400/1125\n", "[forward] iters: avg=212, max_solve=0.014s, sum_solve=0.041s, cache=3160\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=131, max_solve=0.014s, sum_solve=0.028s, cache=3168\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=231, max_solve=0.026s, sum_solve=0.070s, cache=3176\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=188, max_solve=0.013s, sum_solve=0.031s, cache=3183\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=203, max_solve=0.023s, sum_solve=0.049s, cache=3191\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=209, max_solve=0.026s, sum_solve=0.066s, cache=3199\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=219, max_solve=0.017s, sum_solve=0.041s, cache=3207\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=175, max_solve=0.019s, sum_solve=0.047s, cache=3215\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=153, max_solve=0.018s, sum_solve=0.041s, cache=3222\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=159, max_solve=0.020s, sum_solve=0.036s, cache=3230\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=228, max_solve=0.028s, sum_solve=0.075s, cache=3238\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=531, max_solve=0.054s, sum_solve=0.216s, cache=3246\n", "[backward] iters: avg=25, max_solve=0.002s, sum_solve=0.013s\n", "[forward] iters: avg=241, max_solve=0.028s, sum_solve=0.077s, cache=3254\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=216, max_solve=0.025s, sum_solve=0.054s, cache=3262\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=378, max_solve=0.042s, sum_solve=0.135s, cache=3270\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=366, max_solve=0.041s, sum_solve=0.115s, cache=3278\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=212, max_solve=0.027s, sum_solve=0.071s, cache=3285\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=222, max_solve=0.025s, sum_solve=0.064s, cache=3293\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=159, max_solve=0.019s, sum_solve=0.035s, cache=3301\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=247, max_solve=0.020s, sum_solve=0.061s, cache=3309\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=181, max_solve=0.020s, sum_solve=0.048s, cache=3317\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=331, max_solve=0.042s, sum_solve=0.121s, cache=3325\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=203, max_solve=0.023s, sum_solve=0.049s, cache=3333\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=225, max_solve=0.016s, sum_solve=0.044s, cache=3339\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=400, max_solve=0.043s, sum_solve=0.152s, cache=3347\n", "[backward] iters: avg=25, max_solve=0.005s, sum_solve=0.016s\n", "[forward] iters: avg=162, max_solve=0.020s, sum_solve=0.048s, cache=3354\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=172, max_solve=0.012s, sum_solve=0.036s, cache=3362\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=288, max_solve=0.033s, sum_solve=0.080s, cache=3370\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=153, max_solve=0.019s, sum_solve=0.042s, cache=3378\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=194, max_solve=0.023s, sum_solve=0.058s, cache=3386\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=219, max_solve=0.025s, sum_solve=0.066s, cache=3394\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=338, max_solve=0.039s, sum_solve=0.079s, cache=3402\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=372, max_solve=0.050s, sum_solve=0.154s, cache=3409\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=372, max_solve=0.045s, sum_solve=0.163s, cache=3417\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=225, max_solve=0.006s, sum_solve=0.027s, cache=3425\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=219, max_solve=0.026s, sum_solve=0.075s, cache=3433\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=197, max_solve=0.024s, sum_solve=0.041s, cache=3441\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=231, max_solve=0.027s, sum_solve=0.075s, cache=3447\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=250, max_solve=0.029s, sum_solve=0.082s, cache=3455\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=188, max_solve=0.013s, sum_solve=0.036s, cache=3463\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=316, max_solve=0.043s, sum_solve=0.111s, cache=3471\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=253, max_solve=0.031s, sum_solve=0.085s, cache=3478\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=231, max_solve=0.029s, sum_solve=0.088s, cache=3485\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=253, max_solve=0.030s, sum_solve=0.084s, cache=3493\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=288, max_solve=0.033s, sum_solve=0.105s, cache=3501\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=241, max_solve=0.018s, sum_solve=0.047s, cache=3509\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=231, max_solve=0.028s, sum_solve=0.072s, cache=3515\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=147, max_solve=0.017s, sum_solve=0.039s, cache=3523\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=338, max_solve=0.039s, sum_solve=0.104s, cache=3531\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=312, max_solve=0.043s, sum_solve=0.076s, cache=3538\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", " iter 450/1125\n", "[forward] iters: avg=528, max_solve=0.065s, sum_solve=0.177s, cache=3546\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=272, max_solve=0.033s, sum_solve=0.118s, cache=3553\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=291, max_solve=0.037s, sum_solve=0.084s, cache=3561\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=234, max_solve=0.027s, sum_solve=0.062s, cache=3569\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=219, max_solve=0.028s, sum_solve=0.061s, cache=3575\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[forward] iters: avg=172, max_solve=0.022s, sum_solve=0.048s, cache=3583\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=209, max_solve=0.028s, sum_solve=0.052s, cache=3589\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=225, max_solve=0.025s, sum_solve=0.058s, cache=3597\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=203, max_solve=0.020s, sum_solve=0.067s, cache=3605\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=325, max_solve=0.037s, sum_solve=0.123s, cache=3613\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=272, max_solve=0.032s, sum_solve=0.087s, cache=3619\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=297, max_solve=0.027s, sum_solve=0.074s, cache=3627\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=325, max_solve=0.042s, sum_solve=0.129s, cache=3635\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=206, max_solve=0.024s, sum_solve=0.053s, cache=3643\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=256, max_solve=0.029s, sum_solve=0.086s, cache=3651\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=400, max_solve=0.052s, sum_solve=0.157s, cache=3659\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=297, max_solve=0.027s, sum_solve=0.063s, cache=3667\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=288, max_solve=0.034s, sum_solve=0.080s, cache=3675\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=319, max_solve=0.035s, sum_solve=0.111s, cache=3683\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=234, max_solve=0.028s, sum_solve=0.070s, cache=3691\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=244, max_solve=0.029s, sum_solve=0.077s, cache=3698\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=188, max_solve=0.022s, sum_solve=0.051s, cache=3706\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=456, max_solve=0.055s, sum_solve=0.116s, cache=3713\n", "[backward] iters: avg=25, max_solve=0.007s, sum_solve=0.019s\n", "[forward] iters: avg=406, max_solve=0.054s, sum_solve=0.160s, cache=3721\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=262, max_solve=0.038s, sum_solve=0.094s, cache=3729\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=181, max_solve=0.023s, sum_solve=0.052s, cache=3737\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=353, max_solve=0.042s, sum_solve=0.093s, cache=3745\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=231, max_solve=0.029s, sum_solve=0.082s, cache=3753\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=175, max_solve=0.022s, sum_solve=0.047s, cache=3761\n", "[backward] iters: avg=25, max_solve=0.019s, sum_solve=0.049s\n", "[forward] iters: avg=275, max_solve=0.033s, sum_solve=0.069s, cache=3768\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=450, max_solve=0.045s, sum_solve=0.078s, cache=3775\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=138, max_solve=0.016s, sum_solve=0.038s, cache=3783\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=212, max_solve=0.027s, sum_solve=0.067s, cache=3791\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=231, max_solve=0.027s, sum_solve=0.064s, cache=3799\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=350, max_solve=0.044s, sum_solve=0.072s, cache=3807\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=172, max_solve=0.019s, sum_solve=0.047s, cache=3815\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=209, max_solve=0.026s, sum_solve=0.060s, cache=3823\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=353, max_solve=0.046s, sum_solve=0.143s, cache=3831\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=228, max_solve=0.026s, sum_solve=0.077s, cache=3839\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=231, max_solve=0.030s, sum_solve=0.066s, cache=3847\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=188, max_solve=0.022s, sum_solve=0.050s, cache=3855\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=362, max_solve=0.045s, sum_solve=0.140s, cache=3863\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=153, max_solve=0.018s, sum_solve=0.042s, cache=3871\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=144, max_solve=0.018s, sum_solve=0.039s, cache=3879\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=409, max_solve=0.050s, sum_solve=0.116s, cache=3887\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=219, max_solve=0.026s, sum_solve=0.081s, cache=3895\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=319, max_solve=0.039s, sum_solve=0.121s, cache=3903\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=184, max_solve=0.022s, sum_solve=0.054s, cache=3911\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] SCS direct failed for problem 7: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=506, max_solve=0.088s, sum_solve=0.160s, cache=3918\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=272, max_solve=0.034s, sum_solve=0.083s, cache=3926\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", " iter 500/1125\n", "[forward] iters: avg=247, max_solve=0.011s, sum_solve=0.032s, cache=3934\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=188, max_solve=0.023s, sum_solve=0.055s, cache=3942\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=281, max_solve=0.036s, sum_solve=0.081s, cache=3949\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=288, max_solve=0.025s, sum_solve=0.065s, cache=3957\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=216, max_solve=0.024s, sum_solve=0.052s, cache=3965\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=309, max_solve=0.038s, sum_solve=0.086s, cache=3973\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=231, max_solve=0.028s, sum_solve=0.076s, cache=3980\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=181, max_solve=0.010s, sum_solve=0.029s, cache=3987\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=172, max_solve=0.021s, sum_solve=0.052s, cache=3994\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=197, max_solve=0.024s, sum_solve=0.062s, cache=4001\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=322, max_solve=0.037s, sum_solve=0.095s, cache=4009\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=231, max_solve=0.029s, sum_solve=0.071s, cache=4017\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=191, max_solve=0.012s, sum_solve=0.033s, cache=4025\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=222, max_solve=0.018s, sum_solve=0.045s, cache=4033\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] SCS direct failed for problem 0: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=556, max_solve=0.116s, sum_solve=0.201s, cache=4040\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=303, max_solve=0.022s, sum_solve=0.066s, cache=4045\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[forward] iters: avg=278, max_solve=0.014s, sum_solve=0.047s, cache=4053\n", "[backward] iters: avg=25, max_solve=0.002s, sum_solve=0.013s\n", "[forward] iters: avg=266, max_solve=0.011s, sum_solve=0.032s, cache=4060\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=238, max_solve=0.019s, sum_solve=0.048s, cache=4068\n", "[backward] iters: avg=25, max_solve=0.017s, sum_solve=0.040s\n", "[forward] iters: avg=247, max_solve=0.017s, sum_solve=0.045s, cache=4075\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=219, max_solve=0.008s, sum_solve=0.027s, cache=4083\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=259, max_solve=0.020s, sum_solve=0.055s, cache=4090\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=250, max_solve=0.029s, sum_solve=0.090s, cache=4098\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=238, max_solve=0.026s, sum_solve=0.073s, cache=4106\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=553, max_solve=0.062s, sum_solve=0.167s, cache=4114\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=319, max_solve=0.019s, sum_solve=0.050s, cache=4121\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=266, max_solve=0.034s, sum_solve=0.084s, cache=4128\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=238, max_solve=0.027s, sum_solve=0.083s, cache=4136\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=325, max_solve=0.039s, sum_solve=0.081s, cache=4144\n", "[backward] iters: avg=25, max_solve=0.014s, sum_solve=0.034s\n", "[forward] iters: avg=331, max_solve=0.031s, sum_solve=0.116s, cache=4152\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=300, max_solve=0.026s, sum_solve=0.069s, cache=4159\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=209, max_solve=0.024s, sum_solve=0.061s, cache=4167\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=178, max_solve=0.021s, sum_solve=0.052s, cache=4175\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=203, max_solve=0.026s, sum_solve=0.067s, cache=4182\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=259, max_solve=0.008s, sum_solve=0.031s, cache=4190\n", "[backward] iters: avg=25, max_solve=0.002s, sum_solve=0.013s\n", "[forward] iters: avg=209, max_solve=0.025s, sum_solve=0.065s, cache=4198\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=269, max_solve=0.034s, sum_solve=0.095s, cache=4205\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=275, max_solve=0.033s, sum_solve=0.070s, cache=4213\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=344, max_solve=0.034s, sum_solve=0.099s, cache=4221\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=269, max_solve=0.030s, sum_solve=0.081s, cache=4229\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=172, max_solve=0.020s, sum_solve=0.055s, cache=4234\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=269, max_solve=0.034s, sum_solve=0.099s, cache=4242\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=156, max_solve=0.019s, sum_solve=0.043s, cache=4250\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=406, max_solve=0.051s, sum_solve=0.164s, cache=4258\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=222, max_solve=0.028s, sum_solve=0.072s, cache=4266\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=250, max_solve=0.032s, sum_solve=0.090s, cache=4271\n", "[backward] iters: avg=25, max_solve=0.007s, sum_solve=0.018s\n", "[forward] iters: avg=331, max_solve=0.036s, sum_solve=0.124s, cache=4279\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=350, max_solve=0.045s, sum_solve=0.116s, cache=4287\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=303, max_solve=0.025s, sum_solve=0.075s, cache=4295\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=312, max_solve=0.034s, sum_solve=0.071s, cache=4303\n", "[backward] iters: avg=25, max_solve=0.007s, sum_solve=0.018s\n", " iter 550/1125\n", "[forward] iters: avg=191, max_solve=0.023s, sum_solve=0.062s, cache=4311\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=422, max_solve=0.042s, sum_solve=0.134s, cache=4318\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=312, max_solve=0.037s, sum_solve=0.098s, cache=4325\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=184, max_solve=0.022s, sum_solve=0.055s, cache=4333\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=350, max_solve=0.041s, sum_solve=0.100s, cache=4341\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=347, max_solve=0.047s, sum_solve=0.105s, cache=4347\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=344, max_solve=0.040s, sum_solve=0.142s, cache=4355\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=344, max_solve=0.034s, sum_solve=0.081s, cache=4363\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=297, max_solve=0.041s, sum_solve=0.097s, cache=4371\n", "[backward] iters: avg=25, max_solve=0.017s, sum_solve=0.040s\n", "[forward] iters: avg=434, max_solve=0.053s, sum_solve=0.128s, cache=4378\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=294, max_solve=0.038s, sum_solve=0.095s, cache=4386\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=222, max_solve=0.017s, sum_solve=0.064s, cache=4394\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=512, max_solve=0.043s, sum_solve=0.153s, cache=4402\n", "[backward] iters: avg=25, max_solve=0.006s, sum_solve=0.018s\n", "[forward] iters: avg=284, max_solve=0.034s, sum_solve=0.069s, cache=4410\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=300, max_solve=0.036s, sum_solve=0.095s, cache=4417\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=344, max_solve=0.042s, sum_solve=0.135s, cache=4425\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=256, max_solve=0.030s, sum_solve=0.066s, cache=4432\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=238, max_solve=0.027s, sum_solve=0.067s, cache=4440\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=269, max_solve=0.025s, sum_solve=0.075s, cache=4448\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] SCS direct failed for problem 4: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=506, max_solve=0.095s, sum_solve=0.174s, cache=4454\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=419, max_solve=0.052s, sum_solve=0.148s, cache=4462\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] SCS direct failed for problem 0: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=469, max_solve=0.105s, sum_solve=0.151s, cache=4469\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.034s\n", "[forward] iters: avg=181, max_solve=0.024s, sum_solve=0.067s, cache=4477\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=269, max_solve=0.030s, sum_solve=0.083s, cache=4484\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=450, max_solve=0.048s, sum_solve=0.185s, cache=4491\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=284, max_solve=0.033s, sum_solve=0.082s, cache=4499\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[forward] iters: avg=288, max_solve=0.034s, sum_solve=0.106s, cache=4507\n", "[backward] iters: avg=25, max_solve=0.007s, sum_solve=0.018s\n", "[forward] iters: avg=216, max_solve=0.025s, sum_solve=0.065s, cache=4515\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=206, max_solve=0.025s, sum_solve=0.077s, cache=4522\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=294, max_solve=0.037s, sum_solve=0.092s, cache=4529\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=306, max_solve=0.038s, sum_solve=0.077s, cache=4536\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=256, max_solve=0.029s, sum_solve=0.056s, cache=4544\n", "[backward] iters: avg=25, max_solve=0.010s, sum_solve=0.021s\n", "[forward] iters: avg=216, max_solve=0.018s, sum_solve=0.039s, cache=4552\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=206, max_solve=0.023s, sum_solve=0.053s, cache=4559\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=294, max_solve=0.032s, sum_solve=0.097s, cache=4567\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=231, max_solve=0.017s, sum_solve=0.046s, cache=4575\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=488, max_solve=0.052s, sum_solve=0.233s, cache=4582\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=241, max_solve=0.017s, sum_solve=0.048s, cache=4590\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=372, max_solve=0.045s, sum_solve=0.150s, cache=4598\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] SCS direct failed for problem 6: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] SCS direct failed for problem 5: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=828, max_solve=0.121s, sum_solve=0.328s, cache=4604\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.020s\n", "[forward] iters: avg=241, max_solve=0.023s, sum_solve=0.043s, cache=4611\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=228, max_solve=0.026s, sum_solve=0.075s, cache=4619\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=484, max_solve=0.041s, sum_solve=0.170s, cache=4626\n", "[backward] iters: avg=25, max_solve=0.007s, sum_solve=0.019s\n", "[forward] iters: avg=297, max_solve=0.035s, sum_solve=0.104s, cache=4634\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=262, max_solve=0.014s, sum_solve=0.039s, cache=4642\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=362, max_solve=0.044s, sum_solve=0.121s, cache=4649\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=322, max_solve=0.035s, sum_solve=0.103s, cache=4656\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=400, max_solve=0.045s, sum_solve=0.122s, cache=4664\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=366, max_solve=0.030s, sum_solve=0.099s, cache=4672\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=453, max_solve=0.055s, sum_solve=0.214s, cache=4680\n", "[backward] iters: avg=25, max_solve=0.005s, sum_solve=0.016s\n", " iter 600/1125\n", "[forward] iters: avg=512, max_solve=0.051s, sum_solve=0.153s, cache=4688\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=325, max_solve=0.040s, sum_solve=0.126s, cache=4696\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=253, max_solve=0.036s, sum_solve=0.090s, cache=4702\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=312, max_solve=0.037s, sum_solve=0.112s, cache=4709\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.042s\n", "[forward] iters: avg=322, max_solve=0.037s, sum_solve=0.114s, cache=4717\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=325, max_solve=0.044s, sum_solve=0.126s, cache=4724\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=297, max_solve=0.041s, sum_solve=0.106s, cache=4732\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=469, max_solve=0.059s, sum_solve=0.138s, cache=4739\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=403, max_solve=0.050s, sum_solve=0.174s, cache=4747\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=356, max_solve=0.044s, sum_solve=0.150s, cache=4754\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=319, max_solve=0.033s, sum_solve=0.080s, cache=4762\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] SCS direct failed for problem 0: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=644, max_solve=0.111s, sum_solve=0.201s, cache=4769\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=341, max_solve=0.039s, sum_solve=0.131s, cache=4777\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=325, max_solve=0.033s, sum_solve=0.097s, cache=4785\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=341, max_solve=0.038s, sum_solve=0.139s, cache=4793\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=228, max_solve=0.029s, sum_solve=0.056s, cache=4800\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] SCS direct failed for problem 7: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=556, max_solve=0.095s, sum_solve=0.162s, cache=4807\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=509, max_solve=0.033s, sum_solve=0.077s, cache=4815\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] SCS direct failed for problem 5: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=769, max_solve=0.119s, sum_solve=0.285s, cache=4822\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=291, max_solve=0.034s, sum_solve=0.116s, cache=4830\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=338, max_solve=0.044s, sum_solve=0.154s, cache=4837\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=359, max_solve=0.045s, sum_solve=0.140s, cache=4844\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=606, max_solve=0.076s, sum_solve=0.248s, cache=4852\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=450, max_solve=0.055s, sum_solve=0.155s, cache=4858\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.019s\n", "[forward] iters: avg=441, max_solve=0.027s, sum_solve=0.113s, cache=4866\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=269, max_solve=0.035s, sum_solve=0.082s, cache=4872\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=225, max_solve=0.017s, sum_solve=0.045s, cache=4880\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=256, max_solve=0.034s, sum_solve=0.109s, cache=4888\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=228, max_solve=0.030s, sum_solve=0.076s, cache=4896\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=516, max_solve=0.054s, sum_solve=0.222s, cache=4904\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=241, max_solve=0.027s, sum_solve=0.079s, cache=4911\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=378, max_solve=0.036s, sum_solve=0.118s, cache=4919\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=409, max_solve=0.054s, sum_solve=0.184s, cache=4927\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=375, max_solve=0.039s, sum_solve=0.139s, cache=4934\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=209, max_solve=0.017s, sum_solve=0.043s, cache=4941\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[forward] iters: avg=231, max_solve=0.027s, sum_solve=0.075s, cache=4949\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=294, max_solve=0.033s, sum_solve=0.090s, cache=4957\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=334, max_solve=0.041s, sum_solve=0.131s, cache=4965\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=672, max_solve=0.069s, sum_solve=0.252s, cache=4973\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=362, max_solve=0.032s, sum_solve=0.077s, cache=4981\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.053s\n", "[forward] iters: avg=578, max_solve=0.063s, sum_solve=0.245s, cache=4989\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=419, max_solve=0.028s, sum_solve=0.082s, cache=4997\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.040s\n", "[forward] iters: avg=441, max_solve=0.041s, sum_solve=0.178s, cache=5005\n", "[backward] iters: avg=25, max_solve=0.017s, sum_solve=0.060s\n", "[forward] iters: avg=722, max_solve=0.053s, sum_solve=0.231s, cache=5012\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=403, max_solve=0.051s, sum_solve=0.157s, cache=5020\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] SCS direct failed for problem 4: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=619, max_solve=0.082s, sum_solve=0.149s, cache=5027\n", "[backward] iters: avg=25, max_solve=0.008s, sum_solve=0.022s\n", "[forward] iters: avg=450, max_solve=0.029s, sum_solve=0.092s, cache=5035\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=412, max_solve=0.034s, sum_solve=0.126s, cache=5042\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.026s\n", "[forward] iters: avg=434, max_solve=0.049s, sum_solve=0.173s, cache=5050\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=228, max_solve=0.027s, sum_solve=0.066s, cache=5058\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.048s\n", " iter 650/1125\n", "[forward] iters: avg=491, max_solve=0.029s, sum_solve=0.093s, cache=5063\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=353, max_solve=0.025s, sum_solve=0.069s, cache=5071\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.022s\n", "[forward] iters: avg=297, max_solve=0.021s, sum_solve=0.069s, cache=5079\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=481, max_solve=0.050s, sum_solve=0.183s, cache=5087\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=275, max_solve=0.021s, sum_solve=0.072s, cache=5095\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] SCS direct failed for problem 0: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=662, max_solve=0.089s, sum_solve=0.134s, cache=5102\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.027s\n", "[forward] iters: avg=534, max_solve=0.054s, sum_solve=0.162s, cache=5109\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=384, max_solve=0.043s, sum_solve=0.097s, cache=5115\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] SCS direct failed for problem 1: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=603, max_solve=0.100s, sum_solve=0.159s, cache=5120\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=353, max_solve=0.043s, sum_solve=0.078s, cache=5128\n", "[backward] iters: avg=25, max_solve=0.007s, sum_solve=0.018s\n", "[forward] iters: avg=372, max_solve=0.031s, sum_solve=0.099s, cache=5136\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.036s\n", "[forward] iters: avg=378, max_solve=0.026s, sum_solve=0.086s, cache=5144\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=638, max_solve=0.064s, sum_solve=0.198s, cache=5152\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=381, max_solve=0.023s, sum_solve=0.087s, cache=5159\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=372, max_solve=0.028s, sum_solve=0.095s, cache=5167\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.024s\n", "[forward] iters: avg=581, max_solve=0.026s, sum_solve=0.118s, cache=5174\n", "[backward] iters: avg=25, max_solve=0.007s, sum_solve=0.020s\n", "[forward] iters: avg=269, max_solve=0.024s, sum_solve=0.060s, cache=5181\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=522, max_solve=0.024s, sum_solve=0.123s, cache=5188\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.035s\n", "[forward] iters: avg=547, max_solve=0.070s, sum_solve=0.233s, cache=5196\n", "[backward] iters: avg=25, max_solve=0.018s, sum_solve=0.042s\n", "[forward] iters: avg=325, max_solve=0.044s, sum_solve=0.135s, cache=5204\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=425, max_solve=0.045s, sum_solve=0.173s, cache=5212\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=697, max_solve=0.083s, sum_solve=0.250s, cache=5220\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=516, max_solve=0.040s, sum_solve=0.136s, cache=5228\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=319, max_solve=0.044s, sum_solve=0.118s, cache=5235\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=394, max_solve=0.046s, sum_solve=0.128s, cache=5242\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=312, max_solve=0.038s, sum_solve=0.115s, cache=5249\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=369, max_solve=0.039s, sum_solve=0.150s, cache=5255\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=431, max_solve=0.054s, sum_solve=0.221s, cache=5263\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=591, max_solve=0.063s, sum_solve=0.270s, cache=5271\n", "[backward] iters: avg=25, max_solve=0.010s, sum_solve=0.025s\n", "[forward] iters: avg=394, max_solve=0.052s, sum_solve=0.186s, cache=5279\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=303, max_solve=0.038s, sum_solve=0.120s, cache=5286\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=453, max_solve=0.053s, sum_solve=0.199s, cache=5294\n", "[backward] iters: avg=25, max_solve=0.007s, sum_solve=0.019s\n", "[forward] iters: avg=775, max_solve=0.076s, sum_solve=0.271s, cache=5302\n", "[backward] iters: avg=25, max_solve=0.019s, sum_solve=0.054s\n", "[forward] SCS direct failed for problem 6: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=678, max_solve=0.112s, sum_solve=0.235s, cache=5308\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=359, max_solve=0.049s, sum_solve=0.126s, cache=5316\n", "[backward] iters: avg=25, max_solve=0.019s, sum_solve=0.067s\n", "[forward] iters: avg=409, max_solve=0.045s, sum_solve=0.161s, cache=5324\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=294, max_solve=0.031s, sum_solve=0.069s, cache=5331\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] SCS direct failed for problem 5: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=556, max_solve=0.096s, sum_solve=0.208s, cache=5338\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=619, max_solve=0.067s, sum_solve=0.168s, cache=5346\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.045s\n", "[forward] iters: avg=741, max_solve=0.053s, sum_solve=0.182s, cache=5353\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=600, max_solve=0.065s, sum_solve=0.247s, cache=5361\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=600, max_solve=0.063s, sum_solve=0.225s, cache=5368\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=375, max_solve=0.045s, sum_solve=0.085s, cache=5375\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[forward] SCS direct failed for problem 0: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=781, max_solve=0.140s, sum_solve=0.331s, cache=5382\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=416, max_solve=0.036s, sum_solve=0.114s, cache=5390\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.024s\n", "[forward] iters: avg=391, max_solve=0.021s, sum_solve=0.074s, cache=5398\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=656, max_solve=0.062s, sum_solve=0.174s, cache=5406\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.035s\n", "[forward] iters: avg=500, max_solve=0.055s, sum_solve=0.190s, cache=5413\n", "[backward] iters: avg=25, max_solve=0.022s, sum_solve=0.062s\n", "[forward] iters: avg=581, max_solve=0.035s, sum_solve=0.150s, cache=5420\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.026s\n", "[forward] iters: avg=259, max_solve=0.009s, sum_solve=0.035s, cache=5427\n", "[backward] iters: avg=25, max_solve=0.019s, sum_solve=0.051s\n", " iter 700/1125\n", "[forward] iters: avg=331, max_solve=0.046s, sum_solve=0.145s, cache=5433\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=228, max_solve=0.020s, sum_solve=0.058s, cache=5440\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=384, max_solve=0.040s, sum_solve=0.140s, cache=5448\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=447, max_solve=0.040s, sum_solve=0.102s, cache=5456\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=472, max_solve=0.050s, sum_solve=0.227s, cache=5463\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=366, max_solve=0.020s, sum_solve=0.069s, cache=5471\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.026s\n", "[forward] iters: avg=431, max_solve=0.051s, sum_solve=0.148s, cache=5479\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=306, max_solve=0.030s, sum_solve=0.079s, cache=5487\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=309, max_solve=0.041s, sum_solve=0.138s, cache=5495\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=347, max_solve=0.043s, sum_solve=0.112s, cache=5502\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.034s\n", "[forward] iters: avg=266, max_solve=0.031s, sum_solve=0.068s, cache=5509\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=309, max_solve=0.039s, sum_solve=0.103s, cache=5517\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=269, max_solve=0.032s, sum_solve=0.087s, cache=5525\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=422, max_solve=0.047s, sum_solve=0.181s, cache=5533\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=334, max_solve=0.040s, sum_solve=0.137s, cache=5541\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=294, max_solve=0.037s, sum_solve=0.104s, cache=5549\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=291, max_solve=0.041s, sum_solve=0.074s, cache=5557\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=362, max_solve=0.034s, sum_solve=0.106s, cache=5565\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=275, max_solve=0.031s, sum_solve=0.088s, cache=5573\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=222, max_solve=0.029s, sum_solve=0.085s, cache=5580\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=612, max_solve=0.074s, sum_solve=0.178s, cache=5588\n", "[backward] iters: avg=25, max_solve=0.002s, sum_solve=0.013s\n", "[forward] iters: avg=447, max_solve=0.058s, sum_solve=0.211s, cache=5595\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.022s\n", "[forward] iters: avg=453, max_solve=0.025s, sum_solve=0.085s, cache=5603\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=322, max_solve=0.040s, sum_solve=0.104s, cache=5610\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=203, max_solve=0.015s, sum_solve=0.036s, cache=5618\n", "[backward] iters: avg=25, max_solve=0.006s, sum_solve=0.019s\n", "[forward] iters: avg=238, max_solve=0.029s, sum_solve=0.078s, cache=5625\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=381, max_solve=0.034s, sum_solve=0.055s, cache=5633\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=409, max_solve=0.035s, sum_solve=0.086s, cache=5641\n", "[backward] iters: avg=25, max_solve=0.012s, sum_solve=0.026s\n", "[forward] iters: avg=359, max_solve=0.029s, sum_solve=0.096s, cache=5648\n", "[backward] iters: avg=25, max_solve=0.002s, sum_solve=0.013s\n", "[forward] iters: avg=334, max_solve=0.028s, sum_solve=0.072s, cache=5656\n", "[backward] iters: avg=25, max_solve=0.012s, sum_solve=0.039s\n", "[forward] iters: avg=306, max_solve=0.031s, sum_solve=0.092s, cache=5663\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=369, max_solve=0.042s, sum_solve=0.109s, cache=5670\n", "[backward] iters: avg=25, max_solve=0.014s, sum_solve=0.031s\n", "[forward] iters: avg=362, max_solve=0.049s, sum_solve=0.138s, cache=5677\n", "[backward] iters: avg=25, max_solve=0.017s, sum_solve=0.029s\n", "[forward] iters: avg=194, max_solve=0.007s, sum_solve=0.024s, cache=5685\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=200, max_solve=0.022s, sum_solve=0.050s, cache=5693\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.037s\n", "[forward] iters: avg=228, max_solve=0.024s, sum_solve=0.069s, cache=5701\n", "[backward] iters: avg=25, max_solve=0.002s, sum_solve=0.013s\n", "[forward] iters: avg=334, max_solve=0.016s, sum_solve=0.049s, cache=5709\n", "[backward] iters: avg=25, max_solve=0.005s, sum_solve=0.016s\n", "[forward] iters: avg=256, max_solve=0.019s, sum_solve=0.046s, cache=5717\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=234, max_solve=0.015s, sum_solve=0.057s, cache=5725\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=156, max_solve=0.020s, sum_solve=0.041s, cache=5732\n", "[backward] iters: avg=25, max_solve=0.018s, sum_solve=0.040s\n", "[forward] iters: avg=294, max_solve=0.019s, sum_solve=0.055s, cache=5740\n", "[backward] iters: avg=25, max_solve=0.007s, sum_solve=0.018s\n", "[forward] iters: avg=269, max_solve=0.020s, sum_solve=0.060s, cache=5748\n", "[backward] iters: avg=25, max_solve=0.014s, sum_solve=0.026s\n", "[forward] iters: avg=312, max_solve=0.023s, sum_solve=0.071s, cache=5756\n", "[backward] iters: avg=25, max_solve=0.006s, sum_solve=0.018s\n", "[forward] iters: avg=275, max_solve=0.029s, sum_solve=0.084s, cache=5763\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=194, max_solve=0.014s, sum_solve=0.033s, cache=5770\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=219, max_solve=0.016s, sum_solve=0.033s, cache=5777\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.027s\n", "[forward] iters: avg=212, max_solve=0.028s, sum_solve=0.085s, cache=5784\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=459, max_solve=0.051s, sum_solve=0.129s, cache=5791\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.025s\n", "[forward] iters: avg=269, max_solve=0.018s, sum_solve=0.054s, cache=5799\n", "[backward] iters: avg=25, max_solve=0.007s, sum_solve=0.022s\n", "[forward] iters: avg=212, max_solve=0.005s, sum_solve=0.026s, cache=5807\n", "[backward] iters: avg=25, max_solve=0.010s, sum_solve=0.023s\n", " iter 750/1125\n", "[forward] iters: avg=241, max_solve=0.020s, sum_solve=0.053s, cache=5815\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=350, max_solve=0.027s, sum_solve=0.075s, cache=5823\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=269, max_solve=0.012s, sum_solve=0.032s, cache=5831\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.027s\n", "[forward] iters: avg=284, max_solve=0.010s, sum_solve=0.040s, cache=5839\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=256, max_solve=0.027s, sum_solve=0.070s, cache=5846\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[backward] iters: avg=25, max_solve=0.018s, sum_solve=0.053s\n", "[forward] iters: avg=225, max_solve=0.022s, sum_solve=0.081s, cache=5854\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=234, max_solve=0.014s, sum_solve=0.046s, cache=5862\n", "[backward] iters: avg=25, max_solve=0.005s, sum_solve=0.020s\n", "[forward] iters: avg=306, max_solve=0.025s, sum_solve=0.059s, cache=5870\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=244, max_solve=0.014s, sum_solve=0.037s, cache=5877\n", "[backward] iters: avg=25, max_solve=0.018s, sum_solve=0.038s\n", "[forward] iters: avg=369, max_solve=0.038s, sum_solve=0.088s, cache=5884\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=131, max_solve=0.013s, sum_solve=0.028s, cache=5892\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=156, max_solve=0.011s, sum_solve=0.028s, cache=5899\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.024s\n", "[forward] iters: avg=219, max_solve=0.029s, sum_solve=0.078s, cache=5905\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=319, max_solve=0.036s, sum_solve=0.115s, cache=5911\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=316, max_solve=0.039s, sum_solve=0.085s, cache=5918\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=188, max_solve=0.023s, sum_solve=0.057s, cache=5926\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=175, max_solve=0.018s, sum_solve=0.065s, cache=5934\n", "[backward] iters: avg=25, max_solve=0.012s, sum_solve=0.052s\n", "[forward] iters: avg=212, max_solve=0.021s, sum_solve=0.047s, cache=5941\n", "[backward] iters: avg=25, max_solve=0.006s, sum_solve=0.023s\n", "[forward] iters: avg=325, max_solve=0.023s, sum_solve=0.074s, cache=5949\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.021s\n", "[forward] iters: avg=322, max_solve=0.017s, sum_solve=0.056s, cache=5957\n", "[backward] iters: avg=25, max_solve=0.002s, sum_solve=0.013s\n", "[forward] iters: avg=212, max_solve=0.022s, sum_solve=0.057s, cache=5964\n", "[backward] iters: avg=25, max_solve=0.017s, sum_solve=0.040s\n", "[forward] iters: avg=253, max_solve=0.029s, sum_solve=0.060s, cache=5971\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=362, max_solve=0.035s, sum_solve=0.067s, cache=5979\n", "[backward] iters: avg=25, max_solve=0.007s, sum_solve=0.018s\n", "[forward] iters: avg=275, max_solve=0.034s, sum_solve=0.079s, cache=5987\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=481, max_solve=0.054s, sum_solve=0.145s, cache=5994\n", "[backward] iters: avg=25, max_solve=0.005s, sum_solve=0.016s\n", "[forward] iters: avg=234, max_solve=0.017s, sum_solve=0.043s, cache=6001\n", "[backward] iters: avg=25, max_solve=0.013s, sum_solve=0.040s\n", "[forward] iters: avg=531, max_solve=0.045s, sum_solve=0.098s, cache=6009\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] SCS direct failed for problem 0: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=475, max_solve=0.094s, sum_solve=0.124s, cache=6016\n", "[backward] iters: avg=25, max_solve=0.007s, sum_solve=0.019s\n", "[forward] iters: avg=256, max_solve=0.019s, sum_solve=0.052s, cache=6024\n", "[backward] iters: avg=25, max_solve=0.005s, sum_solve=0.016s\n", "[forward] iters: avg=238, max_solve=0.009s, sum_solve=0.034s, cache=6030\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=422, max_solve=0.024s, sum_solve=0.088s, cache=6037\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=228, max_solve=0.028s, sum_solve=0.072s, cache=6045\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=231, max_solve=0.031s, sum_solve=0.063s, cache=6052\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=316, max_solve=0.043s, sum_solve=0.096s, cache=6060\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=225, max_solve=0.025s, sum_solve=0.072s, cache=6068\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=344, max_solve=0.047s, sum_solve=0.121s, cache=6076\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=200, max_solve=0.022s, sum_solve=0.057s, cache=6084\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=166, max_solve=0.020s, sum_solve=0.052s, cache=6091\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=384, max_solve=0.042s, sum_solve=0.125s, cache=6099\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=225, max_solve=0.030s, sum_solve=0.058s, cache=6107\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=453, max_solve=0.059s, sum_solve=0.157s, cache=6115\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=372, max_solve=0.050s, sum_solve=0.161s, cache=6123\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=222, max_solve=0.024s, sum_solve=0.052s, cache=6129\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=378, max_solve=0.030s, sum_solve=0.092s, cache=6136\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=231, max_solve=0.026s, sum_solve=0.056s, cache=6143\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=284, max_solve=0.036s, sum_solve=0.091s, cache=6150\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=375, max_solve=0.045s, sum_solve=0.105s, cache=6158\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=403, max_solve=0.051s, sum_solve=0.144s, cache=6166\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=206, max_solve=0.024s, sum_solve=0.058s, cache=6172\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=206, max_solve=0.024s, sum_solve=0.056s, cache=6180\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", " iter 800/1125\n", "[forward] iters: avg=375, max_solve=0.025s, sum_solve=0.104s, cache=6188\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=141, max_solve=0.008s, sum_solve=0.023s, cache=6196\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=378, max_solve=0.044s, sum_solve=0.187s, cache=6203\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=300, max_solve=0.032s, sum_solve=0.102s, cache=6210\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=497, max_solve=0.050s, sum_solve=0.111s, cache=6218\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=306, max_solve=0.038s, sum_solve=0.077s, cache=6224\n", "[backward] iters: avg=25, max_solve=0.018s, sum_solve=0.045s\n", "[forward] iters: avg=262, max_solve=0.007s, sum_solve=0.032s, cache=6232\n", "[backward] iters: avg=25, max_solve=0.010s, sum_solve=0.021s\n", "[forward] iters: avg=256, max_solve=0.031s, sum_solve=0.083s, cache=6240\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=378, max_solve=0.040s, sum_solve=0.160s, cache=6248\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=331, max_solve=0.040s, sum_solve=0.124s, cache=6255\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=459, max_solve=0.052s, sum_solve=0.111s, cache=6263\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=238, max_solve=0.031s, sum_solve=0.076s, cache=6270\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=391, max_solve=0.047s, sum_solve=0.073s, cache=6278\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=328, max_solve=0.035s, sum_solve=0.105s, cache=6285\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=516, max_solve=0.048s, sum_solve=0.224s, cache=6293\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=222, max_solve=0.029s, sum_solve=0.071s, cache=6301\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[forward] iters: avg=306, max_solve=0.032s, sum_solve=0.088s, cache=6308\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=359, max_solve=0.041s, sum_solve=0.100s, cache=6315\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=191, max_solve=0.006s, sum_solve=0.026s, cache=6323\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=503, max_solve=0.050s, sum_solve=0.141s, cache=6330\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=344, max_solve=0.038s, sum_solve=0.124s, cache=6337\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=206, max_solve=0.027s, sum_solve=0.067s, cache=6345\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=275, max_solve=0.033s, sum_solve=0.096s, cache=6352\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=325, max_solve=0.025s, sum_solve=0.055s, cache=6360\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=259, max_solve=0.030s, sum_solve=0.088s, cache=6368\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=281, max_solve=0.035s, sum_solve=0.100s, cache=6375\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] SCS direct failed for problem 0: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=556, max_solve=0.116s, sum_solve=0.204s, cache=6381\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] SCS direct failed for problem 2: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=628, max_solve=0.097s, sum_solve=0.150s, cache=6388\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=284, max_solve=0.014s, sum_solve=0.047s, cache=6396\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=244, max_solve=0.027s, sum_solve=0.057s, cache=6404\n", "[backward] iters: avg=25, max_solve=0.010s, sum_solve=0.021s\n", "[forward] iters: avg=509, max_solve=0.066s, sum_solve=0.157s, cache=6411\n", "[backward] iters: avg=25, max_solve=0.012s, sum_solve=0.044s\n", "[forward] iters: avg=419, max_solve=0.049s, sum_solve=0.183s, cache=6418\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=500, max_solve=0.053s, sum_solve=0.181s, cache=6426\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=291, max_solve=0.035s, sum_solve=0.061s, cache=6434\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=400, max_solve=0.038s, sum_solve=0.143s, cache=6440\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=388, max_solve=0.051s, sum_solve=0.156s, cache=6447\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.034s\n", "[forward] iters: avg=372, max_solve=0.045s, sum_solve=0.100s, cache=6455\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=259, max_solve=0.037s, sum_solve=0.084s, cache=6462\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=231, max_solve=0.030s, sum_solve=0.071s, cache=6469\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=372, max_solve=0.041s, sum_solve=0.137s, cache=6477\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=212, max_solve=0.016s, sum_solve=0.042s, cache=6485\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=269, max_solve=0.038s, sum_solve=0.104s, cache=6493\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=297, max_solve=0.035s, sum_solve=0.111s, cache=6501\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=406, max_solve=0.041s, sum_solve=0.123s, cache=6509\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=434, max_solve=0.047s, sum_solve=0.155s, cache=6515\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=166, max_solve=0.018s, sum_solve=0.044s, cache=6523\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=381, max_solve=0.045s, sum_solve=0.122s, cache=6531\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=359, max_solve=0.034s, sum_solve=0.109s, cache=6538\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=353, max_solve=0.035s, sum_solve=0.150s, cache=6546\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=319, max_solve=0.035s, sum_solve=0.156s, cache=6554\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", " iter 850/1125\n", "[forward] iters: avg=225, max_solve=0.027s, sum_solve=0.065s, cache=6562\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=453, max_solve=0.040s, sum_solve=0.119s, cache=6570\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=262, max_solve=0.020s, sum_solve=0.063s, cache=6577\n", "[backward] iters: avg=25, max_solve=0.019s, sum_solve=0.050s\n", "[forward] iters: avg=619, max_solve=0.079s, sum_solve=0.235s, cache=6585\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] SCS direct failed for problem 4: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=447, max_solve=0.094s, sum_solve=0.116s, cache=6592\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=353, max_solve=0.041s, sum_solve=0.162s, cache=6600\n", "[backward] iters: avg=25, max_solve=0.010s, sum_solve=0.025s\n", "[forward] iters: avg=241, max_solve=0.035s, sum_solve=0.083s, cache=6606\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=278, max_solve=0.036s, sum_solve=0.080s, cache=6613\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=334, max_solve=0.030s, sum_solve=0.083s, cache=6621\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.035s\n", "[forward] iters: avg=375, max_solve=0.041s, sum_solve=0.129s, cache=6629\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=350, max_solve=0.044s, sum_solve=0.129s, cache=6636\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.015s\n", "[forward] iters: avg=225, max_solve=0.023s, sum_solve=0.061s, cache=6643\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=378, max_solve=0.051s, sum_solve=0.134s, cache=6651\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=378, max_solve=0.043s, sum_solve=0.163s, cache=6659\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=334, max_solve=0.019s, sum_solve=0.049s, cache=6666\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=338, max_solve=0.040s, sum_solve=0.100s, cache=6674\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=716, max_solve=0.066s, sum_solve=0.326s, cache=6682\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=309, max_solve=0.016s, sum_solve=0.038s, cache=6690\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=200, max_solve=0.008s, sum_solve=0.037s, cache=6697\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.026s\n", "[forward] iters: avg=309, max_solve=0.042s, sum_solve=0.126s, cache=6704\n", "[backward] iters: avg=25, max_solve=0.018s, sum_solve=0.029s\n", "[forward] iters: avg=347, max_solve=0.025s, sum_solve=0.071s, cache=6712\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=341, max_solve=0.034s, sum_solve=0.088s, cache=6720\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.034s\n", "[forward] iters: avg=409, max_solve=0.020s, sum_solve=0.066s, cache=6727\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=453, max_solve=0.059s, sum_solve=0.134s, cache=6735\n", "[backward] iters: avg=25, max_solve=0.006s, sum_solve=0.018s\n", "[forward] iters: avg=466, max_solve=0.040s, sum_solve=0.105s, cache=6742\n", "[backward] iters: avg=25, max_solve=0.002s, sum_solve=0.013s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[forward] SCS direct failed for problem 5: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=459, max_solve=0.091s, sum_solve=0.109s, cache=6748\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=359, max_solve=0.045s, sum_solve=0.132s, cache=6754\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=372, max_solve=0.042s, sum_solve=0.107s, cache=6761\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.040s\n", "[forward] iters: avg=256, max_solve=0.017s, sum_solve=0.050s, cache=6769\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=394, max_solve=0.052s, sum_solve=0.186s, cache=6777\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=225, max_solve=0.007s, sum_solve=0.028s, cache=6784\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=341, max_solve=0.014s, sum_solve=0.051s, cache=6791\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.046s\n", "[forward] iters: avg=500, max_solve=0.034s, sum_solve=0.089s, cache=6798\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=497, max_solve=0.044s, sum_solve=0.089s, cache=6806\n", "[backward] iters: avg=25, max_solve=0.002s, sum_solve=0.013s\n", "[forward] iters: avg=578, max_solve=0.029s, sum_solve=0.107s, cache=6814\n", "[backward] iters: avg=25, max_solve=0.002s, sum_solve=0.013s\n", "[forward] iters: avg=462, max_solve=0.045s, sum_solve=0.128s, cache=6820\n", "[backward] iters: avg=25, max_solve=0.017s, sum_solve=0.039s\n", "[forward] iters: avg=459, max_solve=0.050s, sum_solve=0.191s, cache=6828\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=384, max_solve=0.032s, sum_solve=0.102s, cache=6835\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=456, max_solve=0.053s, sum_solve=0.215s, cache=6842\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=378, max_solve=0.040s, sum_solve=0.120s, cache=6849\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=350, max_solve=0.040s, sum_solve=0.107s, cache=6857\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=306, max_solve=0.038s, sum_solve=0.118s, cache=6864\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=291, max_solve=0.017s, sum_solve=0.077s, cache=6872\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=356, max_solve=0.025s, sum_solve=0.082s, cache=6880\n", "[backward] iters: avg=25, max_solve=0.007s, sum_solve=0.018s\n", "[forward] iters: avg=375, max_solve=0.050s, sum_solve=0.068s, cache=6888\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=238, max_solve=0.029s, sum_solve=0.085s, cache=6896\n", "[backward] iters: avg=25, max_solve=0.008s, sum_solve=0.025s\n", "[forward] iters: avg=284, max_solve=0.010s, sum_solve=0.036s, cache=6903\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=606, max_solve=0.032s, sum_solve=0.102s, cache=6911\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=522, max_solve=0.036s, sum_solve=0.067s, cache=6918\n", "[backward] iters: avg=25, max_solve=0.019s, sum_solve=0.047s\n", "[forward] iters: avg=288, max_solve=0.026s, sum_solve=0.063s, cache=6925\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.027s\n", " iter 900/1125\n", "[forward] iters: avg=294, max_solve=0.033s, sum_solve=0.073s, cache=6932\n", "[backward] iters: avg=25, max_solve=0.017s, sum_solve=0.070s\n", "[forward] iters: avg=519, max_solve=0.034s, sum_solve=0.130s, cache=6938\n", "[backward] iters: avg=25, max_solve=0.014s, sum_solve=0.030s\n", "[forward] iters: avg=431, max_solve=0.029s, sum_solve=0.078s, cache=6944\n", "[backward] iters: avg=25, max_solve=0.018s, sum_solve=0.040s\n", "[forward] iters: avg=375, max_solve=0.020s, sum_solve=0.076s, cache=6950\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=641, max_solve=0.059s, sum_solve=0.201s, cache=6958\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=500, max_solve=0.065s, sum_solve=0.191s, cache=6965\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=350, max_solve=0.039s, sum_solve=0.088s, cache=6973\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=541, max_solve=0.043s, sum_solve=0.149s, cache=6980\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=431, max_solve=0.049s, sum_solve=0.147s, cache=6987\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=444, max_solve=0.056s, sum_solve=0.177s, cache=6995\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.021s\n", "[forward] iters: avg=441, max_solve=0.017s, sum_solve=0.061s, cache=7002\n", "[backward] iters: avg=25, max_solve=0.018s, sum_solve=0.043s\n", "[forward] iters: avg=362, max_solve=0.044s, sum_solve=0.140s, cache=7010\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=616, max_solve=0.069s, sum_solve=0.217s, cache=7018\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=334, max_solve=0.045s, sum_solve=0.126s, cache=7026\n", "[backward] iters: avg=25, max_solve=0.018s, sum_solve=0.051s\n", "[forward] iters: avg=522, max_solve=0.049s, sum_solve=0.133s, cache=7032\n", "[backward] iters: avg=25, max_solve=0.017s, sum_solve=0.048s\n", "[forward] iters: avg=328, max_solve=0.038s, sum_solve=0.108s, cache=7039\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=603, max_solve=0.055s, sum_solve=0.194s, cache=7047\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=281, max_solve=0.014s, sum_solve=0.039s, cache=7054\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=419, max_solve=0.051s, sum_solve=0.175s, cache=7062\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=438, max_solve=0.038s, sum_solve=0.102s, cache=7069\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.020s\n", "[forward] iters: avg=347, max_solve=0.032s, sum_solve=0.078s, cache=7076\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.034s\n", "[forward] iters: avg=531, max_solve=0.035s, sum_solve=0.096s, cache=7084\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=419, max_solve=0.031s, sum_solve=0.122s, cache=7091\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=338, max_solve=0.039s, sum_solve=0.131s, cache=7099\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.026s\n", "[forward] iters: avg=319, max_solve=0.039s, sum_solve=0.145s, cache=7107\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=462, max_solve=0.033s, sum_solve=0.102s, cache=7115\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.027s\n", "[forward] iters: avg=528, max_solve=0.028s, sum_solve=0.091s, cache=7123\n", "[backward] iters: avg=25, max_solve=0.007s, sum_solve=0.018s\n", "[forward] iters: avg=353, max_solve=0.033s, sum_solve=0.114s, cache=7131\n", "[backward] iters: avg=25, max_solve=0.011s, sum_solve=0.023s\n", "[forward] iters: avg=356, max_solve=0.021s, sum_solve=0.070s, cache=7136\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.027s\n", "[forward] iters: avg=331, max_solve=0.033s, sum_solve=0.117s, cache=7144\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.038s\n", "[forward] iters: avg=469, max_solve=0.030s, sum_solve=0.101s, cache=7151\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=378, max_solve=0.043s, sum_solve=0.143s, cache=7159\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=675, max_solve=0.071s, sum_solve=0.336s, cache=7166\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=812, max_solve=0.072s, sum_solve=0.287s, cache=7174\n", "[backward] iters: avg=25, max_solve=0.010s, sum_solve=0.029s\n", "[forward] iters: avg=344, max_solve=0.019s, sum_solve=0.062s, cache=7182\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=262, max_solve=0.034s, sum_solve=0.075s, cache=7190\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] SCS direct failed for problem 2: solved (inaccurate - reached max_iters), falling back to CVXPY\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[forward] iters: avg=731, max_solve=0.127s, sum_solve=0.270s, cache=7197\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=275, max_solve=0.020s, sum_solve=0.049s, cache=7204\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=338, max_solve=0.036s, sum_solve=0.101s, cache=7210\n", "[backward] iters: avg=25, max_solve=0.017s, sum_solve=0.046s\n", "[forward] SCS direct failed for problem 6: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=484, max_solve=0.082s, sum_solve=0.299s, cache=7217\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=428, max_solve=0.037s, sum_solve=0.143s, cache=7224\n", "[backward] iters: avg=25, max_solve=0.006s, sum_solve=0.020s\n", "[forward] iters: avg=469, max_solve=0.041s, sum_solve=0.111s, cache=7232\n", "[backward] iters: avg=25, max_solve=0.002s, sum_solve=0.013s\n", "[forward] iters: avg=278, max_solve=0.032s, sum_solve=0.097s, cache=7240\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=412, max_solve=0.048s, sum_solve=0.114s, cache=7247\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=369, max_solve=0.040s, sum_solve=0.130s, cache=7254\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=575, max_solve=0.061s, sum_solve=0.216s, cache=7262\n", "[backward] iters: avg=25, max_solve=0.017s, sum_solve=0.031s\n", "[forward] iters: avg=503, max_solve=0.056s, sum_solve=0.098s, cache=7269\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=406, max_solve=0.049s, sum_solve=0.123s, cache=7275\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=312, max_solve=0.029s, sum_solve=0.100s, cache=7283\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=134, max_solve=0.016s, sum_solve=0.036s, cache=7291\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", " iter 950/1125\n", "[forward] iters: avg=322, max_solve=0.044s, sum_solve=0.134s, cache=7297\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=272, max_solve=0.009s, sum_solve=0.038s, cache=7305\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=247, max_solve=0.031s, sum_solve=0.070s, cache=7313\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] SCS direct failed for problem 5: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=525, max_solve=0.097s, sum_solve=0.171s, cache=7320\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=138, max_solve=0.004s, sum_solve=0.017s, cache=7328\n", "[backward] iters: avg=25, max_solve=0.005s, sum_solve=0.018s\n", "[forward] iters: avg=209, max_solve=0.014s, sum_solve=0.034s, cache=7336\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=409, max_solve=0.032s, sum_solve=0.080s, cache=7341\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.026s\n", "[forward] iters: avg=134, max_solve=0.006s, sum_solve=0.022s, cache=7349\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=447, max_solve=0.041s, sum_solve=0.157s, cache=7357\n", "[backward] iters: avg=25, max_solve=0.010s, sum_solve=0.025s\n", "[forward] iters: avg=209, max_solve=0.025s, sum_solve=0.046s, cache=7365\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=131, max_solve=0.015s, sum_solve=0.036s, cache=7372\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=203, max_solve=0.025s, sum_solve=0.065s, cache=7380\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=250, max_solve=0.034s, sum_solve=0.080s, cache=7387\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=262, max_solve=0.030s, sum_solve=0.084s, cache=7395\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=175, max_solve=0.024s, sum_solve=0.057s, cache=7403\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=181, max_solve=0.021s, sum_solve=0.051s, cache=7409\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.044s\n", "[forward] iters: avg=453, max_solve=0.043s, sum_solve=0.105s, cache=7417\n", "[backward] iters: avg=25, max_solve=0.018s, sum_solve=0.038s\n", "[forward] iters: avg=262, max_solve=0.031s, sum_solve=0.077s, cache=7425\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=159, max_solve=0.018s, sum_solve=0.042s, cache=7433\n", "[backward] iters: avg=25, max_solve=0.018s, sum_solve=0.047s\n", "[forward] iters: avg=131, max_solve=0.008s, sum_solve=0.029s, cache=7438\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=181, max_solve=0.015s, sum_solve=0.038s, cache=7445\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=491, max_solve=0.046s, sum_solve=0.098s, cache=7453\n", "[backward] iters: avg=25, max_solve=0.014s, sum_solve=0.028s\n", "[forward] iters: avg=219, max_solve=0.010s, sum_solve=0.040s, cache=7459\n", "[backward] iters: avg=25, max_solve=0.007s, sum_solve=0.019s\n", "[forward] iters: avg=191, max_solve=0.009s, sum_solve=0.027s, cache=7466\n", "[backward] iters: avg=25, max_solve=0.018s, sum_solve=0.040s\n", "[forward] iters: avg=141, max_solve=0.020s, sum_solve=0.055s, cache=7474\n", "[backward] iters: avg=25, max_solve=0.017s, sum_solve=0.028s\n", "[forward] iters: avg=247, max_solve=0.019s, sum_solve=0.047s, cache=7481\n", "[backward] iters: avg=25, max_solve=0.006s, sum_solve=0.018s\n", "[forward] iters: avg=250, max_solve=0.012s, sum_solve=0.041s, cache=7487\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=188, max_solve=0.011s, sum_solve=0.037s, cache=7494\n", "[backward] iters: avg=25, max_solve=0.018s, sum_solve=0.040s\n", "[forward] iters: avg=272, max_solve=0.035s, sum_solve=0.088s, cache=7502\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=162, max_solve=0.019s, sum_solve=0.047s, cache=7509\n", "[backward] iters: avg=25, max_solve=0.010s, sum_solve=0.028s\n", "[forward] iters: avg=169, max_solve=0.010s, sum_solve=0.027s, cache=7516\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=134, max_solve=0.004s, sum_solve=0.019s, cache=7522\n", "[backward] iters: avg=25, max_solve=0.018s, sum_solve=0.074s\n", "[forward] iters: avg=188, max_solve=0.022s, sum_solve=0.056s, cache=7530\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] SCS direct failed for problem 2: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=459, max_solve=0.097s, sum_solve=0.154s, cache=7536\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=162, max_solve=0.019s, sum_solve=0.036s, cache=7544\n", "[backward] iters: avg=25, max_solve=0.005s, sum_solve=0.016s\n", "[forward] iters: avg=150, max_solve=0.011s, sum_solve=0.026s, cache=7551\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=209, max_solve=0.007s, sum_solve=0.025s, cache=7559\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=194, max_solve=0.022s, sum_solve=0.053s, cache=7566\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=131, max_solve=0.017s, sum_solve=0.031s, cache=7574\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=328, max_solve=0.037s, sum_solve=0.086s, cache=7581\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=150, max_solve=0.009s, sum_solve=0.022s, cache=7589\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=147, max_solve=0.004s, sum_solve=0.021s, cache=7597\n", "[backward] iters: avg=25, max_solve=0.010s, sum_solve=0.026s\n", "[forward] iters: avg=200, max_solve=0.012s, sum_solve=0.043s, cache=7604\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.021s\n", "[forward] iters: avg=150, max_solve=0.006s, sum_solve=0.024s, cache=7612\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=244, max_solve=0.014s, sum_solve=0.032s, cache=7620\n", "[backward] iters: avg=25, max_solve=0.010s, sum_solve=0.028s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[forward] iters: avg=169, max_solve=0.023s, sum_solve=0.052s, cache=7628\n", "[backward] iters: avg=25, max_solve=0.010s, sum_solve=0.021s\n", "[forward] iters: avg=169, max_solve=0.020s, sum_solve=0.042s, cache=7635\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=484, max_solve=0.057s, sum_solve=0.098s, cache=7641\n", "[backward] iters: avg=25, max_solve=0.017s, sum_solve=0.048s\n", "[forward] iters: avg=172, max_solve=0.015s, sum_solve=0.030s, cache=7648\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=169, max_solve=0.021s, sum_solve=0.042s, cache=7656\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", " iter 1000/1125\n", "[forward] iters: avg=522, max_solve=0.039s, sum_solve=0.098s, cache=7662\n", "[backward] iters: avg=25, max_solve=0.011s, sum_solve=0.028s\n", "[forward] iters: avg=141, max_solve=0.010s, sum_solve=0.024s, cache=7669\n", "[backward] iters: avg=25, max_solve=0.012s, sum_solve=0.028s\n", "[forward] iters: avg=222, max_solve=0.022s, sum_solve=0.052s, cache=7677\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.037s\n", "[forward] iters: avg=219, max_solve=0.017s, sum_solve=0.057s, cache=7682\n", "[backward] iters: avg=25, max_solve=0.002s, sum_solve=0.013s\n", "[forward] SCS direct failed for problem 6: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=456, max_solve=0.089s, sum_solve=0.123s, cache=7689\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=206, max_solve=0.025s, sum_solve=0.099s, cache=7696\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=509, max_solve=0.045s, sum_solve=0.173s, cache=7704\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.039s\n", "[forward] iters: avg=178, max_solve=0.020s, sum_solve=0.042s, cache=7712\n", "[backward] iters: avg=25, max_solve=0.020s, sum_solve=0.038s\n", "[forward] iters: avg=475, max_solve=0.032s, sum_solve=0.083s, cache=7719\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "[forward] iters: avg=212, max_solve=0.007s, sum_solve=0.033s, cache=7727\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.021s\n", "[forward] iters: avg=191, max_solve=0.023s, sum_solve=0.064s, cache=7735\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=153, max_solve=0.010s, sum_solve=0.034s, cache=7743\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=272, max_solve=0.025s, sum_solve=0.064s, cache=7750\n", "[backward] iters: avg=25, max_solve=0.010s, sum_solve=0.022s\n", "[forward] iters: avg=209, max_solve=0.012s, sum_solve=0.028s, cache=7757\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=159, max_solve=0.010s, sum_solve=0.028s, cache=7765\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=156, max_solve=0.013s, sum_solve=0.027s, cache=7773\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=350, max_solve=0.030s, sum_solve=0.078s, cache=7780\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.025s\n", "[forward] iters: avg=209, max_solve=0.024s, sum_solve=0.055s, cache=7787\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=256, max_solve=0.034s, sum_solve=0.096s, cache=7795\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=200, max_solve=0.023s, sum_solve=0.052s, cache=7801\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=244, max_solve=0.029s, sum_solve=0.090s, cache=7808\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=203, max_solve=0.026s, sum_solve=0.057s, cache=7816\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=147, max_solve=0.003s, sum_solve=0.018s, cache=7822\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=144, max_solve=0.017s, sum_solve=0.038s, cache=7829\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=147, max_solve=0.018s, sum_solve=0.033s, cache=7835\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=169, max_solve=0.022s, sum_solve=0.050s, cache=7843\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=141, max_solve=0.016s, sum_solve=0.037s, cache=7850\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=191, max_solve=0.023s, sum_solve=0.062s, cache=7858\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=166, max_solve=0.010s, sum_solve=0.027s, cache=7866\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=319, max_solve=0.034s, sum_solve=0.109s, cache=7874\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=175, max_solve=0.022s, sum_solve=0.056s, cache=7882\n", "[backward] iters: avg=25, max_solve=0.017s, sum_solve=0.035s\n", "[forward] iters: avg=172, max_solve=0.022s, sum_solve=0.045s, cache=7890\n", "[backward] iters: avg=25, max_solve=0.017s, sum_solve=0.041s\n", "[forward] iters: avg=141, max_solve=0.017s, sum_solve=0.038s, cache=7897\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=222, max_solve=0.016s, sum_solve=0.038s, cache=7905\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=159, max_solve=0.018s, sum_solve=0.036s, cache=7912\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=150, max_solve=0.017s, sum_solve=0.041s, cache=7920\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=175, max_solve=0.020s, sum_solve=0.043s, cache=7927\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=134, max_solve=0.016s, sum_solve=0.038s, cache=7935\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=284, max_solve=0.031s, sum_solve=0.084s, cache=7943\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=253, max_solve=0.018s, sum_solve=0.053s, cache=7951\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=256, max_solve=0.027s, sum_solve=0.061s, cache=7959\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=294, max_solve=0.035s, sum_solve=0.081s, cache=7964\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=350, max_solve=0.027s, sum_solve=0.070s, cache=7972\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=378, max_solve=0.050s, sum_solve=0.119s, cache=7980\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=216, max_solve=0.011s, sum_solve=0.029s, cache=7987\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=269, max_solve=0.031s, sum_solve=0.068s, cache=7994\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=225, max_solve=0.026s, sum_solve=0.075s, cache=8002\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=138, max_solve=0.017s, sum_solve=0.039s, cache=8008\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=197, max_solve=0.024s, sum_solve=0.061s, cache=8015\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=278, max_solve=0.026s, sum_solve=0.076s, cache=8023\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", " iter 1050/1125\n", "[forward] iters: avg=412, max_solve=0.034s, sum_solve=0.090s, cache=8031\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=234, max_solve=0.026s, sum_solve=0.071s, cache=8039\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=197, max_solve=0.025s, sum_solve=0.047s, cache=8045\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=169, max_solve=0.023s, sum_solve=0.040s, cache=8052\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=212, max_solve=0.031s, sum_solve=0.057s, cache=8060\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=397, max_solve=0.048s, sum_solve=0.082s, cache=8065\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=172, max_solve=0.011s, sum_solve=0.027s, cache=8073\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[forward] iters: avg=219, max_solve=0.025s, sum_solve=0.060s, cache=8079\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=225, max_solve=0.015s, sum_solve=0.043s, cache=8087\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=256, max_solve=0.030s, sum_solve=0.087s, cache=8095\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=269, max_solve=0.010s, sum_solve=0.038s, cache=8102\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=262, max_solve=0.029s, sum_solve=0.082s, cache=8110\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.038s\n", "[forward] iters: avg=247, max_solve=0.027s, sum_solve=0.072s, cache=8116\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=378, max_solve=0.042s, sum_solve=0.064s, cache=8124\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=250, max_solve=0.036s, sum_solve=0.083s, cache=8132\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=406, max_solve=0.040s, sum_solve=0.114s, cache=8140\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=228, max_solve=0.026s, sum_solve=0.072s, cache=8147\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=134, max_solve=0.015s, sum_solve=0.035s, cache=8155\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=447, max_solve=0.043s, sum_solve=0.128s, cache=8162\n", "[backward] iters: avg=25, max_solve=0.008s, sum_solve=0.019s\n", "[forward] iters: avg=216, max_solve=0.026s, sum_solve=0.070s, cache=8170\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=350, max_solve=0.032s, sum_solve=0.073s, cache=8178\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] SCS direct failed for problem 5: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=431, max_solve=0.087s, sum_solve=0.123s, cache=8185\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=244, max_solve=0.016s, sum_solve=0.044s, cache=8192\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=316, max_solve=0.023s, sum_solve=0.055s, cache=8199\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=194, max_solve=0.014s, sum_solve=0.034s, cache=8206\n", "[backward] iters: avg=25, max_solve=0.019s, sum_solve=0.047s\n", "[forward] iters: avg=375, max_solve=0.018s, sum_solve=0.046s, cache=8213\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=194, max_solve=0.019s, sum_solve=0.038s, cache=8220\n", "[backward] iters: avg=25, max_solve=0.002s, sum_solve=0.013s\n", "[forward] iters: avg=325, max_solve=0.034s, sum_solve=0.102s, cache=8228\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=184, max_solve=0.011s, sum_solve=0.030s, cache=8236\n", "[backward] iters: avg=25, max_solve=0.012s, sum_solve=0.045s\n", "[forward] iters: avg=238, max_solve=0.018s, sum_solve=0.062s, cache=8244\n", "[backward] iters: avg=25, max_solve=0.020s, sum_solve=0.039s\n", "[forward] iters: avg=256, max_solve=0.026s, sum_solve=0.057s, cache=8252\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=181, max_solve=0.012s, sum_solve=0.031s, cache=8260\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=241, max_solve=0.022s, sum_solve=0.048s, cache=8266\n", "[backward] iters: avg=25, max_solve=0.010s, sum_solve=0.026s\n", "[forward] iters: avg=153, max_solve=0.008s, sum_solve=0.022s, cache=8273\n", "[backward] iters: avg=25, max_solve=0.007s, sum_solve=0.018s\n", "[forward] SCS direct failed for problem 4: solved (inaccurate - reached max_iters), falling back to CVXPY\n", "[forward] iters: avg=525, max_solve=0.090s, sum_solve=0.138s, cache=8280\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.026s\n", "[forward] iters: avg=209, max_solve=0.020s, sum_solve=0.050s, cache=8288\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.036s\n", "[forward] iters: avg=506, max_solve=0.045s, sum_solve=0.140s, cache=8295\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=175, max_solve=0.020s, sum_solve=0.040s, cache=8303\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=431, max_solve=0.049s, sum_solve=0.157s, cache=8311\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=162, max_solve=0.021s, sum_solve=0.049s, cache=8319\n", "[backward] iters: avg=25, max_solve=0.017s, sum_solve=0.035s\n", "[forward] iters: avg=344, max_solve=0.045s, sum_solve=0.122s, cache=8327\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=194, max_solve=0.006s, sum_solve=0.028s, cache=8335\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=350, max_solve=0.023s, sum_solve=0.068s, cache=8342\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.041s\n", "[forward] iters: avg=162, max_solve=0.020s, sum_solve=0.035s, cache=8349\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=159, max_solve=0.019s, sum_solve=0.047s, cache=8357\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.039s\n", "[forward] iters: avg=188, max_solve=0.018s, sum_solve=0.045s, cache=8364\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=328, max_solve=0.045s, sum_solve=0.110s, cache=8371\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=284, max_solve=0.040s, sum_solve=0.066s, cache=8378\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=328, max_solve=0.033s, sum_solve=0.063s, cache=8386\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.025s\n", "[forward] iters: avg=188, max_solve=0.015s, sum_solve=0.039s, cache=8394\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", " iter 1100/1125\n", "[forward] iters: avg=172, max_solve=0.016s, sum_solve=0.040s, cache=8402\n", "[backward] iters: avg=25, max_solve=0.002s, sum_solve=0.013s\n", "[forward] iters: avg=219, max_solve=0.029s, sum_solve=0.050s, cache=8410\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.032s\n", "[forward] iters: avg=428, max_solve=0.028s, sum_solve=0.072s, cache=8418\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.039s\n", "[forward] iters: avg=262, max_solve=0.035s, sum_solve=0.109s, cache=8425\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.021s\n", "[forward] iters: avg=150, max_solve=0.017s, sum_solve=0.037s, cache=8433\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=175, max_solve=0.008s, sum_solve=0.027s, cache=8441\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=156, max_solve=0.020s, sum_solve=0.044s, cache=8448\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=222, max_solve=0.018s, sum_solve=0.039s, cache=8456\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=231, max_solve=0.026s, sum_solve=0.064s, cache=8463\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=391, max_solve=0.037s, sum_solve=0.103s, cache=8470\n", "[backward] iters: avg=25, max_solve=0.005s, sum_solve=0.016s\n", "[forward] iters: avg=212, max_solve=0.024s, sum_solve=0.065s, cache=8478\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=303, max_solve=0.034s, sum_solve=0.104s, cache=8485\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=284, max_solve=0.040s, sum_solve=0.118s, cache=8493\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=203, max_solve=0.021s, sum_solve=0.059s, cache=8500\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=262, max_solve=0.032s, sum_solve=0.090s, cache=8508\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.038s\n", "[forward] iters: avg=284, max_solve=0.023s, sum_solve=0.068s, cache=8516\n", "[backward] iters: avg=25, max_solve=0.010s, sum_solve=0.021s\n", "[forward] iters: avg=216, max_solve=0.011s, sum_solve=0.035s, cache=8524\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[forward] iters: avg=238, max_solve=0.031s, sum_solve=0.070s, cache=8532\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=222, max_solve=0.015s, sum_solve=0.051s, cache=8540\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=181, max_solve=0.015s, sum_solve=0.045s, cache=8548\n", "[backward] iters: avg=25, max_solve=0.009s, sum_solve=0.020s\n", "[forward] iters: avg=381, max_solve=0.031s, sum_solve=0.054s, cache=8556\n", "[backward] iters: avg=25, max_solve=0.002s, sum_solve=0.013s\n", "[forward] iters: avg=303, max_solve=0.021s, sum_solve=0.045s, cache=8564\n", "[backward] iters: avg=25, max_solve=0.004s, sum_solve=0.016s\n", "[forward] iters: avg=231, max_solve=0.027s, sum_solve=0.081s, cache=8572\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=191, max_solve=0.024s, sum_solve=0.059s, cache=8578\n", "[backward] iters: avg=25, max_solve=0.016s, sum_solve=0.033s\n", "[forward] iters: avg=188, max_solve=0.011s, sum_solve=0.038s, cache=8586\n", "[backward] iters: avg=25, max_solve=0.015s, sum_solve=0.032s\n", "Done. Total fwd: 78.1s, bwd: 66.5s\n" ] } ], "source": [ "print(\"Running WITH warm start...\")\n", "df_ws = run_training(warm_start=True)\n", "df_ws[\"condition\"] = \"Warm Start\"\n", "print(f\"Done. Total fwd: {df_ws['accum_fwd_time'].iloc[-1]:.1f}s, bwd: {df_ws['accum_bwd_time'].iloc[-1]:.1f}s\")" ] }, { "cell_type": "code", "execution_count": 8, "id": "cbf427ea", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running WITHOUT warm start...\n", "FFOLayer forward eps = 1e-06, backward eps = 1e-05\n", " iter 0/1125\n", "max_workers: 8\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/tmp/ipykernel_1216057/786279542.py:7: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.\n", " features = torch.load(f\"sudoku/data/{N}/features.pt\")\n", "/tmp/ipykernel_1216057/786279542.py:8: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.\n", " labels = torch.load(f\"sudoku/data/{N}/labels.pt\")\n", "/tmp/ipykernel_1216057/786279542.py:9: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", " features = torch.tensor(features, dtype=torch.float32).to(DEVICE)\n", "/tmp/ipykernel_1216057/786279542.py:10: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", " labels = torch.tensor(labels, dtype=torch.float32).to(DEVICE)\n", "/storage/home/hcoda1/9/zzhao628/r-kwang692-0/.conda/envs/rl/lib/python3.10/site-packages/scs/__init__.py:83: UserWarning: Converting A to a CSC (compressed sparse column) matrix; may take a while.\n", " warn(\n", "/storage/home/hcoda1/9/zzhao628/r-kwang692-0/.conda/envs/rl/lib/python3.10/site-packages/scs/__init__.py:113: UserWarning: Converting P to a CSC (compressed sparse column) matrix; may take a while.\n", " warn(\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " iter 50/1125\n", " iter 100/1125\n", " iter 150/1125\n", " iter 200/1125\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/storage/home/hcoda1/9/zzhao628/r-kwang692-0/.conda/envs/rl/lib/python3.10/site-packages/cvxpy/problems/problem.py:1539: UserWarning: Solution may be inaccurate. Try another solver, adjusting the solver settings, or solve with verbose=True for more information.\n", " warnings.warn(\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " iter 250/1125\n", " iter 300/1125\n", " iter 350/1125\n", " iter 400/1125\n", " iter 450/1125\n", " iter 500/1125\n", " iter 550/1125\n", " iter 600/1125\n", " iter 650/1125\n", " iter 700/1125\n", " iter 750/1125\n", " iter 800/1125\n", " iter 850/1125\n", " iter 900/1125\n", " iter 950/1125\n", " iter 1000/1125\n", " iter 1050/1125\n", " iter 1100/1125\n", "Done. Total fwd: 107.9s, bwd: 129.4s\n" ] } ], "source": [ "print(\"Running WITHOUT warm start...\")\n", "df_no_ws = run_training(warm_start=False)\n", "df_no_ws[\"condition\"] = \"No Warm Start\"\n", "print(f\"Done. Total fwd: {df_no_ws['accum_fwd_time'].iloc[-1]:.1f}s, bwd: {df_no_ws['accum_bwd_time'].iloc[-1]:.1f}s\")" ] }, { "cell_type": "code", "execution_count": 11, "id": "b193d10e", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABuYAAAHSCAYAAAAQQ333AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd1xV9f8H8Ne9bGSIioqCG3CiIuLKvcvK0txmucqZqxx9rWyZZe6VO1da7r03ijKVJS5QQESQvS/3nt8f/O7xXrgsGZcLr+fj0SM5637O547z/myJIAgCiIiIiIiIiIiIiIiIiKhUSbWdACIiIiIiIiIiIiIiIqLKgA1zRERERERERERERERERGWADXNEREREREREREREREREZYANc0RERERERERERERERERlgA1zRERERERERERERERERGWADXNEREREREREREREREREZYANc0RERERERERERERERERlgA1zRERERERERERERERERGWADXNEREREREREREREREREZYANc0RUaIcPH4ajoyN69eql7aSUGkdHRzg6OuLOnTvaTgoVwp07d8T3rCyNHTsWjo6OWLt2bZm+LhERlQ+MiSqmynjPBdFGzKOt+I6IiKg4+PwioqLQ13YCiIoiISEBXbt2RUZGBgDg3LlzaNCggXYTRcUWHh6OI0eOAABmzJih5dS8vcIGX9OnT9fp+9R1Y8eOxd27d9/q3I8++gi//fZbCaeIiKjoGBNVTBU9JtLT04O5uTkaN26M3r17Y+TIkTA1NS3j1FFpunPnDj799NO3Pv/SpUslmBoiIqpoitPotXTpUnz88cclmJryQ/X5u2vXLnTo0EHLKSKigrBhjnTKiRMnxAooADh06BDmzp2rxRRRSYiIiMC6desA6HYllJKpqWm+lUysgNIuS0tL1KhRI9d2mUyGhIQE8RgDA4Ncx5iZmQEAbGxs0LBhQ1hZWZVuYomI8sCYqGKq6DFRamoq4uPj4eXlBS8vL+zbtw9///03bG1ttZhKKkkGBgYa4ywgu0OBTCaDgYEBLC0tNR6jp6cHExMTNGzYsDSTSUREOiqvZ0xqaipSU1PzPcbY2LjU0gWAzy8iKhI2zJFOOXjwIIDsES+7d+/GkSNHMGvWLOjp6Wk5ZURvjB8/vkJUplVUygrPnFR7mK1duzbfHma///57qaSNiKiwGBOR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evRojfHK1KlT0aJFC9y5cwdPnjxBTEwMUlNTUb16dTRt2hTvvfceBg8erFanNGzYMNSqVQt37tzBw4cP8erVKyQnJ8PS0hJNmjRBv379MGLECLWReUQVmUR4mzlaiIiIiIiIiIiIiIiIiKhIuMYcERERERERERERERERURlgwxwRERERERERERERERFRGWDDHBEREREREREREREREVEZYMMcERERERERERERERERURlgwxwRERERERERERERERFRGWDDHBEREREREREREREREVEZ0Nd2Akidn58fZDIZpFIpjIyMtJ0cIiKiCiMjIwMKhQIGBgZo1aqVtpNDJYSxExERUelg7FQxMXYiIiIqHUWJndgwV87IZDIIggC5XI7U1FRtJ4eIiKjCkclk2k4ClSDGTkRERKWLsVPFwtiJiIiodBUmdmLDXDkjlUohl8shkUhgYmJS7OsJgoC0tDQAgImJCSQSSbGvSYXH/Ncu5r/2MO+1i/mvWVpaGgRBgFTKmbwrEsZOFQvzX7uY/9rDvNcu5r9mjJ0qJsZOFQvzX7uY/9rDvNcu5r9mRYmd2DBXzhgZGSE1NRUmJiZo1qxZsa8nl8vh6+sLAHB0dISenl6xr0mFx/zXLua/9jDvtYv5r1lQUBBSU1M5ZU8Fw9ipYmH+axfzX3uY99rF/NeMsVPFxNipYmH+axfzX3uY99rF/NesKLETuz0RERERERERERERERERlQE2zBERERERERERERERERGVATbMEREREREREREREREREZUBNswRERERERERERERERERlQE2zBERERERERERERERERGVATbMEREREREREREREREREZUBNswRERERERERERERERERlQF9bSeASpYgCBAEQfxboVCo/VsikWgjWZUW81+7dDX/JRKJzqSViEjXMXYqX5j/2qWr+c/YiYiIiMqDnGULKj26GrdWFBU5/8uqbMGGOR0nCAKSkpKQmJiI1NRUyOXyXPuVHj16VKG+JLqA+a9dupz/enp6MDU1hYWFBczNzXUq7URE5Rljp/KN+a9dupz/jJ2IiIiorKnGTo8fP1ZrrKDSpctxa0VQ0fO/LMoWbJjTYQqFAi9fvkRCQkKex0gkEhgbG4v/prLF/NcuXc5/uVyOpKQkJCUloWrVqqhVqxakUs4+TERUHIydyj/mv3bpcv4zdiIiIqKy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5fvgCos/ZT9zFaUio0KULmoomulq1GSVVE1WRtWWyWSq8z8GLBaL/sDwIc2/b2n+fUdz71ua/+Oae31yX1PsJHVN8+9bmn/f0dz7lub/uOYWO9XHIqIzOWZAQECl/U7cXtN960pdLmpSYtt3NP++pfn3Hc29b2n+q3Ymi5qUmKtG27ZtAUhPT8fhcFS5+ungwYNefUVERER+rRQ7iYiISGNWH4uIwsLCanzMir4AISEhmM1m3G53tfsahuEpYXnivnVFi5qaH82/b2n+fUdz71ua/+POZFGTuR7H0aR17doVm82G3W4nJSWlyj5r164FoE+fPg04MhEREZHGR7GTiIiINGYnLyKqypkuImrXrh0ABw4cqLZPVcf08/MjMTHRa/vJDh8+7BlnxXlERESkeVBirhohISGcd955AMyZM6fS9v3797NixQoAxo0b16BjExEREWlsFDuJiIhIY1Yfi4h69+4NQGpqKkeOHDmjY1a8XrNmTZX7VbTHx8cTH3/q5wSJiIhI06LE3CncddddmEwmPv/8cz788EMMwwAgMzOTBx54ALfbzZgxY+jSpYuPRyoiIiLie4qdREREpLGqj0VE7dq1Izk5GYAPP/yw0vbly5dz4MABbDYbo0eP9to2duxYAObNm1dlOcuKMWpBk4iISPOjxNwp9OrVi0ceeQSAxx9/nJEjRzJx4kRGjx7Nli1baNeuHX//+999PEoRERGRxkGxk4iIiDRmtV1ENGrUKEaNGsW8efMqHfOee+4B4I033mDx4sWe9r179/Loo48CcP311xMVFeW135gxY+jcuTMFBQU8+OCDFBQUAOByuXjppZdYvXo1gYGBTJkype4mQERERBoFq68H0NhNnjyZzp0789Zbb5GSkkJ2djaJiYmMGzeO2267jeDgYF8PUURERKTRUOwkIiIijVXFIqKnn36axx9/nOnTpxMZGcnu3bux2+3VLiJKS0sDoLi4uNK2sWPH8tvf/pZ33nmHO++8k6SkJIKCgti1axcul4v+/fszderUSvuZzWZeeuklbrjhBn744QeGDx9Ou3btyMjIIDs7G5vNxjPPPEOLFi3qfiJERETEp5SYq4EhQ4YwZMgQXw9DREREpElQ7CQiIiKNVX0sIvrzn/9M3759mTVrFtu2bSMzM5MOHTpw2WWXMXnyZGw2W5X7tWvXji+++ILp06ezZMkSdu7cSVhYGGPHjuWOO+6gW7duZ3u5IiIi0ggpMSciIiIiIiIiIr8aZ7qIaMeOHaftc9FFF3HRRRed8VhiYmJ47LHHeOyxx854XxEREWma9Iw5ERERERERERERERERkQagxJyIiIiIiIiIiIiIiIhIA1BiTkRERERERERERERERKQBmAzDMHw9CDluw4YNuFwuTCYTgYGBZ308wzAoKSkBIDAwEJPJdNbHlJrT/PuW5t93NPe+pfmvWklJCYZhYLFY6NOnj6+HI3VEsVPzovn3Lc2/72jufUvzXzXFTs2TYqfmRfPvW5p/39Hc+5bmv2pnEjtZG2ZIUlNutxsof3MXFxfX6bEr/rOIb2j+fUvz7zuae9/S/FdW8btWmgfFTs2X5t+3NP++o7n3Lc1/ZYqdmhfFTs2X5t+3NP++o7n3Lc1/ZTWJnZSYa2RsNhsOhwOz2Yy/v7+vhyMiItJslJWV4Xa7sdlsvh6K1CHFTiIiIvVDsVPzpNhJRESkfpxJ7KRSliIiIiIiIiIiIiIiIiINwOzrAYiIiIiIiIiIiIiIiIj8GigxJyIiIiIiIiIiIiIiItIAlJgTERERERERERERERERaQBKzImIiIiIiIiIiIiIiIg0ACXmRERERERERERERERERBqAEnMiIiIiIiIiIiIiIiIiDUCJOREREREREREREREREZEGoMSciIiIiIiIiIiIiIiISANQYk5ERERERERERERERESkASgxJyIiIiIiIiIiIiIiItIAlJgTERERERERERERERERaQBKzImIiIiIiIiIiIiIiIg0ACXmRERERERERERERERERBqAEnMiIiIiIiIiIiIiIiIiDUCJOREREREREREREREREZEGYPX1AKT+rFixghkzZrBx40aKi4tJTExk3Lhx3HbbbQQFBfl6eI2aYRisX7+exYsXs3btWvbu3UthYSGhoaF069aNCRMmcOmll2IymSrt27lz51MeOyYmhmXLllW7fevWrfz3v/9l9erV5OfnExcXx8iRI7nrrruIioo662trKqZNm8Yrr7xyyj5/+9vfuO666yq1OxwO3nnnHb744gsOHjyIzWajS5cu/OY3v+HCCy885TF/7fOfmprK6NGja9R30qRJ/POf//S8HjVqFGlpaafcJyUlBX9//yq3HTp0iNdee41ly5Zx7NgxoqOjGTp0KHfe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dHQ08fHx7Nu3j+LiYmJiYpg1a1azXCFwsm3btjFhwgQAIiIiSExMxGKxcPDgQc9DPwcMGMD06dMrPfyztLSUyZMns379eiwWC506daK4uNhTk3jKlCk8/PDDVZ5X8+9t5cqV3HTTTZhMJhYuXHjKPxKeeuop3n33XUwmEy1btiQqKorS0lL27t2L0+nEbDbzwAMPcOutt1a5/9q1a7nlllsoLi4mPDycVq1akZqaSl5eHkFBQcyYMaPZ3LZ++PBhz/sbyldnFRcXY7VavWqp33LLLV7z5Yv39tmcU6SpUex0dhQ7+ZZip8ZBsVP9UOwk0jgpdjo7ip18S7FT46DYqX4odmoalJhrxpYvX85bb71FSkoKxcXFJCYmMm7cOG677TaCg4N9PbxG7dNPP+VPf/pTjfq+++67nlutf/zxRxYuXMjmzZvJzMwkNzcXm81Gq1atGDJkCDfeeCNJSUmnPN6WLVv4z3/+w5o1a8jPzycuLo6RI0dy1113ER0dfdbX1hTk5+fz/vvvs2HDBvbs2cOxY8ew2+2Eh4fTrVs3xo8fz/jx46ut+2y323n77bf58ssvOXjwIDabja5du3LjjTd6bq+ujub/uEceeYS5c+cyaNAgZs6cecq+GzZs4OuvvyYlJYX09HRyc3OxWCy0aNGCQYMGcf3119O1a9dTHuPgwYO89tprLFu2jJycHCIjIznvvPO46667arRysKlITU1l9OjRp+13zz33cO+993q1+eK9fTbnFGlqFDvVnmIn31Ls1Dgodqofip1EGi/FTrWn2Mm3FDs1Doqd6odip6ZBiTkRERERERERERERERGRBqBnzImIiIiIiIiIiIiIiIg0ACXmRERERERERERERERERBqAEnMiIiIiIiIiIiIiIiIiDUCJOREREREREREREREREZEGoMSciIiIiIiIiIiIiIiISANQYk5ERERERERERERERESkASgxJyIiIiIiIiIiIiIiItIAlJgTERERERERERERERERaQBKzImIiIiIiIiIiIiIiIg0ACXmRERERERERERERERERBqAEnMiIj72yCOP0LlzZx555BFfD0VERESk0VPsJCIiIlJzip1EGh8l5kTEJ6ZNm0bnzp3p3LmzV3tqairTpk1j2rRpPhpZ3Vm5ciXTpk3j008/9fVQREREpIlT7CQiIiJSc4qdRKQxU2JORBqVtLQ0XnnlFV555RVfD+WsrVq1ildeeYW5c+eesl9sbCzt2rUjNja2gUYmIiIizYViJxEREZGaU+wkIo2B1dcDEBH5tZs6dSpTp0719TBEREREmgTFTiIiIiI1p9hJpPHRHXMiIiIiIiIiIiIiIiIiDUB3zIlIozFq1CjS0tI8r0+uAz5x4kSefvppr7bCwkJmzZrFokWL2LdvH8XFxURHR9OvXz9uuukm+vbtW+k8qampjB49GoBFixbhdrt54403WLZsGZmZmcTFxbF48WIA8vLyWLBgAT/99BN79+7lyJEjlJSUEBMTQ79+/fjNb35Dnz59qj0+lJcWOPla/vnPfzJp0iSg/CG8c+fOrfL6KqxcuZL333+f9evXk5OTQ3BwMF26dOGyyy5jwoQJWCyWSvtMmzaNV155hUGDBjFz5kyWL1/OjBkzSElJoaioiFatWnHJJZdw66234u/vX+V5RUREpPFS7KTYSURERGpOsZNiJ5HGQok5EWk0IiMjKSwsJC8vD4CYmBiv7SEhIV6vt23bxh133EFGRgYAFouFgIAAMjIy+Oabb/j222+5//77uf3226s95/r163n88ccpLi4mMDAQm83mtf3dd9/11B23WCyeMaSnp5Oens7XX3/Nn//8Z2666SbPPhaLhZiYGIqLiykuLsZmsxEeHu513ICAgBrPyz//+U/efvttAEwmE6GhoRQUFLBixQpWrFjBF198wauvvlppfk70v//9j2effRaA0NBQHA4He/fuZdq0aaxatYoZM2ZUGWSJiIhI46XYqWqKnURERKQqip2qpthJpOEpMScijcYnn3zCypUrPcHGsmXLqu2bmZnJzTffTHZ2NhdeeCG33347nTt3xmazkZ2dzXvvvcd///tfnn/+eTp06MCYMWOqPM7jjz9Op06deOyxx+jZsycA+/bt82yPi4vjnnvuYeTIkSQnJ+Pn54dhGKSmpvLuu+8yc+ZMnn76aQYMGEC3bt0ASEhIYNmyZZ6VQ3379mXmzJm1mpP33nvPExxdc8013HvvvcTGxlJcXMycOXN45plnWLFiBY899hgvvPBClcfYvn07a9as4bbbbmPy5MlERUVRWFjIW2+9xauvvsrKlSuZO3cuV155Za3GKCIiIr6h2KkyxU4iIiJSHcVOlSl2EvENPWNORJqkF198kezsbMaPH8+0adPo0aOHZ9VRdHQ0v//97/njH/8IlN9aX53IyEhmzJjhCY4A2rVr5/m6Iijp0aMHfn5+QPnqodatW/OXv/yF66+/HpfLxfvvv1/n11haWuoZ+/jx43niiSeIjY0FICgoiMmTJ/PII48A8M0337B58+Yqj5Ofn89dd93FAw88QFRUFFC+Cuy+++7jwgsvBODrr7+u8/GLiIhI46HYSbGTiIiI1JxiJ8VOIvVJiTkRaXLKysr46quvALj11lur7Xf55ZcD5St3srKyquxzww03EBwcXOuxnH/++QCsXbu21seozrJly8jNzQXgnnvuqbLP9ddf7wmaKubkZH5+fkyZMqXKbRU1yXfs2HGWoxUREZHGSrHTcYqdRERE5HQUOx2n2EmkfqiUpYg0OZs3b6asrAyAm2++uUb7pKenV6odDtCvX7/T7nvo0CFmzZrFypUrOXjwIEVFRbjdbq8+R44cqdE4zkTFSqSEhASv1VQnslgsDB48mC+//LLalUudOnWqNgiMi4sD8NRXFxERkeZHsdNxip1ERETkdBQ7HafYSaR+KDEnIk1OZmam5+vqViSdrKSkpMr26OjoU+63cOFCHnjgAex2u6ctJCQEf39/TCYTDoeDvLw8iouLazSOM5GdnQ1AixYtTtkvPj7eq//JTrUyq+LBu06nszZDFBERkSZAsZM3xU4iIiJyKoqdvCl2Eql7SsyJSJNz4qqhlJQU/P39a30ss7n6ir45OTk88sgj2O12Bg8ezN13302vXr0ICAjw9Fm+fDmTJ0+u9flFRERE6ptiJxEREZGaU+wkIvVNiTkRaXJOLA2QlpZG+/bt6+U833//PYWFhYSHh/P6668TGBhYqc/Ro0fr5dxwfFVVRkbGKftVbD/dKiwRERH5dVLs5E2xk4iIiJyKYidvip1E6l71KXsRER84cSWRYRhV9unZsyc2mw2AJUuW1NtYKgKPdu3aVRkcQfnKpeqYTCag+us4nR49enjGsW/fvir7uFwuVq5cCZTPi4iIiPy6KHY6TrGTiIiInI5ip+MUO4n4jhJzItKohISEeL7Oz8+vsk9QUBCXXnopAG+88Qbp6emnPGZubm6txhIaGgrA/v37PQ/9PdG2bdv48ssvq92/4lqqu47TGTp0KBEREQC88sorVfaZPXu2p/b5JZdcUqvziIiISNOl2Ok4xU4iIiJyOoqdjlPsJOI7SsyJSKPStm1bz6qkjz76qNpVP/fffz9xcXHk5ORwzTXX8Nlnn1FYWOjZfuzYMebPn8/dd9/N1KlTazWWoUOHYjabyc3N5cEHH+TIkSMA2O12vvnmG6ZMmXLKB9wmJycDsHv3btatW3fG5w8ICODee+8F4KuvvuLxxx/3PHS4pKSEd999l3/+858AXHzxxZ6VTiIiIvLrodjpOMVOIiIicjqKnY5T7CTiO3rGnIg0KoGBgVx++eV8/PHHPPPMM7zyyitERkZiMpkYO3YsDz/8MABxcXG8/fbb3HXXXezfv5+HH34Ys9lMWFgYdrud4uJizzHPPffcWo2lbdu23HzzzbzxxhssWLCABQsWEBoaSmlpKQ6Hg1atWvGHP/yBBx98sMr9Bw0aRLt27di3bx/XXXcd4eHhntVMDz30EOPGjTvtGG688UYOHTrE22+/zYcffsicOXMICwujqKgIp9MJwDnnnMPf//73Wl2jiIiING2KnbwpdhIREZFTUezkTbGTiG8oMScijc5f//pXEhISmD9/PocOHfKUDMjJyfHq16FDB7788kvmzp3LggUL2LZtG3l5edhsNtq0aUPXrl0ZOnQoY8eOrfVYHnzwQTp27Mj777/Pzp07cTqdJCUlccEFF3DLLbewdevWave1Wq288847TJs2jeXLl3PkyBHy8vIAvAK40/nTn/7EyJEjmTVrFuvWrSM3N5fg4GC6dOnC5ZdfzoQJE7BYLLW+RhEREWnaFDt5U+wkIiIip6LYyZtiJ5GGZzJq+3RIEREREREREREREREREakxPWNOREREREREREREREREpAEoMSciIiIiIiIiIiIiIiLSAJSYExEREREREREREREREWkASsyJiIiIiIiIiIiIiIiINAAl5kREREREREREREREREQagBJzIiIiIiIiIiIiIiIiIg1AiTkRERERERERERERERGRBqDEnIiIiIiIiIiIiIiIiEgDUGJOREREREREREREREREpAEoMSciIiIiIiIiIiIiIiLSAJSYExEREREREREREREREWkASsyJiIiIiIiIiIiIiIiINAAl5kREREREREREREREREQagBJzIiIiIiIiIiIiIiIiIg3g/wGO/ybAuRNSYgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df = pd.concat([df_ws, df_no_ws], ignore_index=True)\n", "\n", "fig, axes = plt.subplots(1, 3, figsize=(18, 5))\n", "\n", "for cond, grp in df.groupby(\"condition\"):\n", " axes[0].plot(grp[\"iter\"], grp[\"accum_fwd_time\"], label=cond)\n", "axes[0].set_xlabel(\"Iteration\")\n", "axes[0].set_ylabel(\"Time (s)\")\n", "axes[0].set_title(\"Accumulated Forward Time\")\n", "axes[0].legend()\n", "\n", "for cond, grp in df.groupby(\"condition\"):\n", " axes[1].plot(grp[\"iter\"], grp[\"accum_bwd_time\"], label=cond)\n", "axes[1].set_xlabel(\"Iteration\")\n", "axes[1].set_ylabel(\"Time (s)\")\n", "axes[1].set_title(\"Accumulated Backward Time\")\n", "axes[1].legend()\n", "\n", "for cond, grp in df.groupby(\"condition\"):\n", " axes[2].plot(grp[\"iter\"], grp[\"train_loss\"], label=cond)\n", "axes[2].set_xlabel(\"Iteration\")\n", "axes[2].set_ylabel(\"Loss\")\n", "axes[2].set_title(\"Train Loss\")\n", "axes[2].legend()\n", "\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 12, "id": "826d2fab", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
total_fwd_timetotal_bwd_timefinal_lossmean_fwd_per_itermean_bwd_per_itertotal_time
condition
No Warm Start107.926803129.4456010.0312810.0959350.115063237.372404
Warm Start78.05095066.4617040.0592540.0693790.059077144.512654
\n", "
" ], "text/plain": [ " total_fwd_time total_bwd_time final_loss mean_fwd_per_iter \\\n", "condition \n", "No Warm Start 107.926803 129.445601 0.031281 0.095935 \n", "Warm Start 78.050950 66.461704 0.059254 0.069379 \n", "\n", " mean_bwd_per_iter total_time \n", "condition \n", "No Warm Start 0.115063 237.372404 \n", "Warm Start 0.059077 144.512654 " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "summary = df.groupby(\"condition\").agg(\n", " total_fwd_time=(\"accum_fwd_time\", \"last\"),\n", " total_bwd_time=(\"accum_bwd_time\", \"last\"),\n", " final_loss=(\"train_loss\", \"last\"),\n", " mean_fwd_per_iter=(\"fwd_time\", \"mean\"),\n", " mean_bwd_per_iter=(\"bwd_time\", \"mean\"),\n", ")\n", "summary[\"total_time\"] = summary[\"total_fwd_time\"] + summary[\"total_bwd_time\"]\n", "summary" ] }, { "cell_type": "code", "execution_count": null, "id": "32f0f1ee", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python [conda env:.conda-rl]", "language": "python", "name": "conda-env-.conda-rl-py" }, "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" } }, "nbformat": 4, "nbformat_minor": 5 }