{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "4cd1da0e", "metadata": {}, "outputs": [ { "ename": "ImportError", "evalue": "cannot import name 'load_results' from 'synthetic_task.plot_results' (/storage/scratch1/9/zzhao628/FFOLayer/synthetic_task/plot_results.py)", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mImportError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[1], line 7\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mseaborn\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01msns\u001b[39;00m\n\u001b[1;32m 6\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mmatplotlib\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mpyplot\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mplt\u001b[39;00m\n\u001b[0;32m----> 7\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01msynthetic_task\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mplot_results\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m load_results, plot_total_loss_vs_method_by_ydim, plot_total_time_vs_method_by_ydim\n", "\u001b[0;31mImportError\u001b[0m: cannot import name 'load_results' from 'synthetic_task.plot_results' (/storage/scratch1/9/zzhao628/FFOLayer/synthetic_task/plot_results.py)" ] } ], "source": [ "%load_ext autoreload\n", "%autoreload 2\n", "import pandas as pd\n", "import numpy as np\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "from synthetic_task.plot_results import load_results, plot_total_loss_vs_method_by_ydim, plot_total_time_vs_method_by_ydim" ] }, { "cell_type": "code", "execution_count": 2, "id": "6f2b2dea", "metadata": {}, "outputs": [], "source": [ "sns.set_theme(style=\"whitegrid\", context=\"talk\")\n", "palette = sns.color_palette()" ] }, { "cell_type": "code", "execution_count": 3, "id": "f46b1dc6", "metadata": {}, "outputs": [], "source": [ "# PLOT GENERAL TASK -- SOC\n", "\n", "batch_size = 8\n", "SOC_DIR = f\"../synthetic_results_general_{batch_size}\"\n", "METHODS = [\n", " \"cvxpylayer\",\n", " \"lpgd\",\n", " \"bpqp\",\n", " \"ffocp_eq\",\n", "]\n", "METHODS_LEGEND = {\n", " \"cvxpylayer\": \"CvxpyLayer\",\n", " \"lpgd\": \"LPGD\",\n", " \"bpqp\": \"BPQP\",\n", " \"ffocp_eq\": \"FFOCP\",\n", "}\n", "\n", "METHODS_STEPS = [method+\"_steps\" for method in METHODS]\n", "\n", "method_order = [METHODS_LEGEND[m] for m in METHODS]\n", "\n", "markers = [\"o\", \"s\", \"D\", \"^\", \"v\", \"x\"]\n", "markers_dict = {method: markers[i] for i, method in enumerate(method_order)}\n", "\n", "LINEWIDTH = 1.5" ] }, { "cell_type": "code", "execution_count": 4, "id": "4570a792", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "method: cvxpylayer\n", "method: qpth\n", "method: lpgd\n", "method: bpqp\n", "method: dqp\n", "method: altdiff\n", "method: ffoqp_eq_schur\n", "method: ffocp_eq\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/storage/scratch1/9/zzhao628/FFOLayer/synthetic_task/plot_results.py:72: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", " return pd.concat(dfs, ignore_index=True, sort=False)\n" ] } ], "source": [ "df = load_results(base_dir=SOC_DIR)\n", "df = df.rename(columns=lambda c: c.strip() if isinstance(c, str) else c)\n", "df[\"method\"] = pd.Categorical(df[\"method\"], categories=method_order, ordered=True)" ] }, { "cell_type": "code", "execution_count": 5, "id": "ddf3423e", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/storage/scratch1/9/zzhao628/FFOLayer/synthetic_task/plot_results.py:113: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", " df_avg_method = df.groupby('method')[time_names].mean().reset_index()\n", "/storage/scratch1/9/zzhao628/FFOLayer/synthetic_task/plot_results.py:113: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", " df_avg_method = df.groupby('method')[time_names].mean().reset_index()\n", "/storage/scratch1/9/zzhao628/FFOLayer/synthetic_task/plot_results.py:113: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", " df_avg_method = df.groupby('method')[time_names].mean().reset_index()\n", "/storage/scratch1/9/zzhao628/FFOLayer/synthetic_task/plot_results.py:113: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", " df_avg_method = df.groupby('method')[time_names].mean().reset_index()\n", "/storage/scratch1/9/zzhao628/FFOLayer/synthetic_task/plot_results.py:113: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", " df_avg_method = df.groupby('method')[time_names].mean().reset_index()\n", "/storage/scratch1/9/zzhao628/FFOLayer/synthetic_task/plot_results.py:113: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", " df_avg_method = df.groupby('method')[time_names].mean().reset_index()\n", "/storage/scratch1/9/zzhao628/FFOLayer/synthetic_task/plot_results.py:113: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", " df_avg_method = df.groupby('method')[time_names].mean().reset_index()\n", "/storage/scratch1/9/zzhao628/FFOLayer/synthetic_task/plot_results.py:113: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", " df_avg_method = df.groupby('method')[time_names].mean().reset_index()\n", "/storage/scratch1/9/zzhao628/FFOLayer/synthetic_task/plot_results.py:113: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", " df_avg_method = df.groupby('method')[time_names].mean().reset_index()\n" ] } ], "source": [ "plot_total_time_vs_method_by_ydim(df, SOC_DIR, ('forward_time','backward_time'), tag=\"syn\")" ] }, { "cell_type": "code", "execution_count": 6, "id": "2bec5350", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "method: cvxpylayer\n", "method: lpgd\n", "method: bpqp\n", "method: ffocp_eq\n" ] } ], "source": [ "df = load_results(base_dir=SOC_DIR, methods=METHODS_STEPS)\n", "df = df.rename(columns=lambda c: c.strip() if isinstance(c, str) else c)\n", "df[\"method\"] = pd.Categorical(df[\"method\"], categories=method_order, ordered=True)" ] }, { "cell_type": "code", "execution_count": 7, "id": "d6d6b860", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1000, 200, 300, 400, 500, 600, 700, 800, 900])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df[df[\"method\"] == \"FFOCP\"].ydim.unique()" ] }, { "cell_type": "code", "execution_count": 8, "id": "759d526c", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/storage/scratch1/9/zzhao628/FFOLayer/synthetic_task/plot_results.py:131: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", " df_avg_epoch = df.groupby(['method', iteration_name])[[loss_metric_name]].mean().reset_index()\n", "/storage/scratch1/9/zzhao628/FFOLayer/synthetic_task/plot_results.py:131: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", " df_avg_epoch = df.groupby(['method', iteration_name])[[loss_metric_name]].mean().reset_index()\n", "/storage/scratch1/9/zzhao628/FFOLayer/synthetic_task/plot_results.py:131: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", " df_avg_epoch = df.groupby(['method', iteration_name])[[loss_metric_name]].mean().reset_index()\n", "/storage/scratch1/9/zzhao628/FFOLayer/synthetic_task/plot_results.py:131: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", " df_avg_epoch = df.groupby(['method', iteration_name])[[loss_metric_name]].mean().reset_index()\n", "/storage/scratch1/9/zzhao628/FFOLayer/synthetic_task/plot_results.py:131: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", " df_avg_epoch = df.groupby(['method', iteration_name])[[loss_metric_name]].mean().reset_index()\n", "/storage/scratch1/9/zzhao628/FFOLayer/synthetic_task/plot_results.py:131: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", " df_avg_epoch = df.groupby(['method', iteration_name])[[loss_metric_name]].mean().reset_index()\n", "/storage/scratch1/9/zzhao628/FFOLayer/synthetic_task/plot_results.py:131: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", " df_avg_epoch = df.groupby(['method', iteration_name])[[loss_metric_name]].mean().reset_index()\n", "/storage/scratch1/9/zzhao628/FFOLayer/synthetic_task/plot_results.py:131: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", " df_avg_epoch = df.groupby(['method', iteration_name])[[loss_metric_name]].mean().reset_index()\n", "/storage/scratch1/9/zzhao628/FFOLayer/synthetic_task/plot_results.py:131: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", " df_avg_epoch = df.groupby(['method', iteration_name])[[loss_metric_name]].mean().reset_index()\n" ] } ], "source": [ "plot_total_loss_vs_method_by_ydim(df, SOC_DIR)" ] }, { "cell_type": "code", "execution_count": 9, "id": "6b090796", "metadata": {}, "outputs": [], "source": [ "# PLOT SYNTHETIC TASK -- QP\n", "\n", "batch_size = 8\n", "QP_DIR = f\"../synthetic_results_{batch_size}\"\n", "METHODS = [\n", " \"cvxpylayer\",\n", " \"qpth\",\n", " \"lpgd\",\n", " \"bpqp\",\n", " \"ffoqp_eq_schur\",\n", " \"ffocp_eq\",\n", "]\n", "METHODS_LEGEND = {\n", " \"cvxpylayer\": \"CvxpyLayer\",\n", " \"qpth\": \"qpth\",\n", " \"lpgd\": \"LPGD\",\n", " \"bpqp\": \"BPQP\",\n", " \"ffoqp_eq_schur\": \"FFOQP\",\n", " \"ffocp_eq\": \"FFOCP\",\n", "}\n", "\n", "METHODS_STEPS = [method+\"_steps\" for method in METHODS]\n", "\n", "method_order = [METHODS_LEGEND[m] for m in METHODS]\n", "\n", "markers = [\"o\", \"s\", \"D\", \"^\", \"v\", \"x\"]\n", "markers_dict = {method: markers[i] for i, method in enumerate(method_order)}\n", "\n", "LINEWIDTH = 1.5" ] }, { "cell_type": "code", "execution_count": 10, "id": "c814b993", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "method: cvxpylayer\n", "method: qpth\n", "method: lpgd\n", "method: bpqp\n", "method: dqp\n", "method: altdiff\n", "method: ffoqp_eq_schur\n", "method: ffocp_eq\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/storage/scratch1/9/zzhao628/FFOLayer/synthetic_task/plot_results.py:72: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", " return pd.concat(dfs, ignore_index=True, sort=False)\n" ] } ], "source": [ "df = load_results(base_dir=QP_DIR)\n", "df = df.rename(columns=lambda c: c.strip() if isinstance(c, str) else c)\n", "df[\"method\"] = pd.Categorical(df[\"method\"], categories=method_order, ordered=True)" ] }, { "cell_type": "code", "execution_count": 11, "id": "0a794b66", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
| \n", " | epoch | \n", "train_ts_loss | \n", "test_ts_loss | \n", "train_df_loss | \n", "test_df_loss | \n", "forward_time | \n", "backward_time | \n", "method | \n", "seed | \n", "n | \n", "lr | \n", "ydim | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 218 | \n", "0 | \n", "2.022251 | \n", "0.0 | \n", "-0.470483 | \n", "0.0 | \n", "160.426657 | \n", "47.148969 | \n", "FFOQP | \n", "1 | \n", "NaN | \n", "0.001 | \n", "1000 | \n", "
| 219 | \n", "0 | \n", "2.019125 | \n", "0.0 | \n", "-0.470648 | \n", "0.0 | \n", "161.273411 | \n", "49.882841 | \n", "FFOQP | \n", "2 | \n", "NaN | \n", "0.001 | \n", "1000 | \n", "
| 220 | \n", "0 | \n", "2.018426 | \n", "0.0 | \n", "-0.470326 | \n", "0.0 | \n", "151.301033 | \n", "46.942996 | \n", "FFOQP | \n", "3 | \n", "NaN | \n", "0.001 | \n", "1000 | \n", "
| 221 | \n", "0 | \n", "2.024847 | \n", "0.0 | \n", "-0.470489 | \n", "0.0 | \n", "150.692197 | \n", "45.952870 | \n", "FFOQP | \n", "4 | \n", "NaN | \n", "0.001 | \n", "1000 | \n", "
| 222 | \n", "0 | \n", "2.011752 | \n", "0.0 | \n", "-0.470854 | \n", "0.0 | \n", "163.837943 | \n", "50.228734 | \n", "FFOQP | \n", "5 | \n", "NaN | \n", "0.001 | \n", "1000 | \n", "
| 223 | \n", "0 | \n", "18.086056 | \n", "0.0 | \n", "-0.470948 | \n", "0.0 | \n", "9.561901 | \n", "8.319102 | \n", "FFOQP | \n", "1 | \n", "NaN | \n", "0.001 | \n", "200 | \n", "
| 224 | \n", "0 | \n", "17.492134 | \n", "0.0 | \n", "-0.466009 | \n", "0.0 | \n", "8.994586 | \n", "7.294591 | \n", "FFOQP | \n", "2 | \n", "NaN | \n", "0.001 | \n", "200 | \n", "
| 225 | \n", "0 | \n", "17.062976 | \n", "0.0 | \n", "-0.465557 | \n", "0.0 | \n", "8.793956 | \n", "7.021729 | \n", "FFOQP | \n", "3 | \n", "NaN | \n", "0.001 | \n", "200 | \n", "
| 226 | \n", "0 | \n", "18.355709 | \n", "0.0 | \n", "-0.468976 | \n", "0.0 | \n", "8.811676 | \n", "7.122147 | \n", "FFOQP | \n", "4 | \n", "NaN | \n", "0.001 | \n", "200 | \n", "
| 227 | \n", "0 | \n", "16.960707 | \n", "0.0 | \n", "-0.466620 | \n", "0.0 | \n", "8.765207 | \n", "7.910513 | \n", "FFOQP | \n", "5 | \n", "NaN | \n", "0.001 | \n", "200 | \n", "
| 228 | \n", "0 | \n", "7.910639 | \n", "0.0 | \n", "-0.463971 | \n", "0.0 | \n", "15.473215 | \n", "4.343293 | \n", "FFOQP | \n", "1 | \n", "NaN | \n", "0.001 | \n", "300 | \n", "
| 229 | \n", "0 | \n", "7.720632 | \n", "0.0 | \n", "-0.462518 | \n", "0.0 | \n", "16.591839 | \n", "5.063000 | \n", "FFOQP | \n", "2 | \n", "NaN | \n", "0.001 | \n", "300 | \n", "
| 230 | \n", "0 | \n", "8.373011 | \n", "0.0 | \n", "-0.461273 | \n", "0.0 | \n", "15.627411 | \n", "4.612822 | \n", "FFOQP | \n", "3 | \n", "NaN | \n", "0.001 | \n", "300 | \n", "
| 231 | \n", "0 | \n", "8.756889 | \n", "0.0 | \n", "-0.462116 | \n", "0.0 | \n", "15.309109 | \n", "4.847127 | \n", "FFOQP | \n", "4 | \n", "NaN | \n", "0.001 | \n", "300 | \n", "
| 232 | \n", "0 | \n", "9.262113 | \n", "0.0 | \n", "-0.460296 | \n", "0.0 | \n", "15.563855 | \n", "4.895429 | \n", "FFOQP | \n", "5 | \n", "NaN | \n", "0.001 | \n", "300 | \n", "
| 233 | \n", "0 | \n", "1.976473 | \n", "0.0 | \n", "-0.470650 | \n", "0.0 | \n", "28.344851 | \n", "13.864420 | \n", "FFOQP | \n", "1 | \n", "NaN | \n", "0.001 | \n", "400 | \n", "
| 234 | \n", "0 | \n", "1.971683 | \n", "0.0 | \n", "-0.469227 | \n", "0.0 | \n", "30.470888 | \n", "16.627100 | \n", "FFOQP | \n", "2 | \n", "NaN | \n", "0.001 | \n", "400 | \n", "
| 235 | \n", "0 | \n", "1.987989 | \n", "0.0 | \n", "-0.470447 | \n", "0.0 | \n", "28.641650 | \n", "12.223557 | \n", "FFOQP | \n", "3 | \n", "NaN | \n", "0.001 | \n", "400 | \n", "
| 236 | \n", "0 | \n", "1.993113 | \n", "0.0 | \n", "-0.471174 | \n", "0.0 | \n", "28.080737 | \n", "13.041409 | \n", "FFOQP | \n", "4 | \n", "NaN | \n", "0.001 | \n", "400 | \n", "
| 237 | \n", "0 | \n", "1.988667 | \n", "0.0 | \n", "-0.470190 | \n", "0.0 | \n", "30.149175 | \n", "13.199767 | \n", "FFOQP | \n", "5 | \n", "NaN | \n", "0.001 | \n", "400 | \n", "
| 238 | \n", "0 | \n", "1.970201 | \n", "0.0 | \n", "-0.471296 | \n", "0.0 | \n", "44.830483 | \n", "19.222894 | \n", "FFOQP | \n", "1 | \n", "NaN | \n", "0.001 | \n", "500 | \n", "
| 239 | \n", "0 | \n", "1.957739 | \n", "0.0 | \n", "-0.470062 | \n", "0.0 | \n", "48.191841 | \n", "20.310199 | \n", "FFOQP | \n", "2 | \n", "NaN | \n", "0.001 | \n", "500 | \n", "
| 240 | \n", "0 | \n", "1.960787 | \n", "0.0 | \n", "-0.470992 | \n", "0.0 | \n", "44.687880 | \n", "20.360677 | \n", "FFOQP | \n", "3 | \n", "NaN | \n", "0.001 | \n", "500 | \n", "
| 241 | \n", "0 | \n", "1.976369 | \n", "0.0 | \n", "-0.471322 | \n", "0.0 | \n", "46.698743 | \n", "21.821569 | \n", "FFOQP | \n", "4 | \n", "NaN | \n", "0.001 | \n", "500 | \n", "
| 242 | \n", "0 | \n", "1.957962 | \n", "0.0 | \n", "-0.470786 | \n", "0.0 | \n", "44.612615 | \n", "20.620520 | \n", "FFOQP | \n", "5 | \n", "NaN | \n", "0.001 | \n", "500 | \n", "
| 243 | \n", "0 | \n", "1.947446 | \n", "0.0 | \n", "-0.470626 | \n", "0.0 | \n", "67.971698 | \n", "24.638906 | \n", "FFOQP | \n", "1 | \n", "NaN | \n", "0.001 | \n", "600 | \n", "
| 244 | \n", "0 | \n", "1.960718 | \n", "0.0 | \n", "-0.469574 | \n", "0.0 | \n", "67.806608 | \n", "23.998150 | \n", "FFOQP | \n", "2 | \n", "NaN | \n", "0.001 | \n", "600 | \n", "
| 245 | \n", "0 | \n", "1.935937 | \n", "0.0 | \n", "-0.470184 | \n", "0.0 | \n", "63.133151 | \n", "21.821224 | \n", "FFOQP | \n", "3 | \n", "NaN | \n", "0.001 | \n", "600 | \n", "
| 246 | \n", "0 | \n", "1.986730 | \n", "0.0 | \n", "-0.470721 | \n", "0.0 | \n", "63.235822 | \n", "21.500700 | \n", "FFOQP | \n", "4 | \n", "NaN | \n", "0.001 | \n", "600 | \n", "
| 247 | \n", "0 | \n", "1.973213 | \n", "0.0 | \n", "-0.470833 | \n", "0.0 | \n", "62.842411 | \n", "21.902497 | \n", "FFOQP | \n", "5 | \n", "NaN | \n", "0.001 | \n", "600 | \n", "
| 248 | \n", "0 | \n", "1.950182 | \n", "0.0 | \n", "-0.470108 | \n", "0.0 | \n", "89.667691 | \n", "28.040715 | \n", "FFOQP | \n", "1 | \n", "NaN | \n", "0.001 | \n", "700 | \n", "
| 249 | \n", "0 | \n", "1.962221 | \n", "0.0 | \n", "-0.470679 | \n", "0.0 | \n", "89.291832 | \n", "28.281360 | \n", "FFOQP | \n", "2 | \n", "NaN | \n", "0.001 | \n", "700 | \n", "
| 250 | \n", "0 | \n", "1.986353 | \n", "0.0 | \n", "-0.470412 | \n", "0.0 | \n", "83.464025 | \n", "25.982363 | \n", "FFOQP | \n", "3 | \n", "NaN | \n", "0.001 | \n", "700 | \n", "
| 251 | \n", "0 | \n", "1.942756 | \n", "0.0 | \n", "-0.471399 | \n", "0.0 | \n", "83.403342 | \n", "25.534204 | \n", "FFOQP | \n", "4 | \n", "NaN | \n", "0.001 | \n", "700 | \n", "
| 252 | \n", "0 | \n", "1.965501 | \n", "0.0 | \n", "-0.470732 | \n", "0.0 | \n", "90.882168 | \n", "28.472410 | \n", "FFOQP | \n", "5 | \n", "NaN | \n", "0.001 | \n", "700 | \n", "
| 253 | \n", "0 | \n", "1.991679 | \n", "0.0 | \n", "-0.470643 | \n", "0.0 | \n", "112.125398 | \n", "32.842195 | \n", "FFOQP | \n", "1 | \n", "NaN | \n", "0.001 | \n", "800 | \n", "
| 254 | \n", "0 | \n", "1.992535 | \n", "0.0 | \n", "-0.470451 | \n", "0.0 | \n", "111.933063 | \n", "30.916547 | \n", "FFOQP | \n", "2 | \n", "NaN | \n", "0.001 | \n", "800 | \n", "
| 255 | \n", "0 | \n", "1.995589 | \n", "0.0 | \n", "-0.471153 | \n", "0.0 | \n", "104.510260 | \n", "29.248914 | \n", "FFOQP | \n", "3 | \n", "NaN | \n", "0.001 | \n", "800 | \n", "
| 256 | \n", "0 | \n", "1.973228 | \n", "0.0 | \n", "-0.471012 | \n", "0.0 | \n", "113.234818 | \n", "33.905232 | \n", "FFOQP | \n", "4 | \n", "NaN | \n", "0.001 | \n", "800 | \n", "
| 257 | \n", "0 | \n", "1.971448 | \n", "0.0 | \n", "-0.470499 | \n", "0.0 | \n", "104.135090 | \n", "29.432138 | \n", "FFOQP | \n", "5 | \n", "NaN | \n", "0.001 | \n", "800 | \n", "
| 258 | \n", "0 | \n", "2.008492 | \n", "0.0 | \n", "-0.470659 | \n", "0.0 | \n", "135.493692 | \n", "39.999884 | \n", "FFOQP | \n", "1 | \n", "NaN | \n", "0.001 | \n", "900 | \n", "
| 259 | \n", "0 | \n", "2.000070 | \n", "0.0 | \n", "-0.470868 | \n", "0.0 | \n", "135.584150 | \n", "40.511247 | \n", "FFOQP | \n", "2 | \n", "NaN | \n", "0.001 | \n", "900 | \n", "
| 260 | \n", "0 | \n", "1.998534 | \n", "0.0 | \n", "-0.470715 | \n", "0.0 | \n", "128.411756 | \n", "39.518944 | \n", "FFOQP | \n", "3 | \n", "NaN | \n", "0.001 | \n", "900 | \n", "
| 261 | \n", "0 | \n", "2.005839 | \n", "0.0 | \n", "-0.470960 | \n", "0.0 | \n", "138.161500 | \n", "43.510129 | \n", "FFOQP | \n", "4 | \n", "NaN | \n", "0.001 | \n", "900 | \n", "
| 262 | \n", "0 | \n", "2.007123 | \n", "0.0 | \n", "-0.471161 | \n", "0.0 | \n", "126.561301 | \n", "36.456376 | \n", "FFOQP | \n", "5 | \n", "NaN | \n", "0.001 | \n", "900 | \n", "
| \n", " | iter | \n", "train_loss | \n", "iter_forward_time | \n", "iter_backward_time | \n", "train_error | \n", "accum_forward_time | \n", "accum_backward_time | \n", "method | \n", "seed | \n", "n | \n", "lr | \n", "ydim | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "0 | \n", "2.605954 | \n", "4.708985 | \n", "2.289706 | \n", "8 | \n", "4.708984 | \n", "2.289705 | \n", "CvxpyLayer | \n", "1 | \n", "3 | \n", "0.1 | \n", "NaN | \n", "
| 1 | \n", "1 | \n", "2.201373 | \n", "4.385878 | \n", "2.476911 | \n", "16 | \n", "9.094862 | \n", "4.766614 | \n", "CvxpyLayer | \n", "1 | \n", "3 | \n", "0.1 | \n", "NaN | \n", "
| 2 | \n", "2 | \n", "1.801957 | \n", "4.372341 | \n", "2.948150 | \n", "24 | \n", "13.467202 | \n", "7.714763 | \n", "CvxpyLayer | \n", "1 | \n", "3 | \n", "0.1 | \n", "NaN | \n", "
| 3 | \n", "3 | \n", "1.513816 | \n", "4.412591 | \n", "3.462216 | \n", "32 | \n", "17.879792 | \n", "11.176978 | \n", "CvxpyLayer | \n", "1 | \n", "3 | \n", "0.1 | \n", "NaN | \n", "
| 4 | \n", "4 | \n", "1.265860 | \n", "4.484686 | \n", "3.725754 | \n", "40 | \n", "22.364477 | \n", "14.902731 | \n", "CvxpyLayer | \n", "1 | \n", "3 | \n", "0.1 | \n", "NaN | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 16870 | \n", "1120 | \n", "0.074110 | \n", "2.439288 | \n", "0.984803 | \n", "8968 | \n", "3027.475620 | \n", "1157.433677 | \n", "FFOCP | \n", "3 | \n", "3 | \n", "0.1 | \n", "NaN | \n", "
| 16871 | \n", "1121 | \n", "0.069706 | \n", "2.249110 | \n", "1.029932 | \n", "8976 | \n", "3029.724729 | \n", "1158.463607 | \n", "FFOCP | \n", "3 | \n", "3 | \n", "0.1 | \n", "NaN | \n", "
| 16872 | \n", "1122 | \n", "0.071256 | \n", "2.232997 | \n", "1.034254 | \n", "8984 | \n", "3031.957725 | \n", "1159.497859 | \n", "FFOCP | \n", "3 | \n", "3 | \n", "0.1 | \n", "NaN | \n", "
| 16873 | \n", "1123 | \n", "0.070865 | \n", "2.432675 | \n", "1.013765 | \n", "8992 | \n", "3034.390399 | \n", "1160.511622 | \n", "FFOCP | \n", "3 | \n", "3 | \n", "0.1 | \n", "NaN | \n", "
| 16874 | \n", "1124 | \n", "0.069341 | \n", "2.938302 | \n", "0.992082 | \n", "9000 | \n", "3037.328700 | \n", "1161.503702 | \n", "FFOCP | \n", "3 | \n", "3 | \n", "0.1 | \n", "NaN | \n", "
16875 rows × 12 columns
\n", "