fix(optimize ttl): manual differentiation of hitrate<1 to fix log(0) warnings

Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
This commit is contained in:
Tuan-Dat Tran
2024-12-03 15:28:52 +01:00
parent 0ea1fb5d07
commit 3787d004c1

View File

@@ -162,13 +162,19 @@
"outputs": [], "outputs": [],
"source": [ "source": [
"def optimize_ttl(optimized_hitrates, lambda_vals):\n", "def optimize_ttl(optimized_hitrates, lambda_vals):\n",
" ti_values = np.where(\n", " result = []\n",
" optimized_hitrates < 1,\n", " for i in range(len(lambda_vals)):\n",
" -1 / lambda_vals * np.log(1 - optimized_hitrates),\n", " if optimized_hitrates[i] < 1:\n",
" np.inf\n", " result.append(-1 / lambda_vals[i] * np.log(1 - optimized_hitrates[i]))\n",
" )\n", " else:\n",
" result.append(np.inf)\n",
" # ti_values = np.where(\n",
" # optimized_hitrates < 1,\n",
" # -1 / lambda_vals * np.log(1 - optimized_hitrates),\n",
" # np.inf\n",
" # )\n",
" \n", " \n",
" return ti_values" " return np.array(result)"
] ]
}, },
{ {
@@ -220,7 +226,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": 11,
"id": "a92c6772-6609-41a8-a3d1-4d640b69a864", "id": "a92c6772-6609-41a8-a3d1-4d640b69a864",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
@@ -229,139 +235,18 @@
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
"[Parallel(n_jobs=-1)]: Using backend LokyBackend with 12 concurrent workers.\n", "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 12 concurrent workers.\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", "[Parallel(n_jobs=-1)]: Done 26 tasks | elapsed: 0.7s\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"[Parallel(n_jobs=-1)]: Done 26 tasks | elapsed: 0.6s\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"[Parallel(n_jobs=-1)]: Done 1420 tasks | elapsed: 1.3s\n", "[Parallel(n_jobs=-1)]: Done 1420 tasks | elapsed: 1.3s\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", "[Parallel(n_jobs=-1)]: Done 54501 tasks | elapsed: 1.1min\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", "[Parallel(n_jobs=-1)]: Done 64152 out of 64152 | elapsed: 2.5min finished\n"
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", ]
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", },
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", {
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", "name": "stdout",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", "output_type": "stream",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", "text": [
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", "CPU times: user 54.8 s, sys: 1.33 s, total: 56.1 s\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", "Wall time: 3min 23s\n"
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n",
"/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n"
] ]
} }
], ],
@@ -387,9 +272,188 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": 19,
"id": "45d7f86f-edee-4fc5-835f-1e311ab2e411", "id": "45d7f86f-edee-4fc5-835f-1e311ab2e411",
"metadata": {}, "metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Objective</th>\n",
" <th>Optimal TTL</th>\n",
" <th>db_object_count</th>\n",
" <th>cache_size</th>\n",
" <th>c_f (Miss Cost)</th>\n",
" <th>c_delta (Refresh Cost)</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.715000</td>\n",
" <td>[-0.0, -0.0, inf, -0.0, -0.0, -0.0, -0.0, inf,...</td>\n",
" <td>10</td>\n",
" <td>1.0</td>\n",
" <td>0.1</td>\n",
" <td>0.01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.640000</td>\n",
" <td>[inf, -0.0, -0.0, -0.0, -0.0, -0.0, inf, -0.0,...</td>\n",
" <td>10</td>\n",
" <td>1.0</td>\n",
" <td>0.1</td>\n",
" <td>0.02</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.840000</td>\n",
" <td>[-0.0, -0.0, -0.0, inf, -0.0, -0.0, -0.0, inf,...</td>\n",
" <td>10</td>\n",
" <td>1.0</td>\n",
" <td>0.1</td>\n",
" <td>0.04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1.550000</td>\n",
" <td>[-0.0, -0.0, -0.0, -0.0, -0.0, inf, -0.0, -0.0...</td>\n",
" <td>10</td>\n",
" <td>1.0</td>\n",
" <td>0.1</td>\n",
" <td>0.05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2.679577</td>\n",
" <td>[0.07466480059267179, -0.0, -0.0, 0.0338036715...</td>\n",
" <td>10</td>\n",
" <td>1.0</td>\n",
" <td>0.1</td>\n",
" <td>0.07</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32719</th>\n",
" <td>8560.000000</td>\n",
" <td>[0.5493061443340548, 1.0986122886681096, 0.078...</td>\n",
" <td>500</td>\n",
" <td>500.0</td>\n",
" <td>10.0</td>\n",
" <td>15.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32720</th>\n",
" <td>11625.000000</td>\n",
" <td>[0.17328679513998632, 0.6931471805599453, 0.69...</td>\n",
" <td>500</td>\n",
" <td>500.0</td>\n",
" <td>10.0</td>\n",
" <td>20.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32721</th>\n",
" <td>21466.000000</td>\n",
" <td>[0.5108256237659907, 0.1702752079219969, 0.170...</td>\n",
" <td>500</td>\n",
" <td>500.0</td>\n",
" <td>10.0</td>\n",
" <td>25.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32722</th>\n",
" <td>15644.000000</td>\n",
" <td>[0.2231435513142097, 0.022314355131420972, 0.1...</td>\n",
" <td>500</td>\n",
" <td>500.0</td>\n",
" <td>10.0</td>\n",
" <td>50.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32723</th>\n",
" <td>15892.000000</td>\n",
" <td>[0.10536051565782628, 0.02634012891445657, 0.0...</td>\n",
" <td>500</td>\n",
" <td>500.0</td>\n",
" <td>10.0</td>\n",
" <td>100.00</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>32724 rows × 6 columns</p>\n",
"</div>"
],
"text/plain": [
" Objective Optimal TTL \\\n",
"0 0.715000 [-0.0, -0.0, inf, -0.0, -0.0, -0.0, -0.0, inf,... \n",
"1 0.640000 [inf, -0.0, -0.0, -0.0, -0.0, -0.0, inf, -0.0,... \n",
"2 0.840000 [-0.0, -0.0, -0.0, inf, -0.0, -0.0, -0.0, inf,... \n",
"3 1.550000 [-0.0, -0.0, -0.0, -0.0, -0.0, inf, -0.0, -0.0... \n",
"4 2.679577 [0.07466480059267179, -0.0, -0.0, 0.0338036715... \n",
"... ... ... \n",
"32719 8560.000000 [0.5493061443340548, 1.0986122886681096, 0.078... \n",
"32720 11625.000000 [0.17328679513998632, 0.6931471805599453, 0.69... \n",
"32721 21466.000000 [0.5108256237659907, 0.1702752079219969, 0.170... \n",
"32722 15644.000000 [0.2231435513142097, 0.022314355131420972, 0.1... \n",
"32723 15892.000000 [0.10536051565782628, 0.02634012891445657, 0.0... \n",
"\n",
" db_object_count cache_size c_f (Miss Cost) c_delta (Refresh Cost) \n",
"0 10 1.0 0.1 0.01 \n",
"1 10 1.0 0.1 0.02 \n",
"2 10 1.0 0.1 0.04 \n",
"3 10 1.0 0.1 0.05 \n",
"4 10 1.0 0.1 0.07 \n",
"... ... ... ... ... \n",
"32719 500 500.0 10.0 15.00 \n",
"32720 500 500.0 10.0 20.00 \n",
"32721 500 500.0 10.0 25.00 \n",
"32722 500 500.0 10.0 50.00 \n",
"32723 500 500.0 10.0 100.00 \n",
"\n",
"[32724 rows x 6 columns]"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"results_df"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b3dbf01b-84f8-4404-b635-381b46679876",
"metadata": {},
"outputs": [], "outputs": [],
"source": [] "source": []
} }