From 8818a2b17b3289583f853e7bea8d4a731ee65d77 Mon Sep 17 00:00:00 2001 From: wassname Date: Tue, 22 Nov 2022 16:58:41 +0800 Subject: [PATCH] misc --- models/DeepTIMe3.py | 10 +- scratch-run_exp.ipynb | 204 ++++++++++++++++-------------------- scratch-single-stocks.ipynb | 137 +++++++++++++++++++++++- 3 files changed, 229 insertions(+), 122 deletions(-) diff --git a/models/DeepTIMe3.py b/models/DeepTIMe3.py index becc170..deafa66 100644 --- a/models/DeepTIMe3.py +++ b/models/DeepTIMe3.py @@ -32,6 +32,7 @@ class DeepTIMe3(nn.Module): # nf=32, depth=6, nf=17, depth=3, bn=True, + dilation=6, ks=[39, 19, 3], coord=True, fc_dropout=dropout, ) @@ -57,17 +58,18 @@ class DeepTIMe3(nn.Module): representation = decode(h_past, coords) i = length of past, so we can offset the coords """ + + # we summarize the past into a single hidden layer. Then repeat it for each coordinate + past_len = time.shape[1] encoded_x = self.encoder(past_x.transpose(2, 1)) + encoded_x = repeat(encoded_x, "b f -> b t f", t=past_len) # relative coordinates are the same for each batch, so we make them once and repeat them - past_len = time.shape[1] - encoded_x = repeat(encoded_x, "b f -> b t f", t=past_len) coords = self.get_coords(past_len).to(time.device) + offset coords = repeat(coords, "1 t 1 -> b t 1", b=time.shape[0]) - + # combine and run INR to decode the representation context_input = torch.cat([encoded_x, coords, time], dim=-1) - context_repr = self.inr(context_input) return context_repr diff --git a/scratch-run_exp.ipynb b/scratch-run_exp.ipynb index 50fea03..dcc04a0 100644 --- a/scratch-run_exp.ipynb +++ b/scratch-run_exp.ipynb @@ -21,8 +21,8 @@ "id": "7f9e3d73", "metadata": { "ExecuteTime": { - "end_time": "2022-11-22T08:32:51.601212Z", - "start_time": "2022-11-22T08:32:51.590095Z" + "end_time": "2022-11-22T08:53:36.551710Z", + "start_time": "2022-11-22T08:53:36.541855Z" } }, "outputs": [], @@ -41,8 +41,8 @@ "id": "4e09086b", "metadata": { "ExecuteTime": { - "end_time": "2022-11-22T08:32:52.773863Z", - "start_time": "2022-11-22T08:32:51.602648Z" + "end_time": "2022-11-22T08:53:37.734688Z", + "start_time": "2022-11-22T08:53:36.553157Z" }, "lines_to_next_cell": 0 }, @@ -101,12 +101,12 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 11, "id": "04499bef", "metadata": { "ExecuteTime": { - "end_time": "2022-11-22T08:32:52.793863Z", - "start_time": "2022-11-22T08:32:52.776011Z" + "end_time": "2022-11-22T08:55:17.435474Z", + "start_time": "2022-11-22T08:55:17.366558Z" } }, "outputs": [], @@ -129,9 +129,10 @@ "\n", " b = train_set[i]\n", " b = [bb[None, :] for bb in b]\n", - " x, y, x_time, y_time = map(to_tensor, b)\n", + " b2 = list(map(to_tensor, b))\n", + " context_past_x, context_y, query_past_x, query_y, context_time, query_time = b2\n", " with torch.no_grad():\n", - " forecast = model(x, x_time, y_time)\n", + " forecast = model(*b2)\n", "\n", " if title is None:\n", " title = str(save_path).split('/')[-3:]\n", @@ -159,12 +160,12 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 22, "id": "768530be", "metadata": { "ExecuteTime": { - "end_time": "2022-11-22T08:32:52.819217Z", - "start_time": "2022-11-22T08:32:52.794951Z" + "end_time": "2022-11-22T08:57:21.879818Z", + "start_time": "2022-11-22T08:57:21.861767Z" } }, "outputs": [], @@ -190,21 +191,21 @@ "\n", " b = train_set[i]\n", " b = [bb[None, :] for bb in b]\n", + " b2 = list(map(to_tensor, b))\n", " \n", - " b = next(iter(train_loader))\n", - " print([s.shape for s in b])\n", + "# b = next(iter(train_loader))\n", + "# print([s.shape for s in b])\n", " \n", - " x, y, x_time, y_time = map(to_tensor, b)\n", - "# print(b)\n", + " context_past_x, context_y, query_past_x, query_y, context_time, query_time = b2\n", " with torch.no_grad():\n", - " forecast = model(x, x_time, y_time)\n", + " forecast = model(*b2)\n", " \n", " colors = list(mcolors.BASE_COLORS.keys())\n", - " l = x.shape[1]\n", + " l = context_time.shape[1]\n", " forecast2 = forecast[0].detach().cpu().numpy()\n", - " x2 = x[0].cpu()\n", - " y2 = y[0].cpu()\n", - " l2 = y.shape[1]\n", + " x2 = context_y[0].cpu()\n", + " y2 = query_y[0].cpu()\n", + " l2 = query_time.shape[1]\n", " i_past = list(range(l))\n", " i_future = list(range(l, l+l2))\n", "\n", @@ -222,12 +223,12 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 19, "id": "739ee5e3", "metadata": { "ExecuteTime": { - "end_time": "2022-11-22T08:32:52.843086Z", - "start_time": "2022-11-22T08:32:52.820267Z" + "end_time": "2022-11-22T08:56:04.650373Z", + "start_time": "2022-11-22T08:56:04.631636Z" } }, "outputs": [ @@ -235,7 +236,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[Path('storage/experiments/Stocks/96M/repeat=0/_SUCCESS'), Path('storage/experiments/Stocks/96S/repeat=0/_SUCCESS'), Path('storage/experiments/Stocks/96Splus/repeat=0/_SUCCESS'), Path('storage/experiments/Stocks/96Splusshort/repeat=0/_SUCCESS'), Path('storage/experiments/Stocks/96Sshort/repeat=0/_SUCCESS')]\n" + "[Path('storage/experiments/Stocks/96M/repeat=0/_SUCCESS'), Path('storage/experiments/Stocks/96M2S/repeat=0/_SUCCESS'), Path('storage/experiments/Stocks/96S/repeat=0/_SUCCESS'), Path('storage/experiments/Stocks/96Splus/repeat=0/_SUCCESS'), Path('storage/experiments/Stocks/96Splusshort/repeat=0/_SUCCESS'), Path('storage/experiments/Stocks/96Sshort/repeat=0/_SUCCESS')]\n" ] } ], @@ -247,12 +248,12 @@ }, { "cell_type": "code", - "execution_count": 6, - "id": "0529c377", + "execution_count": 14, + "id": "346138b5", "metadata": { "ExecuteTime": { - "end_time": "2022-11-22T08:32:52.857950Z", - "start_time": "2022-11-22T08:32:52.844134Z" + "end_time": "2022-11-22T08:55:45.864858Z", + "start_time": "2022-11-22T08:55:45.851119Z" } }, "outputs": [], @@ -262,12 +263,12 @@ }, { "cell_type": "code", - "execution_count": 7, - "id": "2ce3c75a", + "execution_count": 15, + "id": "4350db4f", "metadata": { "ExecuteTime": { - "end_time": "2022-11-22T08:32:52.879200Z", - "start_time": "2022-11-22T08:32:52.859136Z" + "end_time": "2022-11-22T08:55:46.474714Z", + "start_time": "2022-11-22T08:55:46.454494Z" } }, "outputs": [ @@ -277,7 +278,7 @@ "'deeptime3'" ] }, - "execution_count": 7, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -292,22 +293,22 @@ }, { "cell_type": "code", - "execution_count": 8, - "id": "ef1989b7", + "execution_count": 16, + "id": "f2b73437", "metadata": { "ExecuteTime": { - "end_time": "2022-11-22T08:32:52.904019Z", - "start_time": "2022-11-22T08:32:52.880345Z" + "end_time": "2022-11-22T08:55:47.115689Z", + "start_time": "2022-11-22T08:55:47.090582Z" } }, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 8, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -320,12 +321,27 @@ }, { "cell_type": "code", - "execution_count": 9, - "id": "915e5648", + "execution_count": 20, + "id": "6e8d5627", "metadata": { "ExecuteTime": { - "end_time": "2022-11-22T08:32:56.783272Z", - "start_time": "2022-11-22T08:32:52.905696Z" + "end_time": "2022-11-22T08:56:09.770735Z", + "start_time": "2022-11-22T08:56:09.752888Z" + } + }, + "outputs": [], + "source": [ + "# exp.run()" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "5623579b", + "metadata": { + "ExecuteTime": { + "end_time": "2022-11-22T08:58:27.954931Z", + "start_time": "2022-11-22T08:58:27.717272Z" } }, "outputs": [ @@ -333,90 +349,52 @@ "name": "stdout", "output_type": "stream", "text": [ - "receptive field [114 72 12]=[38 18 2]*[[1 1 1]\n", - " [1 1 1]\n", - " [1 2 4]]\n", - "129 in_feats\n", + "receptive field [114 342 362]=[38 18 2]*[[ 1 1 1]\n", + " [ 1 6 36]\n", + " [ 1 12 144]]\n", "receptive field [690 378 242]=[138 18 2]*[[ 1 1 1]\n", " [ 1 2 4]\n", " [ 1 4 16]\n", " [ 1 6 36]\n", - " [ 1 8 64]]\n", - "torch.Size([256, 96, 129])\n", - "torch.Size([256, 96, 129])\n" + " [ 1 8 64]]\n" ] }, { - "ename": "RuntimeError", - "evalue": "CUDA out of memory. Tried to allocate 24.00 MiB (GPU 0; 10.74 GiB total capacity; 8.00 GiB already allocated; 50.12 MiB free; 8.16 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF\n In call to configurable 'train' ()\n In call to configurable 'instance' ()\n In call to configurable 'run' ()", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn [9], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mexp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrun\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/gin/config.py:1605\u001b[0m, in \u001b[0;36m_make_gin_wrapper..gin_wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 1603\u001b[0m scope_info \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m in scope \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mformat(scope_str) \u001b[38;5;28;01mif\u001b[39;00m scope_str \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[1;32m 1604\u001b[0m err_str \u001b[38;5;241m=\u001b[39m err_str\u001b[38;5;241m.\u001b[39mformat(name, fn_or_cls, scope_info)\n\u001b[0;32m-> 1605\u001b[0m \u001b[43mutils\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43maugment_exception_message_and_reraise\u001b[49m\u001b[43m(\u001b[49m\u001b[43me\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43merr_str\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/gin/utils.py:41\u001b[0m, in \u001b[0;36maugment_exception_message_and_reraise\u001b[0;34m(exception, message)\u001b[0m\n\u001b[1;32m 39\u001b[0m proxy \u001b[38;5;241m=\u001b[39m ExceptionProxy()\n\u001b[1;32m 40\u001b[0m ExceptionProxy\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__qualname__\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtype\u001b[39m(exception)\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__qualname__\u001b[39m\n\u001b[0;32m---> 41\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m proxy\u001b[38;5;241m.\u001b[39mwith_traceback(exception\u001b[38;5;241m.\u001b[39m__traceback__) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;28mNone\u001b[39m\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/gin/config.py:1582\u001b[0m, in \u001b[0;36m_make_gin_wrapper..gin_wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 1579\u001b[0m new_kwargs\u001b[38;5;241m.\u001b[39mupdate(kwargs)\n\u001b[1;32m 1581\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 1582\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mnew_args\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mnew_kwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1583\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e: \u001b[38;5;66;03m# pylint: disable=broad-except\u001b[39;00m\n\u001b[1;32m 1584\u001b[0m err_str \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m'\u001b[39m\n", - "File \u001b[0;32m/media/wassname/SGIronWolf/projects5/investing/DeepTime/experiments/base.py:96\u001b[0m, in \u001b[0;36mExperiment.run\u001b[0;34m(self, timer)\u001b[0m\n\u001b[1;32m 94\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 95\u001b[0m Path(running_flag)\u001b[38;5;241m.\u001b[39munlink()\n\u001b[0;32m---> 96\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m e\n\u001b[1;32m 97\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyboardInterrupt\u001b[39;00m:\n\u001b[1;32m 98\u001b[0m Path(running_flag)\u001b[38;5;241m.\u001b[39munlink()\n", - "File \u001b[0;32m/media/wassname/SGIronWolf/projects5/investing/DeepTime/experiments/base.py:93\u001b[0m, in \u001b[0;36mExperiment.run\u001b[0;34m(self, timer)\u001b[0m\n\u001b[1;32m 90\u001b[0m Path(running_flag)\u001b[38;5;241m.\u001b[39mtouch()\n\u001b[1;32m 92\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m---> 93\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minstance\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 94\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 95\u001b[0m Path(running_flag)\u001b[38;5;241m.\u001b[39munlink()\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/gin/config.py:1605\u001b[0m, in \u001b[0;36m_make_gin_wrapper..gin_wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 1603\u001b[0m scope_info \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m in scope \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mformat(scope_str) \u001b[38;5;28;01mif\u001b[39;00m scope_str \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[1;32m 1604\u001b[0m err_str \u001b[38;5;241m=\u001b[39m err_str\u001b[38;5;241m.\u001b[39mformat(name, fn_or_cls, scope_info)\n\u001b[0;32m-> 1605\u001b[0m \u001b[43mutils\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43maugment_exception_message_and_reraise\u001b[49m\u001b[43m(\u001b[49m\u001b[43me\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43merr_str\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/gin/utils.py:41\u001b[0m, in \u001b[0;36maugment_exception_message_and_reraise\u001b[0;34m(exception, message)\u001b[0m\n\u001b[1;32m 39\u001b[0m proxy \u001b[38;5;241m=\u001b[39m ExceptionProxy()\n\u001b[1;32m 40\u001b[0m ExceptionProxy\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__qualname__\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtype\u001b[39m(exception)\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__qualname__\u001b[39m\n\u001b[0;32m---> 41\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m proxy\u001b[38;5;241m.\u001b[39mwith_traceback(exception\u001b[38;5;241m.\u001b[39m__traceback__) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;28mNone\u001b[39m\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/gin/config.py:1582\u001b[0m, in \u001b[0;36m_make_gin_wrapper..gin_wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 1579\u001b[0m new_kwargs\u001b[38;5;241m.\u001b[39mupdate(kwargs)\n\u001b[1;32m 1581\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 1582\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mnew_args\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mnew_kwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1583\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e: \u001b[38;5;66;03m# pylint: disable=broad-except\u001b[39;00m\n\u001b[1;32m 1584\u001b[0m err_str \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m'\u001b[39m\n", - "File \u001b[0;32m/media/wassname/SGIronWolf/projects5/investing/DeepTime/experiments/forecast.py:40\u001b[0m, in \u001b[0;36mForecastExperiment.instance\u001b[0;34m(self, model_type, save_vals)\u001b[0m\n\u001b[1;32m 37\u001b[0m checkpoint \u001b[38;5;241m=\u001b[39m Checkpoint(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mroot)\n\u001b[1;32m 39\u001b[0m \u001b[38;5;66;03m# train forecasting task\u001b[39;00m\n\u001b[0;32m---> 40\u001b[0m model \u001b[38;5;241m=\u001b[39m \u001b[43mtrain\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmodel\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcheckpoint\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtrain_loader\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mval_loader\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtest_loader\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 42\u001b[0m \u001b[38;5;66;03m# testing\u001b[39;00m\n\u001b[1;32m 43\u001b[0m val_metrics \u001b[38;5;241m=\u001b[39m validate(model, loader\u001b[38;5;241m=\u001b[39mval_loader, report_metrics\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/gin/config.py:1605\u001b[0m, in \u001b[0;36m_make_gin_wrapper..gin_wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 1603\u001b[0m scope_info \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m in scope \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mformat(scope_str) \u001b[38;5;28;01mif\u001b[39;00m scope_str \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[1;32m 1604\u001b[0m err_str \u001b[38;5;241m=\u001b[39m err_str\u001b[38;5;241m.\u001b[39mformat(name, fn_or_cls, scope_info)\n\u001b[0;32m-> 1605\u001b[0m \u001b[43mutils\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43maugment_exception_message_and_reraise\u001b[49m\u001b[43m(\u001b[49m\u001b[43me\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43merr_str\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/gin/utils.py:41\u001b[0m, in \u001b[0;36maugment_exception_message_and_reraise\u001b[0;34m(exception, message)\u001b[0m\n\u001b[1;32m 39\u001b[0m proxy \u001b[38;5;241m=\u001b[39m ExceptionProxy()\n\u001b[1;32m 40\u001b[0m ExceptionProxy\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__qualname__\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtype\u001b[39m(exception)\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__qualname__\u001b[39m\n\u001b[0;32m---> 41\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m proxy\u001b[38;5;241m.\u001b[39mwith_traceback(exception\u001b[38;5;241m.\u001b[39m__traceback__) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;28mNone\u001b[39m\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/gin/config.py:1582\u001b[0m, in \u001b[0;36m_make_gin_wrapper..gin_wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 1579\u001b[0m new_kwargs\u001b[38;5;241m.\u001b[39mupdate(kwargs)\n\u001b[1;32m 1581\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 1582\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mnew_args\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mnew_kwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1583\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e: \u001b[38;5;66;03m# pylint: disable=broad-except\u001b[39;00m\n\u001b[1;32m 1584\u001b[0m err_str \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m'\u001b[39m\n", - "File \u001b[0;32m/media/wassname/SGIronWolf/projects5/investing/DeepTime/experiments/forecast.py:144\u001b[0m, in \u001b[0;36mtrain\u001b[0;34m(model, checkpoint, train_loader, val_loader, test_loader, loss_name, epochs, clip)\u001b[0m\n\u001b[1;32m 142\u001b[0m data2 \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmap\u001b[39m(to_tensor, data)\n\u001b[1;32m 143\u001b[0m context_past_x, context_y, query_past_x, query_y, context_time, query_time \u001b[38;5;241m=\u001b[39m data2\n\u001b[0;32m--> 144\u001b[0m forecast \u001b[38;5;241m=\u001b[39m \u001b[43mmodel\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcontext_past_x\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcontext_y\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mquery_past_x\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcontext_time\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mquery_time\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 146\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(forecast, \u001b[38;5;28mtuple\u001b[39m):\n\u001b[1;32m 147\u001b[0m \u001b[38;5;66;03m# for models which require reconstruction + forecast loss\u001b[39;00m\n\u001b[1;32m 148\u001b[0m loss \u001b[38;5;241m=\u001b[39m training_loss_fn(forecast[\u001b[38;5;241m0\u001b[39m], context_y) \u001b[38;5;241m+\u001b[39m \\\n\u001b[1;32m 149\u001b[0m training_loss_fn(forecast[\u001b[38;5;241m1\u001b[39m], query_y)\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/torch/nn/modules/module.py:1102\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *input, **kwargs)\u001b[0m\n\u001b[1;32m 1098\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m 1099\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m 1100\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m 1101\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1102\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1103\u001b[0m \u001b[38;5;66;03m# Do not call functions when jit is used\u001b[39;00m\n\u001b[1;32m 1104\u001b[0m full_backward_hooks, non_full_backward_hooks \u001b[38;5;241m=\u001b[39m [], []\n", - "File \u001b[0;32m/media/wassname/SGIronWolf/projects5/investing/DeepTime/models/DeepTIMe3.py:77\u001b[0m, in \u001b[0;36mDeepTIMe3.forward\u001b[0;34m(self, context_past_x, context_y, query_past_x, context_time, query_time)\u001b[0m\n\u001b[1;32m 74\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, context_past_x, context_y, query_past_x, context_time, query_time) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Tensor:\n\u001b[1;32m 76\u001b[0m context_reprs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mencode_and_decode(context_past_x, context_time)\n\u001b[0;32m---> 77\u001b[0m query_reprs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mencode_and_decode\u001b[49m\u001b[43m(\u001b[49m\u001b[43mquery_past_x\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mquery_time\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moffset\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcontext_reprs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mshape\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 79\u001b[0m w, b \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39madaptive_weights(context_reprs, context_y)\n\u001b[1;32m 80\u001b[0m preds \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mforecast(query_reprs, w, b)\n", - "File \u001b[0;32m/media/wassname/SGIronWolf/projects5/investing/DeepTime/models/DeepTIMe3.py:71\u001b[0m, in \u001b[0;36mDeepTIMe3.encode_and_decode\u001b[0;34m(self, past_x, time, offset)\u001b[0m\n\u001b[1;32m 68\u001b[0m context_input \u001b[38;5;241m=\u001b[39m torch\u001b[38;5;241m.\u001b[39mcat([encoded_x, coords, time], dim\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m 70\u001b[0m \u001b[38;5;28mprint\u001b[39m(context_input\u001b[38;5;241m.\u001b[39mshape)\n\u001b[0;32m---> 71\u001b[0m context_repr \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minr\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcontext_input\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m context_repr\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/torch/nn/modules/module.py:1102\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *input, **kwargs)\u001b[0m\n\u001b[1;32m 1098\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m 1099\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m 1100\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m 1101\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1102\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1103\u001b[0m \u001b[38;5;66;03m# Do not call functions when jit is used\u001b[39;00m\n\u001b[1;32m 1104\u001b[0m full_backward_hooks, non_full_backward_hooks \u001b[38;5;241m=\u001b[39m [], []\n", - "File \u001b[0;32m/media/wassname/SGIronWolf/projects5/investing/DeepTime/models/modules/inrplus2.py:45\u001b[0m, in \u001b[0;36mINRPlus2.forward\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mn_fourier_feats\u001b[38;5;241m>\u001b[39m\u001b[38;5;241m0\u001b[39m:\n\u001b[1;32m 44\u001b[0m f \u001b[38;5;241m=\u001b[39m torch\u001b[38;5;241m.\u001b[39mconcat([f, x], \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m)\n\u001b[0;32m---> 45\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlayers\u001b[49m\u001b[43m(\u001b[49m\u001b[43mf\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpermute\u001b[49m\u001b[43m(\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m2\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39mpermute((\u001b[38;5;241m0\u001b[39m, \u001b[38;5;241m2\u001b[39m, \u001b[38;5;241m1\u001b[39m))\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/torch/nn/modules/module.py:1102\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *input, **kwargs)\u001b[0m\n\u001b[1;32m 1098\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m 1099\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m 1100\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m 1101\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1102\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1103\u001b[0m \u001b[38;5;66;03m# Do not call functions when jit is used\u001b[39;00m\n\u001b[1;32m 1104\u001b[0m full_backward_hooks, non_full_backward_hooks \u001b[38;5;241m=\u001b[39m [], []\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/torch/nn/modules/container.py:141\u001b[0m, in \u001b[0;36mSequential.forward\u001b[0;34m(self, input)\u001b[0m\n\u001b[1;32m 139\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;28minput\u001b[39m):\n\u001b[1;32m 140\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m module \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m:\n\u001b[0;32m--> 141\u001b[0m \u001b[38;5;28minput\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[43mmodule\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 142\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28minput\u001b[39m\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/torch/nn/modules/module.py:1102\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *input, **kwargs)\u001b[0m\n\u001b[1;32m 1098\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m 1099\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m 1100\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m 1101\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1102\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1103\u001b[0m \u001b[38;5;66;03m# Do not call functions when jit is used\u001b[39;00m\n\u001b[1;32m 1104\u001b[0m full_backward_hooks, non_full_backward_hooks \u001b[38;5;241m=\u001b[39m [], []\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/torch/nn/modules/container.py:141\u001b[0m, in \u001b[0;36mSequential.forward\u001b[0;34m(self, input)\u001b[0m\n\u001b[1;32m 139\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;28minput\u001b[39m):\n\u001b[1;32m 140\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m module \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m:\n\u001b[0;32m--> 141\u001b[0m \u001b[38;5;28minput\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[43mmodule\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 142\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28minput\u001b[39m\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/torch/nn/modules/module.py:1102\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *input, **kwargs)\u001b[0m\n\u001b[1;32m 1098\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m 1099\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m 1100\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m 1101\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1102\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1103\u001b[0m \u001b[38;5;66;03m# Do not call functions when jit is used\u001b[39;00m\n\u001b[1;32m 1104\u001b[0m full_backward_hooks, non_full_backward_hooks \u001b[38;5;241m=\u001b[39m [], []\n", - "File \u001b[0;32m/media/wassname/SGIronWolf/projects5/investing/DeepTime/models/modules/causalinception.py:92\u001b[0m, in \u001b[0;36mInceptionBlockPlus.forward\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 90\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdepth):\n\u001b[1;32m 91\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mkeep_prob[i] \u001b[38;5;241m>\u001b[39m random\u001b[38;5;241m.\u001b[39mrandom() \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtraining:\n\u001b[0;32m---> 92\u001b[0m x \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minception\u001b[49m\u001b[43m[\u001b[49m\u001b[43mi\u001b[49m\u001b[43m]\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 93\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mresidual \u001b[38;5;129;01mand\u001b[39;00m i \u001b[38;5;241m%\u001b[39m \u001b[38;5;241m3\u001b[39m \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m2\u001b[39m:\n\u001b[1;32m 94\u001b[0m res \u001b[38;5;241m=\u001b[39m x \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mact[i\u001b[38;5;241m/\u001b[39m\u001b[38;5;241m/\u001b[39m\u001b[38;5;241m3\u001b[39m](\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39madd(x, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mshortcut[i\u001b[38;5;241m/\u001b[39m\u001b[38;5;241m/\u001b[39m\u001b[38;5;241m3\u001b[39m](res)))\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/torch/nn/modules/module.py:1102\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *input, **kwargs)\u001b[0m\n\u001b[1;32m 1098\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m 1099\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m 1100\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m 1101\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1102\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1103\u001b[0m \u001b[38;5;66;03m# Do not call functions when jit is used\u001b[39;00m\n\u001b[1;32m 1104\u001b[0m full_backward_hooks, non_full_backward_hooks \u001b[38;5;241m=\u001b[39m [], []\n", - "File \u001b[0;32m/media/wassname/SGIronWolf/projects5/investing/DeepTime/models/modules/causalinception.py:52\u001b[0m, in \u001b[0;36mInceptionModulePlus.forward\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 50\u001b[0m input_tensor \u001b[38;5;241m=\u001b[39m x\n\u001b[1;32m 51\u001b[0m x \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbottleneck(x)\n\u001b[0;32m---> 52\u001b[0m x \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mconcat([l(x) \u001b[38;5;28;01mfor\u001b[39;00m l \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mconvs] \u001b[38;5;241m+\u001b[39m [\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmp_conv\u001b[49m\u001b[43m(\u001b[49m\u001b[43minput_tensor\u001b[49m\u001b[43m)\u001b[49m])\n\u001b[1;32m 53\u001b[0m x \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mnorm(x)\n\u001b[1;32m 54\u001b[0m x \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mconv_dropout(x)\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/torch/nn/modules/module.py:1102\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *input, **kwargs)\u001b[0m\n\u001b[1;32m 1098\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m 1099\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m 1100\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m 1101\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1102\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1103\u001b[0m \u001b[38;5;66;03m# Do not call functions when jit is used\u001b[39;00m\n\u001b[1;32m 1104\u001b[0m full_backward_hooks, non_full_backward_hooks \u001b[38;5;241m=\u001b[39m [], []\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/torch/nn/modules/container.py:141\u001b[0m, in \u001b[0;36mSequential.forward\u001b[0;34m(self, input)\u001b[0m\n\u001b[1;32m 139\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;28minput\u001b[39m):\n\u001b[1;32m 140\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m module \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m:\n\u001b[0;32m--> 141\u001b[0m \u001b[38;5;28minput\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[43mmodule\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 142\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28minput\u001b[39m\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/torch/nn/modules/module.py:1102\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *input, **kwargs)\u001b[0m\n\u001b[1;32m 1098\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m 1099\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m 1100\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m 1101\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1102\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1103\u001b[0m \u001b[38;5;66;03m# Do not call functions when jit is used\u001b[39;00m\n\u001b[1;32m 1104\u001b[0m full_backward_hooks, non_full_backward_hooks \u001b[38;5;241m=\u001b[39m [], []\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/torch/nn/modules/container.py:141\u001b[0m, in \u001b[0;36mSequential.forward\u001b[0;34m(self, input)\u001b[0m\n\u001b[1;32m 139\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;28minput\u001b[39m):\n\u001b[1;32m 140\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m module \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m:\n\u001b[0;32m--> 141\u001b[0m \u001b[38;5;28minput\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[43mmodule\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 142\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28minput\u001b[39m\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/torch/nn/modules/module.py:1102\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *input, **kwargs)\u001b[0m\n\u001b[1;32m 1098\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m 1099\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m 1100\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m 1101\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1102\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1103\u001b[0m \u001b[38;5;66;03m# Do not call functions when jit is used\u001b[39;00m\n\u001b[1;32m 1104\u001b[0m full_backward_hooks, non_full_backward_hooks \u001b[38;5;241m=\u001b[39m [], []\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/tsai/models/layers.py:148\u001b[0m, in \u001b[0;36mCausalConv1d.forward\u001b[0;34m(self, input)\u001b[0m\n\u001b[1;32m 147\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;28minput\u001b[39m):\n\u001b[0;32m--> 148\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mCausalConv1d\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mforward\u001b[49m\u001b[43m(\u001b[49m\u001b[43mF\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpad\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m__padding\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/torch/nn/modules/conv.py:301\u001b[0m, in \u001b[0;36mConv1d.forward\u001b[0;34m(self, input)\u001b[0m\n\u001b[1;32m 300\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;28minput\u001b[39m: Tensor) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Tensor:\n\u001b[0;32m--> 301\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_conv_forward\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mweight\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbias\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/torch/nn/modules/conv.py:297\u001b[0m, in \u001b[0;36mConv1d._conv_forward\u001b[0;34m(self, input, weight, bias)\u001b[0m\n\u001b[1;32m 293\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpadding_mode \u001b[38;5;241m!=\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mzeros\u001b[39m\u001b[38;5;124m'\u001b[39m:\n\u001b[1;32m 294\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m F\u001b[38;5;241m.\u001b[39mconv1d(F\u001b[38;5;241m.\u001b[39mpad(\u001b[38;5;28minput\u001b[39m, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_reversed_padding_repeated_twice, mode\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpadding_mode),\n\u001b[1;32m 295\u001b[0m weight, bias, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstride,\n\u001b[1;32m 296\u001b[0m _single(\u001b[38;5;241m0\u001b[39m), \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdilation, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mgroups)\n\u001b[0;32m--> 297\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mF\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconv1d\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mweight\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbias\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstride\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 298\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpadding\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdilation\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgroups\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/fastai/torch_core.py:378\u001b[0m, in \u001b[0;36mTensorBase.__torch_function__\u001b[0;34m(cls, func, types, args, kwargs)\u001b[0m\n\u001b[1;32m 376\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mcls\u001b[39m\u001b[38;5;241m.\u001b[39mdebug \u001b[38;5;129;01mand\u001b[39;00m func\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m (\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m__str__\u001b[39m\u001b[38;5;124m'\u001b[39m,\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m__repr__\u001b[39m\u001b[38;5;124m'\u001b[39m): \u001b[38;5;28mprint\u001b[39m(func, types, args, kwargs)\n\u001b[1;32m 377\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m _torch_handled(args, \u001b[38;5;28mcls\u001b[39m\u001b[38;5;241m.\u001b[39m_opt, func): types \u001b[38;5;241m=\u001b[39m (torch\u001b[38;5;241m.\u001b[39mTensor,)\n\u001b[0;32m--> 378\u001b[0m res \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m__torch_function__\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfunc\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtypes\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mifnone\u001b[49m\u001b[43m(\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m{\u001b[49m\u001b[43m}\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 379\u001b[0m dict_objs \u001b[38;5;241m=\u001b[39m _find_args(args) \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;28;01melse\u001b[39;00m _find_args(\u001b[38;5;28mlist\u001b[39m(kwargs\u001b[38;5;241m.\u001b[39mvalues()))\n\u001b[1;32m 380\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28missubclass\u001b[39m(\u001b[38;5;28mtype\u001b[39m(res),TensorBase) \u001b[38;5;129;01mand\u001b[39;00m dict_objs: res\u001b[38;5;241m.\u001b[39mset_meta(dict_objs[\u001b[38;5;241m0\u001b[39m],as_copy\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n", - "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/torch/_tensor.py:1051\u001b[0m, in \u001b[0;36mTensor.__torch_function__\u001b[0;34m(cls, func, types, args, kwargs)\u001b[0m\n\u001b[1;32m 1048\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mNotImplemented\u001b[39m\n\u001b[1;32m 1050\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m _C\u001b[38;5;241m.\u001b[39mDisableTorchFunction():\n\u001b[0;32m-> 1051\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1052\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m func \u001b[38;5;129;01min\u001b[39;00m get_default_nowrap_functions():\n\u001b[1;32m 1053\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ret\n", - "\u001b[0;31mRuntimeError\u001b[0m: CUDA out of memory. Tried to allocate 24.00 MiB (GPU 0; 10.74 GiB total capacity; 8.00 GiB already allocated; 50.12 MiB free; 8.16 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF\n In call to configurable 'train' ()\n In call to configurable 'instance' ()\n In call to configurable 'run' ()" - ] + "data": { + "text/plain": [ + "1" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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OOvnHjt2jIEDBxIQEMBnn31GvXr1Koztrrvu4q233mL9+vVs3bqVhQsXXtiFiog40O7d8PPPUFAAQUFw5ZUQGursqMSRHNpYd/jwYYqLiwkLCyu3PywsjO3bt1d4zu7du1m+fDkjRoxg8eLF7Nq1i7/85S8UFhYybdq0M46fPn06Tz/99EXHWpX+WUcdW/n39Mff35/ff/+db7/9lpdeeglvb2969epFUlJSuWN37NhBixYtKnyfO++8kxkzZjBs2DAaNmxY4TE5OTnEx8fj4+PDF198UalBvtHR0dSvX5/cCxmcJCLiIMXFZnzO/yaw0qwZdO2qauV1Qa3rmbTb7TRp0oR//etfeHp60qNHDw4cOMDLL79cYbIzZcoUEhISSrdzcnJKZxi5m2+//RbLsmjfvj27du3i4YcfpkOHDowZMwaAhx9+mGHDhnHllVdyzTXXsGTJEr788ktWrFhR4fvFxMRw+PBh6tevX+HrOTk5DBgwgLy8PN5///1yLWehoaF4enry1FNPkZeXx3XXXUeLFi04evQos2bNorCwkD/84Q8O+XMQEamq3Fz45Rc4dgxsNujY0dS4krrBoclOSEgInp6eZGRklNufkZFBeHh4hedERERQr149PE9JtWNiYkhPT6egoABvb+9yx/v4+ODj41P9wddC2dnZTJkyhf3799OoUSOGDh3Kc889V9qtdPPNNzNnzhymT5/OfffdR/v27fn3v//NFVdccdb3bNy48VlfW79+PatXrwagzWmd2SkpKaXjqWbPns3IkSPJyMigYcOGdO/enf/85z+0b9++Gq5aROTipKXBhg1QVAQ+PmYQcqNGzo5KapJDkx1vb2969OjBsmXLGDJkCGBabpYtW8akSZMqPOfyyy/nww8/xG634/G/krI7duwgIiLijESnrrn11lu59dZbz3nMnXfeec7Bxnv27Dnn+UePHi19fvXVV3O+ZZiuueYarrnmmnMeIyLiDJYF27ZBcrLZbtTIrIasJbfqHofPxkpISODNN99k/vz5bNu2jXvuuYfc3NzSrpeRI0cyZcqU0uPvuecesrKyuP/++9mxYwdff/01zz//PBMnTnR0qCIi4iby803Zh5JEp3Vr6NtXiU5d5fAxO8OGDePQoUNMnTqV9PR0YmNjWbJkSemg5dTU1NIWHDClDL799lseeOABunbtStOmTbn/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CFlZprWmogKe//wnvPJK2fPGjWs2PhFxLCU7IuLWiovLppq3aVN+qnlBAdx9N0yYYLqvJkwwZSFExL0o2RERt7Z7N5w4Yaaan7768erVsGCBGb8zfTr84x/OiVFEHOscNX5FRFzbqVPNO3Y8c9Bxv36wZYspCKriniLuS8mOiLit7dtNN1bDhhVPNQdT7fxcFc9FxPWpG0tE3NLRo2VTzTt1KttvWWbm1TffOCUsEXECteyIiFvassX8bNasbKp5URFMmmRmXJUcc7ZCoCLiPpTsiIjbOXDgzKnmJ07A0KGmRcdmM2vpKNERqRuU7IiIWykuhm3bzPM2bcwsLIC//tUkOn5+8NFHcNNNzotRRGqWxuyIiFtJTjatOH5+ZVPNU1LKFg187z0lOiJ1jZIdEXEbJ07Arl3m+alTzR95BPLzzfTyW25xXnwi4hxKdkTEbWzdarqxGjWCyEizz26HVq1MS89rr51ZAFRE3J+SHRFxC0eOmBpYNht06VK238MDXnwR9u8vv19E6g4lOyLi8iyrrKp58+YQEACPP162ejKY1h4RqZuU7IiIy0tNhZwcqFcPOnSAn34yta7+9CfTrSUidZtDk52srCxGjBhBYGAgwcHBjB07luPHj5/z+HvvvZf27dvj5+dH8+bNue+++8jOznZkmCLiwgoLTVkIgPbtwdsbXn3VbF9yyZn1sESk7nFosjNixAi2bNnC0qVL+eqrr/jhhx8YP378WY8/ePAgBw8eZMaMGWzevJl58+axZMkSxo4d68gwRcSF7dgBBQWm6yo62szGWrTIvPbww86MTERqC5tlWZYj3njbtm107NiRX375hZ49ewKwZMkSrrvuOvbv309kyVSJ8/j444/585//TG5uLl5e518DMScnh6CgILKzswkMDLyoaxCR2u34cVixwozZufRSCA015SBmz4brroOvv3Z2hCJSWY78/nZYy05iYiLBwcGliQ5AXFwcHh4erF69utLvU3LRZ0t08vPzycnJKfcQkbphyxaT6ISHm0QnKwveece89uCDzo1NRGoPhyU76enpNGnSpNw+Ly8vGjVqRHp6eqXe4/Dhwzz77LPn7PqaPn06QUFBpY+oqKiLiltEXENmpnl4eJgFBC0LJkyAvDyIjYVrrnF2hCJSW1Q52Xnsscew2WznfGwvGS14EXJychg8eDAdO3bkqaee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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "exp.run()" + "plot_multi(\n", + " save_paths=[\n", + " save_path,\n", + "# Path('storage/experiments/Stocks/96M/repeat=0'),\n", + " ],\n", + " i=100,\n", + ")\n", + "1" ] }, { "cell_type": "code", "execution_count": null, - "id": "66b15b6a", - "metadata": { - "ExecuteTime": { - "end_time": "2022-11-22T08:32:56.784632Z", - "start_time": "2022-11-22T08:32:56.784625Z" - } - }, - "outputs": [], - "source": [ - "%debug" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "374d6ca6", + "id": "c95b4880", "metadata": {}, "outputs": [], "source": [] diff --git a/scratch-single-stocks.ipynb b/scratch-single-stocks.ipynb index 7b0469e..26ebad9 100644 --- a/scratch-single-stocks.ipynb +++ b/scratch-single-stocks.ipynb @@ -18,7 +18,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "8f9ebcf0", + "id": "7f9e3d73", "metadata": { "ExecuteTime": { "end_time": "2022-11-22T02:31:36.717738Z", @@ -248,7 +248,7 @@ { "cell_type": "code", "execution_count": 42, - "id": "bca39ab0", + "id": "83dca123", "metadata": { "ExecuteTime": { "end_time": "2022-11-22T07:05:16.231276Z", @@ -290,6 +290,83 @@ "1" ] }, + { + "cell_type": "code", + "execution_count": 49, + "id": "cfc602db", + "metadata": { + "ExecuteTime": { + "end_time": "2022-11-22T07:08:30.855574Z", + "start_time": "2022-11-22T07:08:30.549156Z" + } + }, + "outputs": [ + { + "ename": "AttributeError", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn [49], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mplot_multi\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2\u001b[0m \u001b[43m \u001b[49m\u001b[43msave_paths\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m[\u001b[49m\n\u001b[1;32m 3\u001b[0m \u001b[43m \u001b[49m\u001b[43mPath\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mstorage/experiments/Stocks/96M/repeat=0\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4\u001b[0m \u001b[38;5;66;43;03m# Path(\"storage/experiments/Stocks/96Mplus/repeat=0\"),\u001b[39;49;00m\n\u001b[1;32m 5\u001b[0m \u001b[43m \u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 6\u001b[0m \u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m60\u001b[39;49m\n\u001b[1;32m 7\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 8\u001b[0m \u001b[38;5;241m1\u001b[39m\n", + "Cell \u001b[0;32mIn [39], line 18\u001b[0m, in \u001b[0;36mplot_multi\u001b[0;34m(save_paths, i, title, plot)\u001b[0m\n\u001b[1;32m 14\u001b[0m model\u001b[38;5;241m.\u001b[39mload_state_dict(torch\u001b[38;5;241m.\u001b[39mload(save_path\u001b[38;5;241m/\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mmodel.pth\u001b[39m\u001b[38;5;124m'\u001b[39m))\n\u001b[1;32m 15\u001b[0m model \u001b[38;5;241m=\u001b[39m model\u001b[38;5;241m.\u001b[39meval()\n\u001b[0;32m---> 18\u001b[0m b \u001b[38;5;241m=\u001b[39m \u001b[43mtrain_set\u001b[49m\u001b[43m[\u001b[49m\u001b[43mi\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 19\u001b[0m b \u001b[38;5;241m=\u001b[39m [bb[\u001b[38;5;28;01mNone\u001b[39;00m, :] \u001b[38;5;28;01mfor\u001b[39;00m bb \u001b[38;5;129;01min\u001b[39;00m b]\n\u001b[1;32m 21\u001b[0m b \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mnext\u001b[39m(\u001b[38;5;28miter\u001b[39m(train_loader))\n", + "File \u001b[0;32m/media/wassname/SGIronWolf/projects5/investing/DeepTime/data/datasets.py:145\u001b[0m, in \u001b[0;36mForecastDataset.__getitem__\u001b[0;34m(self, idx)\u001b[0m\n\u001b[1;32m 143\u001b[0m cx_start \u001b[38;5;241m=\u001b[39m idx\n\u001b[1;32m 144\u001b[0m cx_end \u001b[38;5;241m=\u001b[39m cx_start \u001b[38;5;241m+\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlookback_len\n\u001b[0;32m--> 145\u001b[0m c_start \u001b[38;5;241m=\u001b[39m cx_end \u001b[38;5;241m+\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgap\u001b[49m\n\u001b[1;32m 146\u001b[0m c_end \u001b[38;5;241m=\u001b[39m c_start \u001b[38;5;241m+\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhorizon_len\n\u001b[1;32m 148\u001b[0m qx_start \u001b[38;5;241m=\u001b[39m cx_end \u001b[38;5;241m+\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mgap\n", + "File \u001b[0;32m~/miniforge3/envs/deeptime/lib/python3.8/site-packages/torch/utils/data/dataset.py:83\u001b[0m, in \u001b[0;36mDataset.__getattr__\u001b[0;34m(self, attribute_name)\u001b[0m\n\u001b[1;32m 81\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m function\n\u001b[1;32m 82\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m---> 83\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mAttributeError\u001b[39;00m\n", + "\u001b[0;31mAttributeError\u001b[0m: " + ] + } + ], + "source": [ + "plot_multi(\n", + " save_paths=[\n", + " Path(\"storage/experiments/Stocks/96M/repeat=0\"),\n", + "# Path(\"storage/experiments/Stocks/96Mplus/repeat=0\"),\n", + " ],\n", + " i=60\n", + " )\n", + "1" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "b3b005c0", + "metadata": { + "ExecuteTime": { + "end_time": "2022-11-22T07:08:43.569996Z", + "start_time": "2022-11-22T07:08:39.011776Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> \u001b[0;32m/home/wassname/miniforge3/envs/deeptime/lib/python3.8/site-packages/torch/utils/data/dataset.py\u001b[0m(83)\u001b[0;36m__getattr__\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32m 81 \u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunction\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\u001b[0;32m 82 \u001b[0;31m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\u001b[0;32m---> 83 \u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mAttributeError\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\u001b[0;32m 84 \u001b[0;31m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\u001b[0;32m 85 \u001b[0;31m \u001b[0;34m@\u001b[0m\u001b[0mclassmethod\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\n", + "ipdb> u\n", + "> \u001b[0;32m/media/wassname/SGIronWolf/projects5/investing/DeepTime/data/datasets.py\u001b[0m(145)\u001b[0;36m__getitem__\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32m 143 \u001b[0;31m \u001b[0mcx_start\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0midx\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\u001b[0;32m 144 \u001b[0;31m \u001b[0mcx_end\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcx_start\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlookback_len\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\u001b[0;32m--> 145 \u001b[0;31m \u001b[0mc_start\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcx_end\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgap\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\u001b[0;32m 146 \u001b[0;31m \u001b[0mc_end\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mc_start\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhorizon_len\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\u001b[0;32m 147 \u001b[0;31m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\n", + "ipdb> self.gap\n", + "*** AttributeError\n", + "ipdb> q\n" + ] + } + ], + "source": [ + "%debug" + ] + }, { "cell_type": "code", "execution_count": 43, @@ -334,6 +411,56 @@ "1" ] }, + { + "cell_type": "code", + "execution_count": 44, + "id": "7486f672", + "metadata": { + "ExecuteTime": { + "end_time": "2022-11-22T07:07:06.097048Z", + "start_time": "2022-11-22T07:06:49.173386Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> \u001b[0;32m/media/wassname/SGIronWolf/projects5/investing/DeepTime/data/datasets.py\u001b[0m(105)\u001b[0;36mload_data\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32m 103 \u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata_x\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mborder1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mborder2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\u001b[0;32m 104 \u001b[0;31m \u001b[0;31m# y is just the col we predict\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\u001b[0;32m--> 105 \u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata_y\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mborder1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mborder2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtarget\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\u001b[0;32m 106 \u001b[0;31m self.timestamps = get_time_features(pd.to_datetime(df_raw.date[border1:border2].values),\n", + "\u001b[0m\u001b[0;32m 107 \u001b[0;31m \u001b[0mnormalise\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnormalise_time_features\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\n", + "ipdb> self.target\n", + "'RSMKs_18_144_72'\n", + "ipdb> data[border1:border2]\n", + "array([[-0.31080395],\n", + " [-0.30072371],\n", + " [-0.29116544],\n", + " ...,\n", + " [-0.14084614],\n", + " [-0.15264537],\n", + " [-0.16396183]])\n", + "ipdb> data\n", + "array([[ 0.08264075],\n", + " [ 0.08548946],\n", + " [ 0.08766026],\n", + " ...,\n", + " [-0.14084614],\n", + " [-0.15264537],\n", + " [-0.16396183]])\n", + "ipdb> data.shape\n", + "(53398, 1)\n", + "ipdb> q\n" + ] + } + ], + "source": [ + "%debug" + ] + }, { "cell_type": "code", "execution_count": 38, @@ -404,7 +531,7 @@ }, { "cell_type": "markdown", - "id": "69e00093", + "id": "7fee5ab7", "metadata": { "ExecuteTime": { "end_time": "2022-11-20T00:57:32.922740Z", @@ -500,7 +627,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ba05f2b0", + "id": "e8680326", "metadata": {}, "outputs": [], "source": [] @@ -508,7 +635,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6877ee38", + "id": "c20bb663", "metadata": {}, "outputs": [], "source": []