From 533df7088a5ce507b4a6e5a40f54060bf6b8b9d7 Mon Sep 17 00:00:00 2001 From: loreloc Date: Thu, 10 Oct 2024 16:44:59 +0100 Subject: [PATCH 1/9] add sketch of sos notebook --- notebooks/sum-of-squares.ipynb | 277 +++++++++++++++++++++++++++++++++ 1 file changed, 277 insertions(+) create mode 100644 notebooks/sum-of-squares.ipynb diff --git a/notebooks/sum-of-squares.ipynb b/notebooks/sum-of-squares.ipynb new file mode 100644 index 00000000..cd1c5244 --- /dev/null +++ b/notebooks/sum-of-squares.ipynb @@ -0,0 +1,277 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "7369e801-4318-4dee-b77c-5564cc99a6c4", + "metadata": {}, + "source": [ + "# Sum of Squares Circuits" + ] + }, + { + "cell_type": "markdown", + "id": "06696904-6240-4406-862e-eadad41e476b", + "metadata": {}, + "source": [ + "## Complex Squared Circuits" + ] + }, + { + "cell_type": "markdown", + "id": "08609db7-439a-48fa-9969-a4b2813c35bc", + "metadata": {}, + "source": [ + "TODO: write" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "667f60ee-5f58-4146-93cf-7675d222bd82", + "metadata": {}, + "outputs": [], + "source": [ + "from cirkit.templates import circuit_templates\n", + "from cirkit.symbolic.circuit import Circuit\n", + "\n", + "def build_symbolic_complex_circuit(region_graph: str) -> Circuit:\n", + " return circuit_templates.image_data(\n", + " (1, 28, 28), # The shape of MNIST image, i.e., (num_channels, image_height, image_width)\n", + " region_graph=region_graph,\n", + " # ----------- Input layers hyperparameters ----------- #\n", + " input_layer='embedding', # Use Embedding maps for the pixel values (0-255) as input layers\n", + " num_input_units=32, # Each input layer consists of 64 input units that output Embedding entries\n", + " input_params={ # Set how to parameterize the input layers parameters\n", + " # In this case we parameterize the 'weight' parameter of Embedding layers,\n", + " # by choosing them to be complex-valued whose real and imaginary part are sampled uniformly in [0, 1)\n", + " 'weight': circuit_templates.Parameterization(dtype='complex', initialization='uniform'),\n", + " },\n", + " # -------- Sum-product layers hyperparameters -------- #\n", + " sum_product_layer='cp-t', # Use CP-T sum-product layers, i.e., alternate hadamard product layers and dense layers\n", + " num_sum_units=32, # Each dense sum layer consists of 64 sum units\n", + " # Set how to parameterize the sum layers parameters\n", + " # We paramterize them to be complex-valued whose real and imaginary part are sampled uniformly in [0, 1)\n", + " sum_weight_param = circuit_templates.Parameterization(dtype='complex', initialization='uniform')\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "8ce05897-5107-4c6a-88d9-11146ee53a36", + "metadata": {}, + "outputs": [], + "source": [ + "symbolic_circuit = build_symbolic_complex_circuit('quad-tree-4')" + ] + }, + { + "cell_type": "markdown", + "id": "a296e080-6ec8-4fcc-99c6-3d9662813d4e", + "metadata": {}, + "source": [ + "TODO: write" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "3222cff6-4423-4c30-8964-6685be991798", + "metadata": {}, + "outputs": [], + "source": [ + "import cirkit.symbolic.functional as SF\n", + "\n", + "symbolic_circuit_partition_func = SF.integrate(\n", + " SF.multiply(symbolic_circuit, SF.conjugate(symbolic_circuit))\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "629a58ed-bcab-473f-9d14-3d7768103af3", + "metadata": {}, + "source": [ + "TODO: write" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "f46dc6a2-bf46-49a8-9dc9-d9b3c12411cd", + "metadata": {}, + "outputs": [], + "source": [ + "from cirkit.pipeline import PipelineContext, compile\n", + "\n", + "# Instantiate the pipeline context\n", + "ctx = PipelineContext(backend='torch', semiring='complex-lse-sum', fold=True, optimize=True)\n", + "\n", + "with ctx:\n", + " circuit = compile(symbolic_circuit)\n", + " circuit_partition_func = compile(symbolic_circuit_partition_func)" + ] + }, + { + "cell_type": "markdown", + "id": "2926a18a-ce50-4787-859f-22d2f4398fa5", + "metadata": {}, + "source": [ + "TODO: write" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "db0dfff6-a526-4a80-a5b8-6f89e911deee", + "metadata": {}, + "outputs": [], + "source": [ + "from torch import optim\n", + "from torch.utils.data import DataLoader\n", + "from torchvision import transforms, datasets\n", + "\n", + "# Load the MNIST data set and data loaders\n", + "transform = transforms.Compose([\n", + " transforms.ToTensor(),\n", + " # Flatten the images and set pixel values in the [0-255] range\n", + " transforms.Lambda(lambda x: (255 * x.view(-1)).long())\n", + "])\n", + "data_train = datasets.MNIST('datasets', train=True, download=True, transform=transform)\n", + "data_test = datasets.MNIST('datasets', train=False, download=True, transform=transform)\n", + "\n", + "# Instantiate the training and testing data loaders\n", + "train_dataloader = DataLoader(data_train, shuffle=True, batch_size=256)\n", + "test_dataloader = DataLoader(data_test, shuffle=False, batch_size=256)\n", + "\n", + "# Initialize a torch optimizer of your choice,\n", + "# e.g., Adam, by passing the parameters of the circuit\n", + "optimizer = optim.Adam(circuit.parameters(), lr=0.01)" + ] + }, + { + "cell_type": "markdown", + "id": "24176b6e-a495-4ce3-b627-d893507e2c35", + "metadata": {}, + "source": [ + "TODO: write" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d02c0673-a16f-4d7f-b7a0-7f8a6507fac1", + "metadata": {}, + "outputs": [], + "source": [ + "num_epochs = 5\n", + "step_idx = 0\n", + "running_loss = 0.0\n", + "\n", + "# Move the circuit to chosen device\n", + "circuit = circuit.to(device)\n", + "\n", + "for epoch_idx in range(num_epochs):\n", + " for i, (batch, _) in enumerate(train_dataloader):\n", + " # The circuit expects an input of shape (batch_dim, num_channels, num_variables),\n", + " # so we unsqueeze a dimension for the channel.\n", + " batch = batch.to(device).unsqueeze(dim=1)\n", + "\n", + " # Compute the logarithm of the squared scores of the batch, by evaluating the circuit\n", + " log_scores = circuit(batch)\n", + " log_squared_scores = 2.0 * log_scores.real\n", + " \n", + " # Compute the log-partition function\n", + " log_partition_func = circuit_partition_func().real\n", + "\n", + " # Compute the log-likelihoods\n", + " log_likelihoods = log_squared_scores - log_partition_func\n", + "\n", + " # We take the negated average log-likelihood as loss\n", + " loss = -torch.mean(log_likelihoods)\n", + " loss.backward()\n", + " # Update the parameters of the circuits, as any other model in PyTorch\n", + " optimizer.step()\n", + " optimizer.zero_grad()\n", + " running_loss += loss.detach() * len(batch)\n", + " step_idx += 1\n", + " if step_idx % 100 == 0:\n", + " print(f\"Step {step_idx}: Average NLL: {running_loss / (100 * len(batch)):.3f}\")\n", + " running_loss = 0.0" + ] + }, + { + "cell_type": "markdown", + "id": "916638d9-6176-487d-8ac9-b048c81680a9", + "metadata": {}, + "source": [ + "TODO: write" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5148696f-7721-4cae-8027-7faa0dc33515", + "metadata": {}, + "outputs": [], + "source": [ + "with torch.no_grad():\n", + " test_lls = 0.0\n", + "\n", + " for batch, _ in test_dataloader:\n", + " # The circuit expects an input of shape (batch_dim, num_channels, num_variables),\n", + " # so we unsqueeze a dimension for the channel.\n", + " batch = batch.to(device).unsqueeze(dim=1)\n", + "\n", + " # Compute the log-likelihoods of the batch\n", + " log_likelihoods = circuit(batch)\n", + "\n", + " # Accumulate the log-likelihoods\n", + " test_lls += log_likelihoods.sum().item()\n", + "\n", + " # Compute average test log-likelihood and bits per dimension\n", + " average_ll = test_lls / len(data_test)\n", + " bpd = -average_ll / (28 * 28 * np.log(2.0))\n", + " print(f\"Average test LL: {average_ll:.3f}\")\n", + " print(f\"Bits per dimension: {bpd:.3f}\")" + ] + }, + { + "cell_type": "markdown", + "id": "41d299e3-70fb-47d4-a54d-aa8e082a689a", + "metadata": {}, + "source": [ + "TODO: write" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "78fbb0e3-5cef-4277-ab05-b4789d3577a7", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 687fbddd33ba394f2d3dd9f04ea61c9ed66bc9bf Mon Sep 17 00:00:00 2001 From: loreloc Date: Thu, 10 Oct 2024 17:51:11 +0100 Subject: [PATCH 2/9] minor fix --- notebooks/sum-of-squares.ipynb | 68 +++++++++++++++++++++++++++++----- 1 file changed, 59 insertions(+), 9 deletions(-) diff --git a/notebooks/sum-of-squares.ipynb b/notebooks/sum-of-squares.ipynb index cd1c5244..3be923a5 100644 --- a/notebooks/sum-of-squares.ipynb +++ b/notebooks/sum-of-squares.ipynb @@ -26,7 +26,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 1, "id": "667f60ee-5f58-4146-93cf-7675d222bd82", "metadata": {}, "outputs": [], @@ -40,7 +40,7 @@ " region_graph=region_graph,\n", " # ----------- Input layers hyperparameters ----------- #\n", " input_layer='embedding', # Use Embedding maps for the pixel values (0-255) as input layers\n", - " num_input_units=32, # Each input layer consists of 64 input units that output Embedding entries\n", + " num_input_units=2, # Each input layer consists of 64 input units that output Embedding entries\n", " input_params={ # Set how to parameterize the input layers parameters\n", " # In this case we parameterize the 'weight' parameter of Embedding layers,\n", " # by choosing them to be complex-valued whose real and imaginary part are sampled uniformly in [0, 1)\n", @@ -48,7 +48,7 @@ " },\n", " # -------- Sum-product layers hyperparameters -------- #\n", " sum_product_layer='cp-t', # Use CP-T sum-product layers, i.e., alternate hadamard product layers and dense layers\n", - " num_sum_units=32, # Each dense sum layer consists of 64 sum units\n", + " num_sum_units=2, # Each dense sum layer consists of 64 sum units\n", " # Set how to parameterize the sum layers parameters\n", " # We paramterize them to be complex-valued whose real and imaginary part are sampled uniformly in [0, 1)\n", " sum_weight_param = circuit_templates.Parameterization(dtype='complex', initialization='uniform')\n", @@ -57,7 +57,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 2, "id": "8ce05897-5107-4c6a-88d9-11146ee53a36", "metadata": {}, "outputs": [], @@ -75,7 +75,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 7, "id": "3222cff6-4423-4c30-8964-6685be991798", "metadata": {}, "outputs": [], @@ -87,6 +87,33 @@ ")" ] }, + { + "cell_type": "markdown", + "id": "392528b4-76cc-42c2-b743-3d3de369e673", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "fffd27f7-b18d-4c47-853f-15e62cac7e64", + "metadata": {}, + "outputs": [], + "source": [ + "import random\n", + "import numpy as np\n", + "import torch\n", + "\n", + "# Set some seeds\n", + "random.seed(42)\n", + "np.random.seed(42)\n", + "torch.manual_seed(42)\n", + "torch.cuda.manual_seed(42)\n", + "\n", + "# Set the torch device to use\n", + "device = torch.device('cpu')" + ] + }, { "cell_type": "markdown", "id": "629a58ed-bcab-473f-9d14-3d7768103af3", @@ -97,7 +124,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 13, "id": "f46dc6a2-bf46-49a8-9dc9-d9b3c12411cd", "metadata": {}, "outputs": [], @@ -122,7 +149,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "db0dfff6-a526-4a80-a5b8-6f89e911deee", "metadata": {}, "outputs": [], @@ -159,10 +186,33 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "id": "d02c0673-a16f-4d7f-b7a0-7f8a6507fac1", "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "RuntimeError", + "evalue": "expected scalar type ComplexFloat but found Float", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[15], line 15\u001b[0m\n\u001b[1;32m 12\u001b[0m batch \u001b[38;5;241m=\u001b[39m batch\u001b[38;5;241m.\u001b[39mto(device)\u001b[38;5;241m.\u001b[39munsqueeze(dim\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m 14\u001b[0m \u001b[38;5;66;03m# Compute the logarithm of the squared scores of the batch, by evaluating the circuit\u001b[39;00m\n\u001b[0;32m---> 15\u001b[0m log_scores \u001b[38;5;241m=\u001b[39m \u001b[43mcircuit\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbatch\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 16\u001b[0m log_squared_scores \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m2.0\u001b[39m \u001b[38;5;241m*\u001b[39m log_scores\u001b[38;5;241m.\u001b[39mreal\n\u001b[1;32m 18\u001b[0m \u001b[38;5;66;03m# Compute the log-partition function\u001b[39;00m\n", + "File \u001b[0;32m~/Documents/cirkit/cirkit/backend/torch/circuits.py:192\u001b[0m, in \u001b[0;36mTorchCircuit.__call__\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 183\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Invoke the forward function.\u001b[39;00m\n\u001b[1;32m 184\u001b[0m \n\u001b[1;32m 185\u001b[0m \u001b[38;5;124;03mArgs:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 189\u001b[0m \u001b[38;5;124;03m Tensor: The output of the circuit, shape (B, num_out, num_cls).\u001b[39;00m\n\u001b[1;32m 190\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m \u001b[38;5;66;03m# TODO: single letter name?\u001b[39;00m\n\u001b[1;32m 191\u001b[0m \u001b[38;5;66;03m# IGNORE: Idiom for nn.Module.__call__.\u001b[39;00m\n\u001b[0;32m--> 192\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \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[38;5;21;43m__call__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/Documents/cirkit/venv/lib/python3.10/site-packages/torch/nn/modules/module.py:1532\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1530\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs) \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[1;32m 1531\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1532\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_call_impl\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", + "File \u001b[0;32m~/Documents/cirkit/venv/lib/python3.10/site-packages/torch/nn/modules/module.py:1541\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1536\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 1537\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m 1538\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_backward_pre_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\n\u001b[1;32m 1539\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m 1540\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-> 1541\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[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 1543\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 1544\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", + "File \u001b[0;32m~/Documents/cirkit/cirkit/backend/torch/circuits.py:195\u001b[0m, in \u001b[0;36mTorchCircuit.forward\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 194\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, x: Tensor) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Tensor:\n\u001b[0;32m--> 195\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_evaluate_layers\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/Documents/cirkit/cirkit/backend/torch/circuits.py:172\u001b[0m, in \u001b[0;36mAbstractTorchCircuit._evaluate_layers\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 170\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_evaluate_layers\u001b[39m(\u001b[38;5;28mself\u001b[39m, x: Tensor) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Tensor:\n\u001b[1;32m 171\u001b[0m \u001b[38;5;66;03m# Evaluate layers on the given input\u001b[39;00m\n\u001b[0;32m--> 172\u001b[0m y \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mevaluate\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# (O, B, K)\u001b[39;00m\n\u001b[1;32m 173\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m y\u001b[38;5;241m.\u001b[39mtranspose(\u001b[38;5;241m0\u001b[39m, \u001b[38;5;241m1\u001b[39m)\n", + "File \u001b[0;32m~/Documents/cirkit/cirkit/backend/torch/graph/modules.py:240\u001b[0m, in \u001b[0;36mTorchDiAcyclicGraph.evaluate\u001b[0;34m(self, x, module_fn)\u001b[0m\n\u001b[1;32m 238\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m output\n\u001b[1;32m 239\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m module_fn \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 240\u001b[0m y \u001b[38;5;241m=\u001b[39m \u001b[43mmodule\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43minputs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 241\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 242\u001b[0m y \u001b[38;5;241m=\u001b[39m module_fn(module, \u001b[38;5;241m*\u001b[39minputs)\n", + "File \u001b[0;32m~/Documents/cirkit/cirkit/backend/torch/layers/base.py:92\u001b[0m, in \u001b[0;36mTorchLayer.__call__\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 83\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Invoke the forward function.\u001b[39;00m\n\u001b[1;32m 84\u001b[0m \n\u001b[1;32m 85\u001b[0m \u001b[38;5;124;03mArgs:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 89\u001b[0m \u001b[38;5;124;03m Tensor: The output of this layer, shape (F, B, Ko).\u001b[39;00m\n\u001b[1;32m 90\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 91\u001b[0m \u001b[38;5;66;03m# IGNORE: Idiom for nn.Module.__call__.\u001b[39;00m\n\u001b[0;32m---> 92\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \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[38;5;21;43m__call__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/Documents/cirkit/venv/lib/python3.10/site-packages/torch/nn/modules/module.py:1532\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1530\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs) \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[1;32m 1531\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1532\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_call_impl\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", + "File \u001b[0;32m~/Documents/cirkit/venv/lib/python3.10/site-packages/torch/nn/modules/module.py:1541\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1536\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 1537\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m 1538\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_backward_pre_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\n\u001b[1;32m 1539\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m 1540\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-> 1541\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[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 1543\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 1544\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", + "File \u001b[0;32m~/Documents/cirkit/cirkit/backend/torch/layers/input.py:173\u001b[0m, in \u001b[0;36mTorchEmbeddingLayer.forward\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 171\u001b[0m x \u001b[38;5;241m=\u001b[39m x\u001b[38;5;241m.\u001b[39mto(torch\u001b[38;5;241m.\u001b[39mget_default_dtype())\n\u001b[1;32m 172\u001b[0m weight \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mweight()\n\u001b[0;32m--> 173\u001b[0m x \u001b[38;5;241m=\u001b[39m \u001b[43mtorch\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43meinsum\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mfcbi,fkci->fbkc\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mweight\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 174\u001b[0m x \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msemiring\u001b[38;5;241m.\u001b[39mmap_from(x, SumProductSemiring)\n\u001b[1;32m 175\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msemiring\u001b[38;5;241m.\u001b[39mprod(x, dim\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m)\n", + "File \u001b[0;32m~/Documents/cirkit/venv/lib/python3.10/site-packages/torch/functional.py:385\u001b[0m, in \u001b[0;36meinsum\u001b[0;34m(*args)\u001b[0m\n\u001b[1;32m 380\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m einsum(equation, \u001b[38;5;241m*\u001b[39m_operands)\n\u001b[1;32m 382\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(operands) \u001b[38;5;241m<\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;241m2\u001b[39m \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m opt_einsum\u001b[38;5;241m.\u001b[39menabled:\n\u001b[1;32m 383\u001b[0m \u001b[38;5;66;03m# the path for contracting 0 or 1 time(s) is already optimized\u001b[39;00m\n\u001b[1;32m 384\u001b[0m \u001b[38;5;66;03m# or the user has disabled using opt_einsum\u001b[39;00m\n\u001b[0;32m--> 385\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_VF\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43meinsum\u001b[49m\u001b[43m(\u001b[49m\u001b[43mequation\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moperands\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# type: ignore[attr-defined]\u001b[39;00m\n\u001b[1;32m 387\u001b[0m path \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 388\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m opt_einsum\u001b[38;5;241m.\u001b[39mis_available():\n", + "\u001b[0;31mRuntimeError\u001b[0m: expected scalar type ComplexFloat but found Float" + ] + } + ], "source": [ "num_epochs = 5\n", "step_idx = 0\n", From e05957aacc42f21824abe6970d0c4b0cbfabecbc Mon Sep 17 00:00:00 2001 From: loreloc Date: Thu, 10 Oct 2024 17:55:06 +0100 Subject: [PATCH 3/9] add working code for sos notebook --- notebooks/sum-of-squares.ipynb | 13327 ++++++++++++++++++++++++++++++- 1 file changed, 13303 insertions(+), 24 deletions(-) diff --git a/notebooks/sum-of-squares.ipynb b/notebooks/sum-of-squares.ipynb index 3be923a5..9fbd91ca 100644 --- a/notebooks/sum-of-squares.ipynb +++ b/notebooks/sum-of-squares.ipynb @@ -75,7 +75,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 3, "id": "3222cff6-4423-4c30-8964-6685be991798", "metadata": {}, "outputs": [], @@ -95,7 +95,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 4, "id": "fffd27f7-b18d-4c47-853f-15e62cac7e64", "metadata": {}, "outputs": [], @@ -124,7 +124,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 5, "id": "f46dc6a2-bf46-49a8-9dc9-d9b3c12411cd", "metadata": {}, "outputs": [], @@ -149,7 +149,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 6, "id": "db0dfff6-a526-4a80-a5b8-6f89e911deee", "metadata": {}, "outputs": [], @@ -186,30 +186,13309 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 8, "id": "d02c0673-a16f-4d7f-b7a0-7f8a6507fac1", "metadata": {}, "outputs": [ { - "ename": "RuntimeError", - "evalue": "expected scalar type ComplexFloat but found Float", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[15], line 15\u001b[0m\n\u001b[1;32m 12\u001b[0m batch \u001b[38;5;241m=\u001b[39m batch\u001b[38;5;241m.\u001b[39mto(device)\u001b[38;5;241m.\u001b[39munsqueeze(dim\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m 14\u001b[0m \u001b[38;5;66;03m# Compute the logarithm of the squared scores of the batch, by evaluating the circuit\u001b[39;00m\n\u001b[0;32m---> 15\u001b[0m log_scores \u001b[38;5;241m=\u001b[39m \u001b[43mcircuit\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbatch\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 16\u001b[0m log_squared_scores \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m2.0\u001b[39m \u001b[38;5;241m*\u001b[39m log_scores\u001b[38;5;241m.\u001b[39mreal\n\u001b[1;32m 18\u001b[0m \u001b[38;5;66;03m# Compute the log-partition function\u001b[39;00m\n", - "File \u001b[0;32m~/Documents/cirkit/cirkit/backend/torch/circuits.py:192\u001b[0m, in \u001b[0;36mTorchCircuit.__call__\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 183\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Invoke the forward function.\u001b[39;00m\n\u001b[1;32m 184\u001b[0m \n\u001b[1;32m 185\u001b[0m \u001b[38;5;124;03mArgs:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 189\u001b[0m \u001b[38;5;124;03m Tensor: The output of the circuit, shape (B, num_out, num_cls).\u001b[39;00m\n\u001b[1;32m 190\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m \u001b[38;5;66;03m# TODO: single letter name?\u001b[39;00m\n\u001b[1;32m 191\u001b[0m \u001b[38;5;66;03m# IGNORE: Idiom for nn.Module.__call__.\u001b[39;00m\n\u001b[0;32m--> 192\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \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[38;5;21;43m__call__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/Documents/cirkit/venv/lib/python3.10/site-packages/torch/nn/modules/module.py:1532\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1530\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs) \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[1;32m 1531\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1532\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_call_impl\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", - "File \u001b[0;32m~/Documents/cirkit/venv/lib/python3.10/site-packages/torch/nn/modules/module.py:1541\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1536\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 1537\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m 1538\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_backward_pre_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\n\u001b[1;32m 1539\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m 1540\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-> 1541\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[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 1543\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 1544\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", - "File \u001b[0;32m~/Documents/cirkit/cirkit/backend/torch/circuits.py:195\u001b[0m, in \u001b[0;36mTorchCircuit.forward\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 194\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, x: Tensor) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Tensor:\n\u001b[0;32m--> 195\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_evaluate_layers\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/Documents/cirkit/cirkit/backend/torch/circuits.py:172\u001b[0m, in \u001b[0;36mAbstractTorchCircuit._evaluate_layers\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 170\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_evaluate_layers\u001b[39m(\u001b[38;5;28mself\u001b[39m, x: Tensor) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Tensor:\n\u001b[1;32m 171\u001b[0m \u001b[38;5;66;03m# Evaluate layers on the given input\u001b[39;00m\n\u001b[0;32m--> 172\u001b[0m y \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mevaluate\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# (O, B, K)\u001b[39;00m\n\u001b[1;32m 173\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m y\u001b[38;5;241m.\u001b[39mtranspose(\u001b[38;5;241m0\u001b[39m, \u001b[38;5;241m1\u001b[39m)\n", - "File \u001b[0;32m~/Documents/cirkit/cirkit/backend/torch/graph/modules.py:240\u001b[0m, in \u001b[0;36mTorchDiAcyclicGraph.evaluate\u001b[0;34m(self, x, module_fn)\u001b[0m\n\u001b[1;32m 238\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m output\n\u001b[1;32m 239\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m module_fn \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 240\u001b[0m y \u001b[38;5;241m=\u001b[39m \u001b[43mmodule\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43minputs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 241\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 242\u001b[0m y \u001b[38;5;241m=\u001b[39m module_fn(module, \u001b[38;5;241m*\u001b[39minputs)\n", - "File \u001b[0;32m~/Documents/cirkit/cirkit/backend/torch/layers/base.py:92\u001b[0m, in \u001b[0;36mTorchLayer.__call__\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 83\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Invoke the forward function.\u001b[39;00m\n\u001b[1;32m 84\u001b[0m \n\u001b[1;32m 85\u001b[0m \u001b[38;5;124;03mArgs:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 89\u001b[0m \u001b[38;5;124;03m Tensor: The output of this layer, shape (F, B, Ko).\u001b[39;00m\n\u001b[1;32m 90\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 91\u001b[0m \u001b[38;5;66;03m# IGNORE: Idiom for nn.Module.__call__.\u001b[39;00m\n\u001b[0;32m---> 92\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \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[38;5;21;43m__call__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/Documents/cirkit/venv/lib/python3.10/site-packages/torch/nn/modules/module.py:1532\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1530\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs) \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[1;32m 1531\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1532\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_call_impl\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", - "File \u001b[0;32m~/Documents/cirkit/venv/lib/python3.10/site-packages/torch/nn/modules/module.py:1541\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1536\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 1537\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m 1538\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_backward_pre_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\n\u001b[1;32m 1539\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m 1540\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-> 1541\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[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 1543\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 1544\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", - "File \u001b[0;32m~/Documents/cirkit/cirkit/backend/torch/layers/input.py:173\u001b[0m, in \u001b[0;36mTorchEmbeddingLayer.forward\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 171\u001b[0m x \u001b[38;5;241m=\u001b[39m x\u001b[38;5;241m.\u001b[39mto(torch\u001b[38;5;241m.\u001b[39mget_default_dtype())\n\u001b[1;32m 172\u001b[0m weight \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mweight()\n\u001b[0;32m--> 173\u001b[0m x \u001b[38;5;241m=\u001b[39m \u001b[43mtorch\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43meinsum\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mfcbi,fkci->fbkc\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mweight\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 174\u001b[0m x \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msemiring\u001b[38;5;241m.\u001b[39mmap_from(x, SumProductSemiring)\n\u001b[1;32m 175\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msemiring\u001b[38;5;241m.\u001b[39mprod(x, dim\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m)\n", - "File \u001b[0;32m~/Documents/cirkit/venv/lib/python3.10/site-packages/torch/functional.py:385\u001b[0m, in \u001b[0;36meinsum\u001b[0;34m(*args)\u001b[0m\n\u001b[1;32m 380\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m einsum(equation, \u001b[38;5;241m*\u001b[39m_operands)\n\u001b[1;32m 382\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(operands) \u001b[38;5;241m<\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;241m2\u001b[39m \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m opt_einsum\u001b[38;5;241m.\u001b[39menabled:\n\u001b[1;32m 383\u001b[0m \u001b[38;5;66;03m# the path for contracting 0 or 1 time(s) is already optimized\u001b[39;00m\n\u001b[1;32m 384\u001b[0m \u001b[38;5;66;03m# or the user has disabled using opt_einsum\u001b[39;00m\n\u001b[0;32m--> 385\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_VF\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43meinsum\u001b[49m\u001b[43m(\u001b[49m\u001b[43mequation\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moperands\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# type: ignore[attr-defined]\u001b[39;00m\n\u001b[1;32m 387\u001b[0m path \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 388\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m opt_einsum\u001b[38;5;241m.\u001b[39mis_available():\n", - "\u001b[0;31mRuntimeError\u001b[0m: expected scalar type ComplexFloat but found Float" + "name": "stdout", + "output_type": "stream", + "text": [ + "tensor([[[-73717.8203]],\n", + "\n", + " [[-73582.3203]],\n", + "\n", + " [[-73627.6094]],\n", + "\n", + " [[-73607.5312]],\n", + "\n", + " [[-73650.4453]],\n", + "\n", + " [[-73630.0312]],\n", + "\n", + " [[-73629.4219]],\n", + "\n", + " [[-73594.5000]],\n", + "\n", + " [[-73567.5234]],\n", + "\n", + " [[-73640.0234]],\n", + "\n", + " [[-73636.7812]],\n", + "\n", + " [[-73722.1875]],\n", + "\n", + " [[-73558.0000]],\n", + "\n", + " [[-73684.7656]],\n", + "\n", + " [[-73573.3281]],\n", + "\n", + " [[-73673.7734]],\n", + "\n", + " [[-73554.6094]],\n", + "\n", + " [[-73558.1016]],\n", + "\n", + " [[-73643.1562]],\n", + "\n", + " [[-73553.6641]],\n", + "\n", + " [[-73594.0547]],\n", + "\n", + " [[-73608.0156]],\n", + "\n", + " [[-73536.2188]],\n", + "\n", + " [[-73706.6562]],\n", + "\n", + " [[-73593.8906]],\n", + "\n", + " [[-73678.9141]],\n", + "\n", + " [[-73605.1406]],\n", + "\n", + " [[-73644.1484]],\n", + "\n", + " [[-73650.2109]],\n", + "\n", + " [[-73608.1953]],\n", + "\n", + " [[-73662.1250]],\n", + "\n", + " [[-73690.5938]],\n", + "\n", + " [[-73661.0469]],\n", + "\n", + " [[-73691.4531]],\n", + "\n", + " [[-73666.9297]],\n", + "\n", + " [[-73616.0547]],\n", + "\n", + " [[-73576.1328]],\n", + "\n", + " [[-73614.5625]],\n", + "\n", + " [[-73570.0859]],\n", + "\n", + " [[-73646.8672]],\n", + "\n", + " [[-73550.5391]],\n", + "\n", + " [[-73548.8125]],\n", + "\n", + " [[-73635.8516]],\n", + "\n", + " [[-73560.3047]],\n", + "\n", + " [[-73641.8281]],\n", + "\n", + " [[-73617.5078]],\n", + "\n", + " [[-73529.6484]],\n", + "\n", + " [[-73636.2344]],\n", + "\n", + " [[-73523.8594]],\n", + "\n", + " [[-73650.2500]],\n", + "\n", + " [[-73608.6172]],\n", + "\n", + " [[-73590.9844]],\n", + "\n", + " [[-73601.3594]],\n", + "\n", + " [[-73565.2344]],\n", + "\n", + " [[-73570.7734]],\n", + "\n", + " [[-73700.5078]],\n", + "\n", + " [[-73592.3359]],\n", + "\n", + " [[-73619.0469]],\n", + "\n", + " [[-73656.9688]],\n", + "\n", + " [[-73627.7422]],\n", + "\n", + " [[-73608.3125]],\n", + "\n", + " [[-73519.1797]],\n", + "\n", + " [[-73581.0078]],\n", + "\n", + " [[-73619.9609]],\n", + "\n", + " [[-73656.9844]],\n", + "\n", + " [[-73571.1406]],\n", + "\n", + " [[-73626.6484]],\n", + "\n", + " [[-73607.6562]],\n", + "\n", + " [[-73683.6172]],\n", + "\n", + " [[-73591.4609]],\n", + "\n", + " [[-73714.6484]],\n", + "\n", + " [[-73607.0234]],\n", + "\n", + " [[-73655.7266]],\n", + "\n", + " [[-73561.7656]],\n", + "\n", + " [[-73660.4141]],\n", + "\n", + " [[-73584.0859]],\n", + "\n", + " [[-73609.3125]],\n", + "\n", + " [[-73594.8828]],\n", + "\n", + " [[-73633.3047]],\n", + "\n", + " [[-73613.4922]],\n", + "\n", + " [[-73565.4062]],\n", + "\n", + " [[-73632.4844]],\n", + "\n", + " [[-73642.8125]],\n", + "\n", + " [[-73633.3672]],\n", + "\n", + " [[-73647.8047]],\n", + "\n", + " [[-73646.2344]],\n", + "\n", + " [[-73547.4062]],\n", + "\n", + " [[-73567.0781]],\n", + "\n", + " [[-73632.9453]],\n", + "\n", + " [[-73582.6797]],\n", + "\n", + " [[-73562.5547]],\n", + "\n", + " [[-73615.4375]],\n", + "\n", + " [[-73624.1562]],\n", + "\n", + " [[-73688.3203]],\n", + "\n", + " [[-73542.9219]],\n", + "\n", + " [[-73580.5234]],\n", + "\n", + " [[-73562.4219]],\n", + "\n", + " [[-73552.7812]],\n", + "\n", + " [[-73643.4453]],\n", + "\n", + " [[-73568.8906]],\n", + "\n", + " [[-73634.8359]],\n", + "\n", + " [[-73672.5469]],\n", + "\n", + " [[-73627.4688]],\n", + "\n", + " [[-73648.0625]],\n", + "\n", + " [[-73669.2969]],\n", + "\n", + " [[-73665.8672]],\n", + "\n", + " [[-73600.5859]],\n", + "\n", + " [[-73631.5078]],\n", + "\n", + " [[-73670.7031]],\n", + "\n", + " [[-73625.7188]],\n", + "\n", + " [[-73669.8438]],\n", + "\n", + " [[-73571.8672]],\n", + "\n", + " [[-73654.7656]],\n", + "\n", + " [[-73669.8594]],\n", + "\n", + " [[-73572.6250]],\n", + "\n", + " [[-73678.3438]],\n", + "\n", + " [[-73593.9297]],\n", + "\n", + " [[-73568.4062]],\n", + "\n", + " [[-73635.3672]],\n", + "\n", + " [[-73573.0000]],\n", + "\n", + " [[-73605.7891]],\n", + "\n", + " [[-73522.1953]],\n", + "\n", + " [[-73623.1094]],\n", + "\n", + " [[-73602.8672]],\n", + "\n", + " [[-73586.9219]],\n", + "\n", + " [[-73577.4297]],\n", + "\n", + " [[-73635.3906]],\n", + "\n", + " [[-73667.2344]],\n", + "\n", + " [[-73589.5625]],\n", + "\n", + " [[-73642.0391]],\n", + "\n", + " [[-73602.0938]],\n", + "\n", + " [[-73585.1953]],\n", + "\n", + " [[-73640.5625]],\n", + "\n", + " [[-73574.4766]],\n", + "\n", + " [[-73611.8047]],\n", + "\n", + " [[-73592.0391]],\n", + "\n", + " [[-73568.4922]],\n", + "\n", + " [[-73596.9141]],\n", + "\n", + " [[-73630.2422]],\n", + "\n", + " [[-73585.6094]],\n", + "\n", + " [[-73672.3281]],\n", + "\n", + " [[-73562.8828]],\n", + "\n", + " [[-73669.2734]],\n", + "\n", + " [[-73562.2656]],\n", + "\n", + " [[-73588.2500]],\n", + "\n", + " [[-73640.7578]],\n", + "\n", + " [[-73559.2734]],\n", + "\n", + " [[-73583.1094]],\n", + "\n", + " [[-73552.0000]],\n", + "\n", + " [[-73578.5781]],\n", + "\n", + " [[-73563.7188]],\n", + "\n", + " [[-73530.2422]],\n", + "\n", + " [[-73599.2344]],\n", + "\n", + " [[-73573.9219]],\n", + "\n", + " [[-73590.3828]],\n", + "\n", + " [[-73662.5781]],\n", + "\n", + " [[-73573.6562]],\n", + "\n", + " [[-73650.5078]],\n", + "\n", + " [[-73610.0469]],\n", + "\n", + " [[-73609.3047]],\n", + "\n", + " [[-73659.5000]],\n", + "\n", + " [[-73517.4922]],\n", + "\n", + " [[-73699.2500]],\n", + "\n", + " [[-73638.4531]],\n", + "\n", + " [[-73658.4141]],\n", + "\n", + " [[-73644.7891]],\n", + "\n", + " [[-73602.6016]],\n", + "\n", + " [[-73644.1797]],\n", + "\n", + " [[-73569.9297]],\n", + "\n", + " [[-73645.1406]],\n", + "\n", + " [[-73662.1094]],\n", + "\n", + " [[-73612.9453]],\n", + "\n", + " [[-73629.9766]],\n", + "\n", + " [[-73657.3203]],\n", + "\n", + " [[-73691.0234]],\n", + "\n", + " [[-73655.9922]],\n", + "\n", + " [[-73622.0781]],\n", + "\n", + " [[-73648.6875]],\n", + "\n", + " [[-73584.0859]],\n", + "\n", + " [[-73692.2344]],\n", + "\n", + " [[-73619.1250]],\n", + "\n", + " [[-73596.6719]],\n", + "\n", + " [[-73608.5078]],\n", + "\n", + " [[-73667.5859]],\n", + "\n", + " [[-73596.0625]],\n", + "\n", + " [[-73633.9297]],\n", + "\n", + " [[-73604.0391]],\n", + "\n", + " [[-73715.1641]],\n", + "\n", + " [[-73627.3984]],\n", + "\n", + " [[-73620.9766]],\n", + "\n", + " [[-73586.5859]],\n", + "\n", + " [[-73713.0000]],\n", + "\n", + " [[-73581.9062]],\n", + "\n", + " [[-73618.8203]],\n", + "\n", + " [[-73631.5469]],\n", + "\n", + " [[-73597.0000]],\n", + "\n", + " [[-73664.7812]],\n", + "\n", + " [[-73613.1719]],\n", + "\n", + " [[-73533.6250]],\n", + "\n", + " [[-73615.3672]],\n", + "\n", + " [[-73553.5781]],\n", + "\n", + " [[-73591.0703]],\n", + "\n", + " [[-73634.1953]],\n", + "\n", + " [[-73635.4141]],\n", + "\n", + " [[-73617.2500]],\n", + "\n", + " [[-73619.0078]],\n", + "\n", + " [[-73600.6094]],\n", + "\n", + " [[-73621.6328]],\n", + "\n", + " [[-73604.4297]],\n", + "\n", + " [[-73623.8984]],\n", + "\n", + " [[-73558.1797]],\n", + "\n", + " [[-73544.0312]],\n", + "\n", + " [[-73634.7969]],\n", + "\n", + " [[-73588.7500]],\n", + "\n", + " [[-73686.7578]],\n", + "\n", + " [[-73556.3359]],\n", + "\n", + " [[-73696.4375]],\n", + "\n", + " [[-73577.1641]],\n", + "\n", + " [[-73694.9844]],\n", + "\n", + " [[-73563.0938]],\n", + "\n", + " [[-73593.8203]],\n", + "\n", + " [[-73615.4453]],\n", + "\n", + " [[-73646.7656]],\n", + "\n", + " [[-73553.2891]],\n", + "\n", + " [[-73604.1250]],\n", + "\n", + " [[-73615.3203]],\n", + "\n", + " [[-73661.2266]],\n", + "\n", + " [[-73605.5469]],\n", + "\n", + " [[-73619.9766]],\n", + "\n", + " [[-73588.3516]],\n", + "\n", + " [[-73642.5078]],\n", + "\n", + " [[-73561.7422]],\n", + "\n", + " [[-73587.8984]],\n", + "\n", + " [[-73667.7969]],\n", + "\n", + " [[-73571.1016]],\n", + "\n", + " [[-73616.2422]],\n", + "\n", + " [[-73601.3672]],\n", + "\n", + " [[-73687.5391]],\n", + "\n", + " [[-73618.6641]],\n", + "\n", + " [[-73617.4531]],\n", + "\n", + " [[-73648.5234]],\n", + "\n", + " [[-73602.2812]],\n", + "\n", + " [[-73591.7031]],\n", + "\n", + " [[-73683.4062]],\n", + "\n", + " [[-73559.3828]],\n", + "\n", + " [[-73548.0078]],\n", + "\n", + " [[-73613.9297]],\n", + "\n", + " [[-73580.2266]],\n", + "\n", + " [[-73627.9453]],\n", + "\n", + " [[-73564.0938]],\n", + "\n", + " [[-73606.6094]],\n", + "\n", + " [[-73593.7656]],\n", + "\n", + " [[-73635.4219]],\n", + "\n", + " [[-73597.3750]],\n", + "\n", + " [[-73616.0391]],\n", + "\n", + " [[-73605.7344]]], grad_fn=)\n", + "tensor([[[-71475.5625]],\n", + "\n", + " [[-71520.2422]],\n", + "\n", + " [[-71526.9844]],\n", + "\n", + " [[-71518.6172]],\n", + "\n", + " [[-71588.0469]],\n", + "\n", + " [[-71541.4375]],\n", + "\n", + " [[-71434.0000]],\n", + "\n", + " [[-71475.3281]],\n", + "\n", + " [[-71497.8359]],\n", + "\n", + " [[-71607.6562]],\n", + "\n", + " [[-71601.3047]],\n", + "\n", + " [[-71540.8516]],\n", + "\n", + " [[-71590.0391]],\n", + "\n", + " [[-71614.6016]],\n", + "\n", + " [[-71489.9688]],\n", + "\n", + " [[-71594.1641]],\n", + "\n", + " [[-71544.6250]],\n", + "\n", + " [[-71470.6094]],\n", + "\n", + " [[-71596.5469]],\n", + "\n", + " [[-71624.4531]],\n", + "\n", + " [[-71575.2500]],\n", + "\n", + " [[-71586.1406]],\n", + "\n", + " [[-71584.6250]],\n", + "\n", + " [[-71536.1094]],\n", + "\n", + " [[-71614.5938]],\n", + "\n", + " [[-71499.2656]],\n", + "\n", + " [[-71508.6484]],\n", + "\n", + " [[-71464.5938]],\n", + "\n", + " [[-71468.1953]],\n", + "\n", + " [[-71594.5625]],\n", + "\n", + " [[-71565.5938]],\n", + "\n", + " [[-71555.2500]],\n", + "\n", + " [[-71597.2734]],\n", + "\n", + " [[-71525.5000]],\n", + "\n", + " [[-71625.2969]],\n", + "\n", + " [[-71609.3750]],\n", + "\n", + " [[-71460.0156]],\n", + "\n", + " [[-71535.3359]],\n", + "\n", + " [[-71515.4609]],\n", + "\n", + " [[-71486.3828]],\n", + "\n", + " [[-71544.8906]],\n", + "\n", + " [[-71519.1953]],\n", + "\n", + " [[-71556.0781]],\n", + "\n", + " [[-71586.7031]],\n", + "\n", + " [[-71467.3438]],\n", + "\n", + " [[-71607.7031]],\n", + "\n", + " [[-71623.5000]],\n", + "\n", + " [[-71471.7578]],\n", + "\n", + " [[-71627.9766]],\n", + "\n", + " [[-71556.9609]],\n", + "\n", + " [[-71624.5469]],\n", + "\n", + " [[-71488.8516]],\n", + "\n", + " [[-71596.7578]],\n", + "\n", + " [[-71474.2344]],\n", + "\n", + " [[-71505.5859]],\n", + "\n", + " [[-71557.6875]],\n", + "\n", + " [[-71454.7578]],\n", + "\n", + " [[-71533.8828]],\n", + "\n", + " [[-71520.1797]],\n", + "\n", + " [[-71530.6562]],\n", + "\n", + " [[-71658.3906]],\n", + "\n", + " [[-71571.1328]],\n", + "\n", + " [[-71520.8359]],\n", + "\n", + " [[-71540.7578]],\n", + "\n", + " [[-71523.6484]],\n", + "\n", + " [[-71477.0156]],\n", + "\n", + " [[-71458.5859]],\n", + "\n", + " [[-71529.3438]],\n", + "\n", + " [[-71484.5547]],\n", + "\n", + " [[-71576.5469]],\n", + "\n", + " [[-71501.7422]],\n", + "\n", + " [[-71533.8828]],\n", + "\n", + " [[-71594.2422]],\n", + "\n", + " [[-71565.0781]],\n", + "\n", + " [[-71520.1875]],\n", + "\n", + " [[-71510.9766]],\n", + "\n", + " [[-71558.7031]],\n", + "\n", + " [[-71535.1406]],\n", + "\n", + " [[-71554.5312]],\n", + "\n", + " [[-71533.5000]],\n", + "\n", + " [[-71580.1953]],\n", + "\n", + " [[-71577.3047]],\n", + "\n", + " [[-71524.9141]],\n", + "\n", + " [[-71483.5547]],\n", + "\n", + " [[-71548.5234]],\n", + "\n", + " [[-71598.9922]],\n", + "\n", + " [[-71590.4062]],\n", + "\n", + " [[-71484.1250]],\n", + "\n", + " [[-71532.4219]],\n", + "\n", + " [[-71597.8281]],\n", + "\n", + " [[-71519.5781]],\n", + "\n", + " [[-71538.1562]],\n", + "\n", + " [[-71603.0000]],\n", + "\n", + " [[-71470.4375]],\n", + "\n", + " [[-71525.1641]],\n", + "\n", + " [[-71533.2422]],\n", + "\n", + " [[-71533.6250]],\n", + "\n", + " [[-71517.0469]],\n", + "\n", + " [[-71637.8125]],\n", + "\n", + " [[-71550.5703]],\n", + "\n", + " [[-71557.8828]],\n", + "\n", + " [[-71596.5469]],\n", + "\n", + " [[-71543.3359]],\n", + "\n", + " [[-71605.5703]],\n", + "\n", + " [[-71565.8594]],\n", + "\n", + " [[-71534.0469]],\n", + "\n", + " [[-71541.9141]],\n", + "\n", + " [[-71514.4375]],\n", + "\n", + " [[-71525.3828]],\n", + "\n", + " [[-71613.6719]],\n", + "\n", + " [[-71547.3750]],\n", + "\n", + " [[-71487.8438]],\n", + "\n", + " [[-71536.8906]],\n", + "\n", + " [[-71502.1562]],\n", + "\n", + " [[-71477.2109]],\n", + "\n", + " [[-71549.4844]],\n", + "\n", + " [[-71590.7422]],\n", + "\n", + " [[-71502.8359]],\n", + "\n", + " [[-71505.5469]],\n", + "\n", + " [[-71500.8906]],\n", + "\n", + " [[-71611.4453]],\n", + "\n", + " [[-71544.7891]],\n", + "\n", + " [[-71544.8281]],\n", + "\n", + " [[-71540.5156]],\n", + "\n", + " [[-71600.0312]],\n", + "\n", + " [[-71572.2109]],\n", + "\n", + " [[-71516.9297]],\n", + "\n", + " [[-71494.3594]],\n", + "\n", + " [[-71586.8828]],\n", + "\n", + " [[-71497.6953]],\n", + "\n", + " [[-71553.8359]],\n", + "\n", + " [[-71539.3203]],\n", + "\n", + " [[-71652.0391]],\n", + "\n", + " [[-71565.1094]],\n", + "\n", + " [[-71510.4297]],\n", + "\n", + " [[-71594.3750]],\n", + "\n", + " [[-71633.1875]],\n", + "\n", + " [[-71501.4531]],\n", + "\n", + " [[-71500.6172]],\n", + "\n", + " [[-71523.5000]],\n", + "\n", + " [[-71521.3750]],\n", + "\n", + " [[-71553.0625]],\n", + "\n", + " [[-71563.3359]],\n", + "\n", + " [[-71501.1953]],\n", + "\n", + " [[-71580.2109]],\n", + "\n", + " [[-71554.4766]],\n", + "\n", + " [[-71575.0469]],\n", + "\n", + " [[-71506.6172]],\n", + "\n", + " [[-71526.1094]],\n", + "\n", + " [[-71530.9219]],\n", + "\n", + " [[-71591.0234]],\n", + "\n", + " [[-71598.4297]],\n", + "\n", + " [[-71508.6562]],\n", + "\n", + " [[-71475.0625]],\n", + "\n", + " [[-71539.0469]],\n", + "\n", + " [[-71441.1562]],\n", + "\n", + " [[-71543.6016]],\n", + "\n", + " [[-71494.5859]],\n", + "\n", + " [[-71566.2891]],\n", + "\n", + " [[-71514.8516]],\n", + "\n", + " [[-71553.8047]],\n", + "\n", + " [[-71526.7969]],\n", + "\n", + " [[-71498.5781]],\n", + "\n", + " [[-71533.7422]],\n", + "\n", + " [[-71584.6172]],\n", + "\n", + " [[-71531.6172]],\n", + "\n", + " [[-71449.2578]],\n", + "\n", + " [[-71620.1484]],\n", + "\n", + " [[-71562.4297]],\n", + "\n", + " [[-71561.0938]],\n", + "\n", + " [[-71539.5781]],\n", + "\n", + " [[-71566.4375]],\n", + "\n", + " [[-71531.4688]],\n", + "\n", + " [[-71541.4766]],\n", + "\n", + " [[-71521.3906]],\n", + "\n", + " [[-71540.0703]],\n", + "\n", + " [[-71474.3828]],\n", + "\n", + " [[-71625.0312]],\n", + "\n", + " [[-71509.3906]],\n", + "\n", + " [[-71547.4531]],\n", + "\n", + " [[-71514.8281]],\n", + "\n", + " [[-71529.6641]],\n", + "\n", + " [[-71666.4375]],\n", + "\n", + " [[-71574.4766]],\n", + "\n", + " [[-71460.5391]],\n", + "\n", + " [[-71660.2891]],\n", + "\n", + " [[-71584.3594]],\n", + "\n", + " [[-71489.2266]],\n", + "\n", + " [[-71540.9609]],\n", + "\n", + " [[-71614.6875]],\n", + "\n", + " [[-71496.4141]],\n", + "\n", + " [[-71539.8906]],\n", + "\n", + " [[-71604.1250]],\n", + "\n", + " [[-71626.6406]],\n", + "\n", + " [[-71524.1094]],\n", + "\n", + " [[-71551.5234]],\n", + "\n", + " [[-71433.5547]],\n", + "\n", + " [[-71561.3359]],\n", + "\n", + " [[-71438.0156]],\n", + "\n", + " [[-71614.0938]],\n", + "\n", + " [[-71537.7969]],\n", + "\n", + " [[-71579.2891]],\n", + "\n", + " [[-71560.7969]],\n", + "\n", + " [[-71456.8438]],\n", + "\n", + " [[-71578.6719]],\n", + "\n", + " [[-71588.4062]],\n", + "\n", + " [[-71582.9219]],\n", + "\n", + " [[-71545.9688]],\n", + "\n", + " [[-71547.4688]],\n", + "\n", + " [[-71572.2031]],\n", + "\n", + " [[-71541.7734]],\n", + "\n", + " [[-71527.0000]],\n", + "\n", + " [[-71561.9297]],\n", + "\n", + " [[-71558.0703]],\n", + "\n", + " [[-71624.6328]],\n", + "\n", + " [[-71466.9453]],\n", + "\n", + " [[-71539.8906]],\n", + "\n", + " [[-71581.4141]],\n", + "\n", + " [[-71517.0078]],\n", + "\n", + " [[-71490.0391]],\n", + "\n", + " [[-71590.8828]],\n", + "\n", + " [[-71498.6172]],\n", + "\n", + " [[-71540.0078]],\n", + "\n", + " [[-71509.9922]],\n", + "\n", + " [[-71539.2891]],\n", + "\n", + " [[-71466.6016]],\n", + "\n", + " [[-71551.9141]],\n", + "\n", + " [[-71490.2891]],\n", + "\n", + " [[-71545.5703]],\n", + "\n", + " [[-71528.5625]],\n", + "\n", + " [[-71459.3281]],\n", + "\n", + " [[-71511.1250]],\n", + "\n", + " [[-71582.3906]],\n", + "\n", + " [[-71526.2188]],\n", + "\n", + " [[-71511.5312]],\n", + "\n", + " [[-71501.3359]],\n", + "\n", + " [[-71543.6797]],\n", + "\n", + " [[-71520.1562]],\n", + "\n", + " [[-71561.3906]],\n", + "\n", + " [[-71474.3594]],\n", + "\n", + " [[-71510.6953]],\n", + "\n", + " [[-71511.0078]],\n", + "\n", + " [[-71534.2578]],\n", + "\n", + " [[-71594.6250]],\n", + "\n", + " [[-71574.7344]],\n", + "\n", + " [[-71591.6250]],\n", + "\n", + " [[-71650.8438]],\n", + "\n", + " [[-71656.5938]],\n", + "\n", + " [[-71465.3828]],\n", + "\n", + " [[-71458.1875]],\n", + "\n", + " [[-71510.3594]],\n", + "\n", + " [[-71540.1250]],\n", + "\n", + " [[-71591.6250]],\n", + "\n", + " [[-71568.7109]],\n", + "\n", + " [[-71499.4375]],\n", + "\n", + " [[-71575.7188]]], grad_fn=)\n", + "tensor([[[-69468.0312]],\n", + "\n", + " [[-69530.8359]],\n", + "\n", + " [[-69421.2266]],\n", + "\n", + " [[-69483.4766]],\n", + "\n", + " [[-69499.1875]],\n", + "\n", + " [[-69537.6953]],\n", + "\n", + " [[-69502.3125]],\n", + "\n", + " [[-69540.7266]],\n", + "\n", + " [[-69515.1797]],\n", + "\n", + " [[-69498.0078]],\n", + "\n", + " [[-69544.2500]],\n", + "\n", + " [[-69526.1797]],\n", + "\n", + " [[-69576.9453]],\n", + "\n", + " [[-69525.2109]],\n", + "\n", + " [[-69491.4844]],\n", + "\n", + " [[-69528.9141]],\n", + "\n", + " [[-69509.8828]],\n", + "\n", + " [[-69537.9141]],\n", + "\n", + " [[-69496.8203]],\n", + "\n", + " [[-69518.2812]],\n", + "\n", + " [[-69577.9922]],\n", + "\n", + " [[-69527.5859]],\n", + "\n", + " [[-69524.8125]],\n", + "\n", + " [[-69526.5078]],\n", + "\n", + " [[-69524.4297]],\n", + "\n", + " [[-69483.7812]],\n", + "\n", + " [[-69493.4844]],\n", + "\n", + " [[-69475.2734]],\n", + "\n", + " [[-69444.3828]],\n", + "\n", + " [[-69506.9297]],\n", + "\n", + " [[-69546.9453]],\n", + "\n", + " [[-69515.4609]],\n", + "\n", + " [[-69539.6562]],\n", + "\n", + " [[-69490.2578]],\n", + "\n", + " [[-69468.4922]],\n", + "\n", + " [[-69510.6016]],\n", + "\n", + " [[-69557.3281]],\n", + "\n", + " [[-69473.9922]],\n", + "\n", + " [[-69416.5781]],\n", + "\n", + " [[-69593.2578]],\n", + "\n", + " [[-69448.1172]],\n", + "\n", + " [[-69486.8828]],\n", + "\n", + " [[-69522.7734]],\n", + "\n", + " [[-69514.7422]],\n", + "\n", + " [[-69585.4141]],\n", + "\n", + " [[-69529.3984]],\n", + "\n", + " [[-69557.3438]],\n", + "\n", + " [[-69461.9922]],\n", + "\n", + " [[-69622.1328]],\n", + "\n", + " [[-69568.8594]],\n", + "\n", + " [[-69556.9453]],\n", + "\n", + " [[-69517.5078]],\n", + "\n", + " [[-69595.5078]],\n", + "\n", + " [[-69446.1641]],\n", + "\n", + " [[-69544.0234]],\n", + "\n", + " [[-69559.1328]],\n", + "\n", + " [[-69501.7969]],\n", + "\n", + " [[-69506.3047]],\n", + "\n", + " [[-69467.7656]],\n", + "\n", + " [[-69475.5391]],\n", + "\n", + " [[-69502.0625]],\n", + "\n", + " [[-69440.0938]],\n", + "\n", + " [[-69530.7188]],\n", + "\n", + " [[-69514.5938]],\n", + "\n", + " [[-69517.0156]],\n", + "\n", + " [[-69518.3516]],\n", + "\n", + " [[-69499.5859]],\n", + "\n", + " [[-69565.1016]],\n", + "\n", + " [[-69484.2891]],\n", + "\n", + " [[-69486.5703]],\n", + "\n", + " [[-69606.1641]],\n", + "\n", + " [[-69460.7969]],\n", + "\n", + " [[-69509.5078]],\n", + "\n", + " [[-69407.3125]],\n", + "\n", + " [[-69545.4844]],\n", + "\n", + " [[-69516.6641]],\n", + "\n", + " [[-69495.7656]],\n", + "\n", + " [[-69528.7891]],\n", + "\n", + " [[-69596.8828]],\n", + "\n", + " [[-69492.2109]],\n", + "\n", + " [[-69452.9922]],\n", + "\n", + " [[-69594.8828]],\n", + "\n", + " [[-69510.1250]],\n", + "\n", + " [[-69610.8594]],\n", + "\n", + " [[-69480.1094]],\n", + "\n", + " [[-69450.9844]],\n", + "\n", + " [[-69545.0312]],\n", + "\n", + " [[-69563.8828]],\n", + "\n", + " [[-69502.5938]],\n", + "\n", + " [[-69502.7891]],\n", + "\n", + " [[-69482.8906]],\n", + "\n", + " [[-69532.0000]],\n", + "\n", + " [[-69452.6016]],\n", + "\n", + " [[-69447.4688]],\n", + "\n", + " [[-69536.5938]],\n", + "\n", + " [[-69491.4297]],\n", + "\n", + " [[-69496.4844]],\n", + "\n", + " [[-69543.1484]],\n", + "\n", + " [[-69559.3203]],\n", + "\n", + " [[-69513.7656]],\n", + "\n", + " [[-69581.7578]],\n", + "\n", + " [[-69515.6875]],\n", + "\n", + " [[-69454.7734]],\n", + "\n", + " [[-69535.9219]],\n", + "\n", + " [[-69511.5469]],\n", + "\n", + " [[-69508.6875]],\n", + "\n", + " [[-69478.9688]],\n", + "\n", + " [[-69513.0703]],\n", + "\n", + " [[-69405.0859]],\n", + "\n", + " [[-69509.1797]],\n", + "\n", + " [[-69519.5547]],\n", + "\n", + " [[-69505.2344]],\n", + "\n", + " [[-69605.0859]],\n", + "\n", + " [[-69494.4531]],\n", + "\n", + " [[-69517.4219]],\n", + "\n", + " [[-69577.0234]],\n", + "\n", + " [[-69469.7344]],\n", + "\n", + " [[-69469.4062]],\n", + "\n", + " [[-69418.7031]],\n", + "\n", + " [[-69466.6172]],\n", + "\n", + " [[-69542.1641]],\n", + "\n", + " [[-69528.8984]],\n", + "\n", + " [[-69512.6719]],\n", + "\n", + " [[-69542.7500]],\n", + "\n", + " [[-69495.2656]],\n", + "\n", + " [[-69528.0547]],\n", + "\n", + " [[-69509.2031]],\n", + "\n", + " [[-69477.7188]],\n", + "\n", + " [[-69459.3125]],\n", + "\n", + " [[-69591.5938]],\n", + "\n", + " [[-69533.5156]],\n", + "\n", + " [[-69436.2969]],\n", + "\n", + " [[-69530.1094]],\n", + "\n", + " [[-69454.8750]],\n", + "\n", + " [[-69531.3125]],\n", + "\n", + " [[-69517.2891]],\n", + "\n", + " [[-69444.8594]],\n", + "\n", + " [[-69571.7422]],\n", + "\n", + " [[-69536.8906]],\n", + "\n", + " [[-69533.8047]],\n", + "\n", + " [[-69479.6953]],\n", + "\n", + " [[-69527.5312]],\n", + "\n", + " [[-69475.1328]],\n", + "\n", + " [[-69500.6250]],\n", + "\n", + " [[-69616.9844]],\n", + "\n", + " [[-69487.4531]],\n", + "\n", + " [[-69515.0391]],\n", + "\n", + " [[-69494.2812]],\n", + "\n", + " [[-69436.5391]],\n", + "\n", + " [[-69511.9531]],\n", + "\n", + " [[-69539.4688]],\n", + "\n", + " [[-69569.7891]],\n", + "\n", + " [[-69638.0391]],\n", + "\n", + " [[-69409.1484]],\n", + "\n", + " [[-69435.6719]],\n", + "\n", + " [[-69504.3750]],\n", + "\n", + " [[-69473.2578]],\n", + "\n", + " [[-69441.4375]],\n", + "\n", + " [[-69493.7031]],\n", + "\n", + " [[-69501.5625]],\n", + "\n", + " [[-69492.8359]],\n", + "\n", + " [[-69491.6016]],\n", + "\n", + " [[-69449.9453]],\n", + "\n", + " [[-69621.4688]],\n", + "\n", + " [[-69564.7031]],\n", + "\n", + " [[-69521.4609]],\n", + "\n", + " [[-69463.2031]],\n", + "\n", + " [[-69473.5547]],\n", + "\n", + " [[-69517.9844]],\n", + "\n", + " [[-69417.7031]],\n", + "\n", + " [[-69484.0859]],\n", + "\n", + " [[-69454.5234]],\n", + "\n", + " [[-69543.5938]],\n", + "\n", + " [[-69484.4141]],\n", + "\n", + " [[-69603.3047]],\n", + "\n", + " [[-69561.1953]],\n", + "\n", + " [[-69542.9609]],\n", + "\n", + " [[-69569.3750]],\n", + "\n", + " [[-69451.5156]],\n", + "\n", + " [[-69597.0938]],\n", + "\n", + " [[-69540.5703]],\n", + "\n", + " [[-69497.8594]],\n", + "\n", + " [[-69502.1562]],\n", + "\n", + " [[-69564.0156]],\n", + "\n", + " [[-69505.1172]],\n", + "\n", + " [[-69474.9062]],\n", + "\n", + " [[-69530.9531]],\n", + "\n", + " [[-69406.3281]],\n", + "\n", + " [[-69505.7969]],\n", + "\n", + " [[-69434.4531]],\n", + "\n", + " [[-69445.1250]],\n", + "\n", + " [[-69566.2891]],\n", + "\n", + " [[-69628.6719]],\n", + "\n", + " [[-69611.0938]],\n", + "\n", + " [[-69440.5078]],\n", + "\n", + " [[-69522.1016]],\n", + "\n", + " [[-69520.8828]],\n", + "\n", + " [[-69446.1562]],\n", + "\n", + " [[-69502.7734]],\n", + "\n", + " [[-69538.1484]],\n", + "\n", + " [[-69479.0312]],\n", + "\n", + " [[-69488.4844]],\n", + "\n", + " [[-69632.1641]],\n", + "\n", + " [[-69431.1719]],\n", + "\n", + " [[-69562.8438]],\n", + "\n", + " [[-69561.6172]],\n", + "\n", + " [[-69569.1484]],\n", + "\n", + " [[-69557.9219]],\n", + "\n", + " [[-69575.2656]],\n", + "\n", + " [[-69452.7734]],\n", + "\n", + " [[-69497.0547]],\n", + "\n", + " [[-69517.3047]],\n", + "\n", + " [[-69566.0625]],\n", + "\n", + " [[-69524.3203]],\n", + "\n", + " [[-69504.5312]],\n", + "\n", + " [[-69508.8125]],\n", + "\n", + " [[-69476.5703]],\n", + "\n", + " [[-69518.6406]],\n", + "\n", + " [[-69511.6797]],\n", + "\n", + " [[-69477.6641]],\n", + "\n", + " [[-69488.4297]],\n", + "\n", + " [[-69519.1016]],\n", + "\n", + " [[-69512.6016]],\n", + "\n", + " [[-69425.9141]],\n", + "\n", + " [[-69477.9453]],\n", + "\n", + " [[-69500.9141]],\n", + "\n", + " [[-69599.0938]],\n", + "\n", + " [[-69448.5938]],\n", + "\n", + " [[-69539.0703]],\n", + "\n", + " [[-69449.2812]],\n", + "\n", + " [[-69534.5156]],\n", + "\n", + " [[-69480.8906]],\n", + "\n", + " [[-69434.7500]],\n", + "\n", + " [[-69476.1016]],\n", + "\n", + " [[-69502.3125]],\n", + "\n", + " [[-69552.6797]],\n", + "\n", + " [[-69562.1250]],\n", + "\n", + " [[-69565.8516]],\n", + "\n", + " [[-69550.6328]],\n", + "\n", + " [[-69444.1797]],\n", + "\n", + " [[-69471.9688]],\n", + "\n", + " [[-69407.5938]],\n", + "\n", + " [[-69553.0234]],\n", + "\n", + " [[-69435.6172]],\n", + "\n", + " [[-69557.3750]],\n", + "\n", + " [[-69492.8750]],\n", + "\n", + " [[-69436.7266]],\n", + "\n", + " [[-69474.9141]],\n", + "\n", + " [[-69490.2969]],\n", + "\n", + " [[-69576.5312]],\n", + "\n", + " [[-69411.8203]],\n", + "\n", + " [[-69520.8047]],\n", + "\n", + " [[-69583.5469]],\n", + "\n", + " [[-69483.5078]],\n", + "\n", + " [[-69535.6719]],\n", + "\n", + " [[-69467.8672]]], grad_fn=)\n", + "tensor([[[-67495.2266]],\n", + "\n", + " [[-67532.0625]],\n", + "\n", + " [[-67436.7266]],\n", + "\n", + " [[-67619.5781]],\n", + "\n", + " [[-67481.5234]],\n", + "\n", + " [[-67515.4922]],\n", + "\n", + " [[-67536.7969]],\n", + "\n", + " [[-67418.4609]],\n", + "\n", + " [[-67524.3750]],\n", + "\n", + " [[-67464.1719]],\n", + "\n", + " [[-67446.1172]],\n", + "\n", + " [[-67504.5938]],\n", + "\n", + " [[-67529.6250]],\n", + "\n", + " [[-67589.3281]],\n", + "\n", + " [[-67523.1797]],\n", + "\n", + " [[-67550.6953]],\n", + "\n", + " [[-67514.6562]],\n", + "\n", + " [[-67530.0859]],\n", + "\n", + " [[-67459.0078]],\n", + "\n", + " [[-67522.9531]],\n", + "\n", + " [[-67551.3125]],\n", + "\n", + " [[-67495.0312]],\n", + "\n", + " [[-67573.9141]],\n", + "\n", + " [[-67521.2812]],\n", + "\n", + " [[-67562.1172]],\n", + "\n", + " [[-67576.8125]],\n", + "\n", + " [[-67546.8672]],\n", + "\n", + " [[-67510.5078]],\n", + "\n", + " [[-67503.2891]],\n", + "\n", + " [[-67528.8906]],\n", + "\n", + " [[-67475.4219]],\n", + "\n", + " [[-67500.3516]],\n", + "\n", + " [[-67477.6172]],\n", + "\n", + " [[-67484.8438]],\n", + "\n", + " [[-67502.4141]],\n", + "\n", + " [[-67483.6094]],\n", + "\n", + " [[-67430.9219]],\n", + "\n", + " [[-67504.1484]],\n", + "\n", + " [[-67502.2734]],\n", + "\n", + " [[-67514.8672]],\n", + "\n", + " [[-67449.6797]],\n", + "\n", + " [[-67537.3594]],\n", + "\n", + " [[-67589.0625]],\n", + "\n", + " [[-67529.3438]],\n", + "\n", + " [[-67498.1875]],\n", + "\n", + " [[-67592.4688]],\n", + "\n", + " [[-67446.6797]],\n", + "\n", + " [[-67459.7500]],\n", + "\n", + " [[-67588.5312]],\n", + "\n", + " [[-67610.2891]],\n", + "\n", + " [[-67506.5781]],\n", + "\n", + " [[-67469.0547]],\n", + "\n", + " [[-67583.2266]],\n", + "\n", + " [[-67582.6719]],\n", + "\n", + " [[-67557.6484]],\n", + "\n", + " [[-67568.3047]],\n", + "\n", + " [[-67608.5547]],\n", + "\n", + " [[-67543.2500]],\n", + "\n", + " [[-67532.1094]],\n", + "\n", + " [[-67547.0078]],\n", + "\n", + " [[-67446.1719]],\n", + "\n", + " [[-67554.3906]],\n", + "\n", + " [[-67476.8828]],\n", + "\n", + " [[-67583.9062]],\n", + "\n", + " [[-67483.6719]],\n", + "\n", + " [[-67511.7812]],\n", + "\n", + " [[-67464.2969]],\n", + "\n", + " [[-67615.2500]],\n", + "\n", + " [[-67505.6719]],\n", + "\n", + " [[-67555.7500]],\n", + "\n", + " [[-67620.6094]],\n", + "\n", + " [[-67636.9844]],\n", + "\n", + " [[-67475.0625]],\n", + "\n", + " [[-67513.2969]],\n", + "\n", + " [[-67582.5469]],\n", + "\n", + " [[-67513.3672]],\n", + "\n", + " [[-67592.1641]],\n", + "\n", + " [[-67511.9531]],\n", + "\n", + " [[-67490.5859]],\n", + "\n", + " [[-67536.3906]],\n", + "\n", + " [[-67578.0000]],\n", + "\n", + " [[-67561.7188]],\n", + "\n", + " [[-67555.0859]],\n", + "\n", + " [[-67532.8750]],\n", + "\n", + " [[-67431.3828]],\n", + "\n", + " [[-67591.3125]],\n", + "\n", + " [[-67422.6328]],\n", + "\n", + " [[-67615.0156]],\n", + "\n", + " [[-67493.8047]],\n", + "\n", + " [[-67554.4453]],\n", + "\n", + " [[-67561.5469]],\n", + "\n", + " [[-67552.6797]],\n", + "\n", + " [[-67507.7188]],\n", + "\n", + " [[-67581.8125]],\n", + "\n", + " [[-67515.1094]],\n", + "\n", + " [[-67510.6875]],\n", + "\n", + " [[-67579.6484]],\n", + "\n", + " [[-67557.2422]],\n", + "\n", + " [[-67574.9062]],\n", + "\n", + " [[-67597.8672]],\n", + "\n", + " [[-67529.9844]],\n", + "\n", + " [[-67530.1484]],\n", + "\n", + " [[-67570.2578]],\n", + "\n", + " [[-67586.0078]],\n", + "\n", + " [[-67605.4531]],\n", + "\n", + " [[-67521.3047]],\n", + "\n", + " [[-67550.0703]],\n", + "\n", + " [[-67519.1641]],\n", + "\n", + " [[-67529.8906]],\n", + "\n", + " [[-67469.0859]],\n", + "\n", + " [[-67427.7188]],\n", + "\n", + " [[-67472.1328]],\n", + "\n", + " [[-67555.7969]],\n", + "\n", + " [[-67516.8359]],\n", + "\n", + " [[-67585.5625]],\n", + "\n", + " [[-67607.2344]],\n", + "\n", + " [[-67556.2266]],\n", + "\n", + " [[-67607.6484]],\n", + "\n", + " [[-67543.1016]],\n", + "\n", + " [[-67533.2969]],\n", + "\n", + " [[-67507.0000]],\n", + "\n", + " [[-67531.7500]],\n", + "\n", + " [[-67584.7891]],\n", + "\n", + " [[-67564.0781]],\n", + "\n", + " [[-67488.6016]],\n", + "\n", + " [[-67464.7188]],\n", + "\n", + " [[-67513.3750]],\n", + "\n", + " [[-67514.2266]],\n", + "\n", + " [[-67559.3438]],\n", + "\n", + " [[-67501.5156]],\n", + "\n", + " [[-67502.4844]],\n", + "\n", + " [[-67575.9609]],\n", + "\n", + " [[-67525.0781]],\n", + "\n", + " [[-67417.6875]],\n", + "\n", + " [[-67466.3828]],\n", + "\n", + " [[-67518.6875]],\n", + "\n", + " [[-67425.0469]],\n", + "\n", + " [[-67562.6484]],\n", + "\n", + " [[-67491.4922]],\n", + "\n", + " [[-67561.4297]],\n", + "\n", + " [[-67419.6016]],\n", + "\n", + " [[-67542.2812]],\n", + "\n", + " [[-67476.3047]],\n", + "\n", + " [[-67555.7734]],\n", + "\n", + " [[-67490.2812]],\n", + "\n", + " [[-67592.7188]],\n", + "\n", + " [[-67473.3906]],\n", + "\n", + " [[-67529.6641]],\n", + "\n", + " [[-67527.4453]],\n", + "\n", + " [[-67480.2344]],\n", + "\n", + " [[-67483.7812]],\n", + "\n", + " [[-67530.7578]],\n", + "\n", + " [[-67541.8750]],\n", + "\n", + " [[-67478.1953]],\n", + "\n", + " [[-67505.6094]],\n", + "\n", + " [[-67490.9141]],\n", + "\n", + " [[-67522.4062]],\n", + "\n", + " [[-67517.4766]],\n", + "\n", + " [[-67587.5781]],\n", + "\n", + " [[-67559.9922]],\n", + "\n", + " [[-67597.9062]],\n", + "\n", + " [[-67531.1328]],\n", + "\n", + " [[-67531.8906]],\n", + "\n", + " [[-67614.4922]],\n", + "\n", + " [[-67436.7656]],\n", + "\n", + " [[-67616.6875]],\n", + "\n", + " [[-67448.1016]],\n", + "\n", + " [[-67482.6797]],\n", + "\n", + " [[-67489.0391]],\n", + "\n", + " [[-67525.6797]],\n", + "\n", + " [[-67578.9688]],\n", + "\n", + " [[-67457.0781]],\n", + "\n", + " [[-67518.2656]],\n", + "\n", + " [[-67466.4609]],\n", + "\n", + " [[-67542.9922]],\n", + "\n", + " [[-67585.3281]],\n", + "\n", + " [[-67566.1562]],\n", + "\n", + " [[-67601.9609]],\n", + "\n", + " [[-67558.6719]],\n", + "\n", + " [[-67500.8906]],\n", + "\n", + " [[-67464.7656]],\n", + "\n", + " [[-67503.3125]],\n", + "\n", + " [[-67524.2422]],\n", + "\n", + " [[-67548.8359]],\n", + "\n", + " [[-67516.1562]],\n", + "\n", + " [[-67541.9219]],\n", + "\n", + " [[-67541.7266]],\n", + "\n", + " [[-67550.7500]],\n", + "\n", + " [[-67607.5938]],\n", + "\n", + " [[-67560.4844]],\n", + "\n", + " [[-67436.8047]],\n", + "\n", + " [[-67533.2500]],\n", + "\n", + " [[-67422.6328]],\n", + "\n", + " [[-67543.7891]],\n", + "\n", + " [[-67441.6719]],\n", + "\n", + " [[-67681.5547]],\n", + "\n", + " [[-67624.2969]],\n", + "\n", + " [[-67537.7891]],\n", + "\n", + " [[-67498.8984]],\n", + "\n", + " [[-67460.3516]],\n", + "\n", + " [[-67493.6562]],\n", + "\n", + " [[-67475.1562]],\n", + "\n", + " [[-67539.4766]],\n", + "\n", + " [[-67450.7344]],\n", + "\n", + " [[-67521.1016]],\n", + "\n", + " [[-67558.5781]],\n", + "\n", + " [[-67532.1797]],\n", + "\n", + " [[-67516.8672]],\n", + "\n", + " [[-67507.1719]],\n", + "\n", + " [[-67572.5703]],\n", + "\n", + " [[-67574.2656]],\n", + "\n", + " [[-67440.3594]],\n", + "\n", + " [[-67544.5391]],\n", + "\n", + " [[-67439.3438]],\n", + "\n", + " [[-67684.2188]],\n", + "\n", + " [[-67509.0859]],\n", + "\n", + " [[-67514.6562]],\n", + "\n", + " [[-67566.5781]],\n", + "\n", + " [[-67548.4531]],\n", + "\n", + " [[-67498.0000]],\n", + "\n", + " [[-67459.5938]],\n", + "\n", + " [[-67545.9766]],\n", + "\n", + " [[-67547.4922]],\n", + "\n", + " [[-67585.5547]],\n", + "\n", + " [[-67546.7891]],\n", + "\n", + " [[-67483.5938]],\n", + "\n", + " [[-67470.6328]],\n", + "\n", + " [[-67434.1016]],\n", + "\n", + " [[-67516.7891]],\n", + "\n", + " [[-67568.2188]],\n", + "\n", + " [[-67545.9219]],\n", + "\n", + " [[-67620.7969]],\n", + "\n", + " [[-67524.1094]],\n", + "\n", + " [[-67502.8672]],\n", + "\n", + " [[-67442.5391]],\n", + "\n", + " [[-67484.0703]],\n", + "\n", + " [[-67514.4531]],\n", + "\n", + " [[-67557.3594]],\n", + "\n", + " [[-67563.5938]],\n", + "\n", + " [[-67535.6094]],\n", + "\n", + " [[-67438.4453]],\n", + "\n", + " [[-67497.1719]],\n", + "\n", + " [[-67495.7812]],\n", + "\n", + " [[-67650.5859]],\n", + "\n", + " [[-67514.4219]],\n", + "\n", + " [[-67507.5156]],\n", + "\n", + " [[-67549.8438]],\n", + "\n", + " [[-67518.5781]],\n", + "\n", + " [[-67419.5938]],\n", + "\n", + " [[-67432.6250]],\n", + "\n", + " [[-67417.3984]],\n", + "\n", + " [[-67613.6250]],\n", + "\n", + " [[-67573.4531]],\n", + "\n", + " [[-67584.7734]],\n", + "\n", + " [[-67530.2656]],\n", + "\n", + " [[-67480.0625]]], grad_fn=)\n", + "tensor([[[-65580.7031]],\n", + "\n", + " [[-65574.4766]],\n", + "\n", + " [[-65662.0703]],\n", + "\n", + " [[-65480.6016]],\n", + "\n", + " [[-65514.9727]],\n", + "\n", + " [[-65594.6328]],\n", + "\n", + " [[-65540.2344]],\n", + "\n", + " [[-65519.7773]],\n", + "\n", + " [[-65569.9531]],\n", + "\n", + " [[-65545.4766]],\n", + "\n", + " [[-65546.3906]],\n", + "\n", + " [[-65562.9922]],\n", + "\n", + " [[-65677.4453]],\n", + "\n", + " [[-65615.6016]],\n", + "\n", + " [[-65487.2461]],\n", + "\n", + " [[-65568.6406]],\n", + "\n", + " [[-65615.3281]],\n", + "\n", + " [[-65586.5234]],\n", + "\n", + " [[-65721.0859]],\n", + "\n", + " [[-65623.8906]],\n", + "\n", + " [[-65528.3320]],\n", + "\n", + " [[-65524.0781]],\n", + "\n", + " [[-65527.1680]],\n", + "\n", + " [[-65540.8906]],\n", + "\n", + " [[-65558.6562]],\n", + "\n", + " [[-65613.2344]],\n", + "\n", + " [[-65587.4219]],\n", + "\n", + " [[-65635.4688]],\n", + "\n", + " [[-65630.2656]],\n", + "\n", + " [[-65505.8789]],\n", + "\n", + " [[-65495.1914]],\n", + "\n", + " [[-65624.0781]],\n", + "\n", + " [[-65491.5586]],\n", + "\n", + " [[-65531.1992]],\n", + "\n", + " [[-65586.2344]],\n", + "\n", + " [[-65464.0625]],\n", + "\n", + " [[-65592.0703]],\n", + "\n", + " [[-65553.6250]],\n", + "\n", + " [[-65591.1328]],\n", + "\n", + " [[-65553.9141]],\n", + "\n", + " [[-65707.7578]],\n", + "\n", + " [[-65617.2969]],\n", + "\n", + " [[-65476.0000]],\n", + "\n", + " [[-65487.6758]],\n", + "\n", + " [[-65511.9180]],\n", + "\n", + " [[-65674.2656]],\n", + "\n", + " [[-65505.1055]],\n", + "\n", + " [[-65606.0078]],\n", + "\n", + " [[-65516.9727]],\n", + "\n", + " [[-65534.1523]],\n", + "\n", + " [[-65559.6094]],\n", + "\n", + " [[-65535.6055]],\n", + "\n", + " [[-65565.7969]],\n", + "\n", + " [[-65557.7031]],\n", + "\n", + " [[-65585.1172]],\n", + "\n", + " [[-65562.9609]],\n", + "\n", + " [[-65558.0625]],\n", + "\n", + " [[-65621.4688]],\n", + "\n", + " [[-65535.0781]],\n", + "\n", + " [[-65607.0781]],\n", + "\n", + " [[-65483.6328]],\n", + "\n", + " [[-65520.0586]],\n", + "\n", + " [[-65543.8594]],\n", + "\n", + " [[-65609.4922]],\n", + "\n", + " [[-65528.0039]],\n", + "\n", + " [[-65687.0312]],\n", + "\n", + " [[-65499.6719]],\n", + "\n", + " [[-65589.5547]],\n", + "\n", + " [[-65541.1719]],\n", + "\n", + " [[-65494.6562]],\n", + "\n", + " [[-65505.8203]],\n", + "\n", + " [[-65542.2812]],\n", + "\n", + " [[-65616.1641]],\n", + "\n", + " [[-65561.0391]],\n", + "\n", + " [[-65622.7109]],\n", + "\n", + " [[-65538.9688]],\n", + "\n", + " [[-65597.6484]],\n", + "\n", + " [[-65636.2188]],\n", + "\n", + " [[-65660.6484]],\n", + "\n", + " [[-65638.3672]],\n", + "\n", + " [[-65589.5703]],\n", + "\n", + " [[-65522.6406]],\n", + "\n", + " [[-65499.6953]],\n", + "\n", + " [[-65588.3125]],\n", + "\n", + " [[-65596.4766]],\n", + "\n", + " [[-65623.7266]],\n", + "\n", + " [[-65576.1641]],\n", + "\n", + " [[-65642.2812]],\n", + "\n", + " [[-65636.2188]],\n", + "\n", + " [[-65468.5352]],\n", + "\n", + " [[-65624.2812]],\n", + "\n", + " [[-65589.8047]],\n", + "\n", + " [[-65526.8672]],\n", + "\n", + " [[-65571.9062]],\n", + "\n", + " [[-65536.2188]],\n", + "\n", + " [[-65550.2891]],\n", + "\n", + " [[-65664.9062]],\n", + "\n", + " [[-65580.7422]],\n", + "\n", + " [[-65716.0547]],\n", + "\n", + " [[-65522.1367]],\n", + "\n", + " [[-65564.9922]],\n", + "\n", + " [[-65587.1562]],\n", + "\n", + " [[-65626.2812]],\n", + "\n", + " [[-65623.6094]],\n", + "\n", + " [[-65552.9609]],\n", + "\n", + " [[-65588.0078]],\n", + "\n", + " [[-65641.1719]],\n", + "\n", + " [[-65575.1953]],\n", + "\n", + " [[-65673.4297]],\n", + "\n", + " [[-65689.1406]],\n", + "\n", + " [[-65612.5156]],\n", + "\n", + " [[-65627.5234]],\n", + "\n", + " [[-65565.0781]],\n", + "\n", + " [[-65576.1016]],\n", + "\n", + " [[-65555.2656]],\n", + "\n", + " [[-65535.4648]],\n", + "\n", + " [[-65562.2422]],\n", + "\n", + " [[-65613.2266]],\n", + "\n", + " [[-65607.0859]],\n", + "\n", + " [[-65578.4453]],\n", + "\n", + " [[-65658.2578]],\n", + "\n", + " [[-65519.4414]],\n", + "\n", + " [[-65606.6641]],\n", + "\n", + " [[-65549.9375]],\n", + "\n", + " [[-65571.3750]],\n", + "\n", + " [[-65591.8984]],\n", + "\n", + " [[-65590.8906]],\n", + "\n", + " [[-65580.9453]],\n", + "\n", + " [[-65709.3359]],\n", + "\n", + " [[-65567.3281]],\n", + "\n", + " [[-65561.7500]],\n", + "\n", + " [[-65558.6172]],\n", + "\n", + " [[-65574.9141]],\n", + "\n", + " [[-65613.9141]],\n", + "\n", + " [[-65522.8086]],\n", + "\n", + " [[-65596.5625]],\n", + "\n", + " [[-65517.6680]],\n", + "\n", + " [[-65618.3281]],\n", + "\n", + " [[-65570.8359]],\n", + "\n", + " [[-65607.5234]],\n", + "\n", + " [[-65610.7969]],\n", + "\n", + " [[-65559.0078]],\n", + "\n", + " [[-65516.0586]],\n", + "\n", + " [[-65567.5859]],\n", + "\n", + " [[-65578.1094]],\n", + "\n", + " [[-65579.6406]],\n", + "\n", + " [[-65588.0078]],\n", + "\n", + " [[-65633.8750]],\n", + "\n", + " [[-65559.8906]],\n", + "\n", + " [[-65495.1875]],\n", + "\n", + " [[-65614.7734]],\n", + "\n", + " [[-65591.8984]],\n", + "\n", + " [[-65549.6016]],\n", + "\n", + " [[-65603.6484]],\n", + "\n", + " [[-65574.5547]],\n", + "\n", + " [[-65563.5000]],\n", + "\n", + " [[-65545.8672]],\n", + "\n", + " [[-65518.7656]],\n", + "\n", + " [[-65588.8047]],\n", + "\n", + " [[-65668.4141]],\n", + "\n", + " [[-65626.1016]],\n", + "\n", + " [[-65648.2891]],\n", + "\n", + " [[-65523.2930]],\n", + "\n", + " [[-65506.9922]],\n", + "\n", + " [[-65676.7656]],\n", + "\n", + " [[-65541.0625]],\n", + "\n", + " [[-65565.5000]],\n", + "\n", + " [[-65631.0703]],\n", + "\n", + " [[-65599.7422]],\n", + "\n", + " [[-65581.5312]],\n", + "\n", + " [[-65595.5938]],\n", + "\n", + " [[-65577.3203]],\n", + "\n", + " [[-65530.6602]],\n", + "\n", + " [[-65619.4609]],\n", + "\n", + " [[-65542.2734]],\n", + "\n", + " [[-65502.8242]],\n", + "\n", + " [[-65553.2812]],\n", + "\n", + " [[-65600.4297]],\n", + "\n", + " [[-65557.4609]],\n", + "\n", + " [[-65559.8750]],\n", + "\n", + " [[-65552.4688]],\n", + "\n", + " [[-65571.2578]],\n", + "\n", + " [[-65499.8086]],\n", + "\n", + " [[-65574.0547]],\n", + "\n", + " [[-65652.7969]],\n", + "\n", + " [[-65581.5312]],\n", + "\n", + " [[-65524.6367]],\n", + "\n", + " [[-65552.9297]],\n", + "\n", + " [[-65566.7891]],\n", + "\n", + " [[-65550.2500]],\n", + "\n", + " [[-65565.4219]],\n", + "\n", + " [[-65553.4766]],\n", + "\n", + " [[-65602.5469]],\n", + "\n", + " [[-65498.4688]],\n", + "\n", + " [[-65566.7578]],\n", + "\n", + " [[-65523.8125]],\n", + "\n", + " [[-65490.4062]],\n", + "\n", + " [[-65542.8438]],\n", + "\n", + " [[-65650.7188]],\n", + "\n", + " [[-65556.3672]],\n", + "\n", + " [[-65569.1953]],\n", + "\n", + " [[-65643.9609]],\n", + "\n", + " [[-65556.5781]],\n", + "\n", + " [[-65719.3281]],\n", + "\n", + " [[-65566.4062]],\n", + "\n", + " [[-65635.2109]],\n", + "\n", + " [[-65463.0156]],\n", + "\n", + " [[-65599.2812]],\n", + "\n", + " [[-65512.1250]],\n", + "\n", + " [[-65568.7812]],\n", + "\n", + " [[-65594.3125]],\n", + "\n", + " [[-65533.6367]],\n", + "\n", + " [[-65578.9844]],\n", + "\n", + " [[-65602.1016]],\n", + "\n", + " [[-65546.9297]],\n", + "\n", + " [[-65658.5938]],\n", + "\n", + " [[-65550.1328]],\n", + "\n", + " [[-65486.2422]],\n", + "\n", + " [[-65618.8203]],\n", + "\n", + " [[-65649.1328]],\n", + "\n", + " [[-65515.7656]],\n", + "\n", + " [[-65521.0352]],\n", + "\n", + " [[-65605.9531]],\n", + "\n", + " [[-65694.6484]],\n", + "\n", + " [[-65605.4531]],\n", + "\n", + " [[-65591.6094]],\n", + "\n", + " [[-65639.0391]],\n", + "\n", + " [[-65480.4023]],\n", + "\n", + " [[-65492.9961]],\n", + "\n", + " [[-65585.7109]],\n", + "\n", + " [[-65518.8477]],\n", + "\n", + " [[-65613.4766]],\n", + "\n", + " [[-65580.9062]],\n", + "\n", + " [[-65490.0859]],\n", + "\n", + " [[-65541.7188]],\n", + "\n", + " [[-65603.3281]],\n", + "\n", + " [[-65617.7891]],\n", + "\n", + " [[-65537.2422]],\n", + "\n", + " [[-65620.4297]],\n", + "\n", + " [[-65496.8945]],\n", + "\n", + " [[-65541.3828]],\n", + "\n", + " [[-65550.0859]],\n", + "\n", + " [[-65550.2500]],\n", + "\n", + " [[-65579.6875]],\n", + "\n", + " [[-65555.9844]],\n", + "\n", + " [[-65466.9336]],\n", + "\n", + " [[-65590.1953]],\n", + "\n", + " [[-65572.0391]],\n", + "\n", + " [[-65704.2266]],\n", + "\n", + " [[-65675.0312]],\n", + "\n", + " [[-65654.9219]],\n", + "\n", + " [[-65534.8672]],\n", + "\n", + " [[-65506.6992]],\n", + "\n", + " [[-65567.6328]],\n", + "\n", + " [[-65501.7461]],\n", + "\n", + " [[-65545.9219]]], grad_fn=)\n", + "tensor([[[-63663.4219]],\n", + "\n", + " [[-63627.9688]],\n", + "\n", + " [[-63736.2227]],\n", + "\n", + " [[-63648.6523]],\n", + "\n", + " [[-63584.5234]],\n", + "\n", + " [[-63712.2734]],\n", + "\n", + " [[-63645.5977]],\n", + "\n", + " [[-63684.5234]],\n", + "\n", + " [[-63610.5820]],\n", + "\n", + " [[-63698.1875]],\n", + "\n", + " [[-63652.6836]],\n", + "\n", + " [[-63737.7578]],\n", + "\n", + " [[-63630.6445]],\n", + "\n", + " [[-63662.4883]],\n", + "\n", + " [[-63784.9766]],\n", + "\n", + " [[-63658.8672]],\n", + "\n", + " [[-63789.1875]],\n", + "\n", + " [[-63684.2461]],\n", + "\n", + " [[-63649.4922]],\n", + "\n", + " [[-63617.6055]],\n", + "\n", + " [[-63746.8906]],\n", + "\n", + " [[-63713.1172]],\n", + "\n", + " [[-63764.2734]],\n", + "\n", + " [[-63619.1133]],\n", + "\n", + " [[-63668.5000]],\n", + "\n", + " [[-63750.5391]],\n", + "\n", + " [[-63677.6992]],\n", + "\n", + " [[-63708.9961]],\n", + "\n", + " [[-63649.7930]],\n", + "\n", + " [[-63697.2930]],\n", + "\n", + " [[-63707.1953]],\n", + "\n", + " [[-63676.6250]],\n", + "\n", + " [[-63714.9102]],\n", + "\n", + " [[-63700.3164]],\n", + "\n", + " [[-63590.9102]],\n", + "\n", + " [[-63688.4258]],\n", + "\n", + " [[-63609.5703]],\n", + "\n", + " [[-63552.2344]],\n", + "\n", + " [[-63638.1758]],\n", + "\n", + " [[-63617.7500]],\n", + "\n", + " [[-63723.8750]],\n", + "\n", + " [[-63696.1953]],\n", + "\n", + " [[-63673.4336]],\n", + "\n", + " [[-63690.0586]],\n", + "\n", + " [[-63649.4297]],\n", + "\n", + " [[-63777.4805]],\n", + "\n", + " [[-63727.4883]],\n", + "\n", + " [[-63634.4492]],\n", + "\n", + " [[-63601.5898]],\n", + "\n", + " [[-63736.0391]],\n", + "\n", + " [[-63596.8281]],\n", + "\n", + " [[-63679.4805]],\n", + "\n", + " [[-63578.8945]],\n", + "\n", + " [[-63596.0000]],\n", + "\n", + " [[-63774.6680]],\n", + "\n", + " [[-63658.3398]],\n", + "\n", + " [[-63722.5000]],\n", + "\n", + " [[-63666.3711]],\n", + "\n", + " [[-63704.4531]],\n", + "\n", + " [[-63600.1914]],\n", + "\n", + " [[-63668.6523]],\n", + "\n", + " [[-63717.9023]],\n", + "\n", + " [[-63670.2227]],\n", + "\n", + " [[-63660.5859]],\n", + "\n", + " [[-63702.4727]],\n", + "\n", + " [[-63646.3359]],\n", + "\n", + " [[-63660.5547]],\n", + "\n", + " [[-63615.2773]],\n", + "\n", + " [[-63736.9414]],\n", + "\n", + " [[-63706.0742]],\n", + "\n", + " [[-63712.5508]],\n", + "\n", + " [[-63756.4727]],\n", + "\n", + " [[-63695.3516]],\n", + "\n", + " [[-63738.6094]],\n", + "\n", + " [[-63625.6016]],\n", + "\n", + " [[-63711.8438]],\n", + "\n", + " [[-63682.7930]],\n", + "\n", + " [[-63652.4414]],\n", + "\n", + " [[-63751.8906]],\n", + "\n", + " [[-63678.5430]],\n", + "\n", + " [[-63722.8828]],\n", + "\n", + " [[-63687.5078]],\n", + "\n", + " [[-63790.6602]],\n", + "\n", + " [[-63697.4648]],\n", + "\n", + " [[-63784.2383]],\n", + "\n", + " [[-63616.4648]],\n", + "\n", + " [[-63785.2266]],\n", + "\n", + " [[-63682.6367]],\n", + "\n", + " [[-63717.8086]],\n", + "\n", + " [[-63679.3125]],\n", + "\n", + " [[-63848.2422]],\n", + "\n", + " [[-63754.7695]],\n", + "\n", + " [[-63729.5273]],\n", + "\n", + " [[-63687.1641]],\n", + "\n", + " [[-63728.5273]],\n", + "\n", + " [[-63695.5156]],\n", + "\n", + " [[-63710.2969]],\n", + "\n", + " [[-63666.5742]],\n", + "\n", + " [[-63748.0039]],\n", + "\n", + " [[-63719.2266]],\n", + "\n", + " [[-63688.5117]],\n", + "\n", + " [[-63631.1875]],\n", + "\n", + " [[-63655.0508]],\n", + "\n", + " [[-63590.5703]],\n", + "\n", + " [[-63750.6875]],\n", + "\n", + " [[-63666.3398]],\n", + "\n", + " [[-63703.5352]],\n", + "\n", + " [[-63681.7031]],\n", + "\n", + " [[-63612.6914]],\n", + "\n", + " [[-63645.5508]],\n", + "\n", + " [[-63807.9141]],\n", + "\n", + " [[-63814.4805]],\n", + "\n", + " [[-63661.8359]],\n", + "\n", + " [[-63671.1758]],\n", + "\n", + " [[-63677.6094]],\n", + "\n", + " [[-63690.6914]],\n", + "\n", + " [[-63653.4609]],\n", + "\n", + " [[-63806.0078]],\n", + "\n", + " [[-63774.4883]],\n", + "\n", + " [[-63669.8867]],\n", + "\n", + " [[-63715.5430]],\n", + "\n", + " [[-63707.1289]],\n", + "\n", + " [[-63693.4023]],\n", + "\n", + " [[-63694.4141]],\n", + "\n", + " [[-63694.1055]],\n", + "\n", + " [[-63751.5625]],\n", + "\n", + " [[-63736.3477]],\n", + "\n", + " [[-63646.5977]],\n", + "\n", + " [[-63751.2266]],\n", + "\n", + " [[-63660.5977]],\n", + "\n", + " [[-63569.6602]],\n", + "\n", + " [[-63664.5078]],\n", + "\n", + " [[-63667.5859]],\n", + "\n", + " [[-63707.8203]],\n", + "\n", + " [[-63643.4727]],\n", + "\n", + " [[-63676.4688]],\n", + "\n", + " [[-63694.7852]],\n", + "\n", + " [[-63581.5820]],\n", + "\n", + " [[-63654.2734]],\n", + "\n", + " [[-63681.7812]],\n", + "\n", + " [[-63612.9727]],\n", + "\n", + " [[-63624.6641]],\n", + "\n", + " [[-63680.7383]],\n", + "\n", + " [[-63663.4961]],\n", + "\n", + " [[-63656.9883]],\n", + "\n", + " [[-63709.7266]],\n", + "\n", + " [[-63732.4883]],\n", + "\n", + " [[-63738.1094]],\n", + "\n", + " [[-63733.0742]],\n", + "\n", + " [[-63701.4961]],\n", + "\n", + " [[-63655.3945]],\n", + "\n", + " [[-63766.7266]],\n", + "\n", + " [[-63647.4336]],\n", + "\n", + " [[-63626.3398]],\n", + "\n", + " [[-63694.2188]],\n", + "\n", + " [[-63710.9609]],\n", + "\n", + " [[-63685.8672]],\n", + "\n", + " [[-63619.4062]],\n", + "\n", + " [[-63661.3477]],\n", + "\n", + " [[-63613.0508]],\n", + "\n", + " [[-63713.7422]],\n", + "\n", + " [[-63746.3047]],\n", + "\n", + " [[-63846.1367]],\n", + "\n", + " [[-63594.2148]],\n", + "\n", + " [[-63647.5703]],\n", + "\n", + " [[-63740.7734]],\n", + "\n", + " [[-63648.8281]],\n", + "\n", + " [[-63780.4180]],\n", + "\n", + " [[-63684.7656]],\n", + "\n", + " [[-63623.2891]],\n", + "\n", + " [[-63709.0859]],\n", + "\n", + " [[-63684.6602]],\n", + "\n", + " [[-63736.1328]],\n", + "\n", + " [[-63747.0312]],\n", + "\n", + " [[-63729.3008]],\n", + "\n", + " [[-63677.4727]],\n", + "\n", + " [[-63585.8750]],\n", + "\n", + " [[-63737.7031]],\n", + "\n", + " [[-63657.7109]],\n", + "\n", + " [[-63700.3438]],\n", + "\n", + " [[-63578.2422]],\n", + "\n", + " [[-63730.1406]],\n", + "\n", + " [[-63676.1094]],\n", + "\n", + " [[-63628.2109]],\n", + "\n", + " [[-63733.8789]],\n", + "\n", + " [[-63595.6797]],\n", + "\n", + " [[-63744.2617]],\n", + "\n", + " [[-63656.5352]],\n", + "\n", + " [[-63595.0312]],\n", + "\n", + " [[-63774.8555]],\n", + "\n", + " [[-63708.0938]],\n", + "\n", + " [[-63700.1133]],\n", + "\n", + " [[-63696.6016]],\n", + "\n", + " [[-63783.7539]],\n", + "\n", + " [[-63690.0156]],\n", + "\n", + " [[-63578.1836]],\n", + "\n", + " [[-63756.1133]],\n", + "\n", + " [[-63603.8008]],\n", + "\n", + " [[-63778.4180]],\n", + "\n", + " [[-63620.5312]],\n", + "\n", + " [[-63653.5312]],\n", + "\n", + " [[-63708.8164]],\n", + "\n", + " [[-63673.7812]],\n", + "\n", + " [[-63727.6914]],\n", + "\n", + " [[-63687.6875]],\n", + "\n", + " [[-63590.8281]],\n", + "\n", + " [[-63693.7461]],\n", + "\n", + " [[-63634.8594]],\n", + "\n", + " [[-63688.6680]],\n", + "\n", + " [[-63653.9258]],\n", + "\n", + " [[-63747.6250]],\n", + "\n", + " [[-63646.5664]],\n", + "\n", + " [[-63670.7656]],\n", + "\n", + " [[-63677.5742]],\n", + "\n", + " [[-63596.4141]],\n", + "\n", + " [[-63636.8047]],\n", + "\n", + " [[-63691.1992]],\n", + "\n", + " [[-63661.9805]],\n", + "\n", + " [[-63712.5859]],\n", + "\n", + " [[-63620.6250]],\n", + "\n", + " [[-63628.2070]],\n", + "\n", + " [[-63655.9102]],\n", + "\n", + " [[-63640.0078]],\n", + "\n", + " [[-63653.3750]],\n", + "\n", + " [[-63670.5820]],\n", + "\n", + " [[-63748.7383]],\n", + "\n", + " [[-63707.1719]],\n", + "\n", + " [[-63677.4688]],\n", + "\n", + " [[-63677.2422]],\n", + "\n", + " [[-63668.5000]],\n", + "\n", + " [[-63722.0352]],\n", + "\n", + " [[-63722.7891]],\n", + "\n", + " [[-63744.0586]],\n", + "\n", + " [[-63771.3828]],\n", + "\n", + " [[-63798.1094]],\n", + "\n", + " [[-63660.8477]],\n", + "\n", + " [[-63722.5625]],\n", + "\n", + " [[-63759.0625]],\n", + "\n", + " [[-63727.9688]],\n", + "\n", + " [[-63613.4922]],\n", + "\n", + " [[-63706.9648]],\n", + "\n", + " [[-63718.7852]],\n", + "\n", + " [[-63769.5625]],\n", + "\n", + " [[-63728.8555]],\n", + "\n", + " [[-63870.9961]],\n", + "\n", + " [[-63722.0430]],\n", + "\n", + " [[-63712.7266]],\n", + "\n", + " [[-63684.7578]],\n", + "\n", + " [[-63584.6562]],\n", + "\n", + " [[-63740.9375]],\n", + "\n", + " [[-63695.5273]],\n", + "\n", + " [[-63676.1133]],\n", + "\n", + " [[-63675.5039]],\n", + "\n", + " [[-63649.0469]],\n", + "\n", + " [[-63854.3203]],\n", + "\n", + " [[-63681.1562]]], grad_fn=)\n", + "tensor([[[-61894.6992]],\n", + "\n", + " [[-61801.3086]],\n", + "\n", + " [[-61845.5586]],\n", + "\n", + " [[-61861.3828]],\n", + "\n", + " [[-61814.8477]],\n", + "\n", + " [[-61717.4141]],\n", + "\n", + " [[-61821.4922]],\n", + "\n", + " [[-61831.6484]],\n", + "\n", + " [[-61831.3555]],\n", + "\n", + " [[-61844.6094]],\n", + "\n", + " [[-61720.5742]],\n", + "\n", + " [[-61806.0000]],\n", + "\n", + " [[-61828.8398]],\n", + "\n", + " [[-61836.9180]],\n", + "\n", + " [[-61872.0977]],\n", + "\n", + " [[-61845.4883]],\n", + "\n", + " [[-61895.4141]],\n", + "\n", + " [[-61792.1289]],\n", + "\n", + " [[-61865.8906]],\n", + "\n", + " [[-61712.2344]],\n", + "\n", + " [[-61722.4688]],\n", + "\n", + " [[-61771.8477]],\n", + "\n", + " [[-61873.1602]],\n", + "\n", + " [[-61728.5352]],\n", + "\n", + " [[-61826.6406]],\n", + "\n", + " [[-61800.8516]],\n", + "\n", + " [[-61891.1289]],\n", + "\n", + " [[-61900.4805]],\n", + "\n", + " [[-61786.6055]],\n", + "\n", + " [[-61804.8828]],\n", + "\n", + " [[-61804.9258]],\n", + "\n", + " [[-61874.1328]],\n", + "\n", + " [[-61727.9023]],\n", + "\n", + " [[-61774.4453]],\n", + "\n", + " [[-61782.9141]],\n", + "\n", + " [[-61910.6250]],\n", + "\n", + " [[-61827.0977]],\n", + "\n", + " [[-61725.2422]],\n", + "\n", + " [[-61845.7539]],\n", + "\n", + " [[-61874.3633]],\n", + "\n", + " [[-61772.1094]],\n", + "\n", + " [[-61761.0977]],\n", + "\n", + " [[-61833.6836]],\n", + "\n", + " [[-61871.8867]],\n", + "\n", + " [[-61859.0352]],\n", + "\n", + " [[-61708.2461]],\n", + "\n", + " [[-61825.0117]],\n", + "\n", + " [[-61878.5898]],\n", + "\n", + " [[-61905.0977]],\n", + "\n", + " [[-61773.4258]],\n", + "\n", + " [[-61703.2734]],\n", + "\n", + " [[-61807.0234]],\n", + "\n", + " [[-61701.6680]],\n", + "\n", + " [[-61819.9219]],\n", + "\n", + " [[-61777.6328]],\n", + "\n", + " [[-61861.0820]],\n", + "\n", + " [[-61880.9336]],\n", + "\n", + " [[-61835.3438]],\n", + "\n", + " [[-61809.8867]],\n", + "\n", + " [[-61837.4219]],\n", + "\n", + " [[-61800.5625]],\n", + "\n", + " [[-61843.7578]],\n", + "\n", + " [[-61886.5977]],\n", + "\n", + " [[-61912.4805]],\n", + "\n", + " [[-61893.1133]],\n", + "\n", + " [[-61956.5312]],\n", + "\n", + " [[-61817.4414]],\n", + "\n", + " [[-61729.1406]],\n", + "\n", + " [[-61832.3438]],\n", + "\n", + " [[-61815.2969]],\n", + "\n", + " [[-61749.6328]],\n", + "\n", + " [[-61829.2500]],\n", + "\n", + " [[-61759.7891]],\n", + "\n", + " [[-61738.3555]],\n", + "\n", + " [[-61817.2031]],\n", + "\n", + " [[-61816.6758]],\n", + "\n", + " [[-61816.0586]],\n", + "\n", + " [[-61789.1992]],\n", + "\n", + " [[-61794.0938]],\n", + "\n", + " [[-61935.9336]],\n", + "\n", + " [[-61866.5703]],\n", + "\n", + " [[-61704.3086]],\n", + "\n", + " [[-61742.9766]],\n", + "\n", + " [[-61877.1133]],\n", + "\n", + " [[-61816.2500]],\n", + "\n", + " [[-61899.5234]],\n", + "\n", + " [[-61886.3438]],\n", + "\n", + " [[-61945.2031]],\n", + "\n", + " [[-61821.7461]],\n", + "\n", + " [[-61761.6445]],\n", + "\n", + " [[-61883.5859]],\n", + "\n", + " [[-61861.0156]],\n", + "\n", + " [[-61823.9727]],\n", + "\n", + " [[-61806.5078]],\n", + "\n", + " [[-61824.4492]],\n", + "\n", + " [[-61827.9180]],\n", + "\n", + " [[-61749.6992]],\n", + "\n", + " [[-61928.0312]],\n", + "\n", + " [[-61872.7500]],\n", + "\n", + " [[-61963.8359]],\n", + "\n", + " [[-61881.8086]],\n", + "\n", + " [[-61853.0352]],\n", + "\n", + " [[-61829.3750]],\n", + "\n", + " [[-61879.2305]],\n", + "\n", + " [[-61707.1836]],\n", + "\n", + " [[-61856.3555]],\n", + "\n", + " [[-61855.3789]],\n", + "\n", + " [[-61832.0781]],\n", + "\n", + " [[-61769.1016]],\n", + "\n", + " [[-61832.9883]],\n", + "\n", + " [[-61851.4336]],\n", + "\n", + " [[-61850.5820]],\n", + "\n", + " [[-61937.1602]],\n", + "\n", + " [[-61764.1602]],\n", + "\n", + " [[-61709.8789]],\n", + "\n", + " [[-61856.5938]],\n", + "\n", + " [[-61900.3008]],\n", + "\n", + " [[-61860.4844]],\n", + "\n", + " [[-61875.9297]],\n", + "\n", + " [[-61829.9258]],\n", + "\n", + " [[-61855.3398]],\n", + "\n", + " [[-61744.5625]],\n", + "\n", + " [[-61802.8828]],\n", + "\n", + " [[-61795.6445]],\n", + "\n", + " [[-61905.5234]],\n", + "\n", + " [[-61883.4180]],\n", + "\n", + " [[-61831.6914]],\n", + "\n", + " [[-61913.9922]],\n", + "\n", + " [[-61824.5352]],\n", + "\n", + " [[-61791.1016]],\n", + "\n", + " [[-61929.7969]],\n", + "\n", + " [[-61857.0273]],\n", + "\n", + " [[-61773.3945]],\n", + "\n", + " [[-61843.8555]],\n", + "\n", + " [[-61829.6953]],\n", + "\n", + " [[-61753.8594]],\n", + "\n", + " [[-61811.1328]],\n", + "\n", + " [[-61761.1992]],\n", + "\n", + " [[-61960.2109]],\n", + "\n", + " [[-61859.9570]],\n", + "\n", + " [[-61789.6328]],\n", + "\n", + " [[-61846.9023]],\n", + "\n", + " [[-61916.7148]],\n", + "\n", + " [[-61843.3047]],\n", + "\n", + " [[-61863.2930]],\n", + "\n", + " [[-61881.8789]],\n", + "\n", + " [[-61848.0391]],\n", + "\n", + " [[-61789.3203]],\n", + "\n", + " [[-61852.9688]],\n", + "\n", + " [[-61746.6836]],\n", + "\n", + " [[-61835.8359]],\n", + "\n", + " [[-61870.6211]],\n", + "\n", + " [[-61893.9492]],\n", + "\n", + " [[-61847.9141]],\n", + "\n", + " [[-61765.0859]],\n", + "\n", + " [[-61759.1289]],\n", + "\n", + " [[-61798.9844]],\n", + "\n", + " [[-61821.2852]],\n", + "\n", + " [[-61813.5547]],\n", + "\n", + " [[-61913.8047]],\n", + "\n", + " [[-61906.4492]],\n", + "\n", + " [[-61752.2773]],\n", + "\n", + " [[-61815.8008]],\n", + "\n", + " [[-61867.2734]],\n", + "\n", + " [[-61820.8711]],\n", + "\n", + " [[-61818.8477]],\n", + "\n", + " [[-61716.9414]],\n", + "\n", + " [[-61840.4648]],\n", + "\n", + " [[-61739.1406]],\n", + "\n", + " [[-61858.3672]],\n", + "\n", + " [[-61808.3242]],\n", + "\n", + " [[-61803.6758]],\n", + "\n", + " [[-61794.9023]],\n", + "\n", + " [[-61851.3438]],\n", + "\n", + " [[-61871.2695]],\n", + "\n", + " [[-61787.9961]],\n", + "\n", + " [[-61842.4492]],\n", + "\n", + " [[-61814.8242]],\n", + "\n", + " [[-61733.5547]],\n", + "\n", + " [[-61839.3438]],\n", + "\n", + " [[-61809.5234]],\n", + "\n", + " [[-61799.8789]],\n", + "\n", + " [[-61868.7734]],\n", + "\n", + " [[-61816.2891]],\n", + "\n", + " [[-61732.8398]],\n", + "\n", + " [[-61952.5234]],\n", + "\n", + " [[-61780.7695]],\n", + "\n", + " [[-61884.1719]],\n", + "\n", + " [[-61813.5234]],\n", + "\n", + " [[-61806.1094]],\n", + "\n", + " [[-61838.5469]],\n", + "\n", + " [[-61962.8984]],\n", + "\n", + " [[-61799.5078]],\n", + "\n", + " [[-61854.1172]],\n", + "\n", + " [[-61787.8164]],\n", + "\n", + " [[-61825.9844]],\n", + "\n", + " [[-61727.9844]],\n", + "\n", + " [[-61844.9844]],\n", + "\n", + " [[-61770.6367]],\n", + "\n", + " [[-61812.7578]],\n", + "\n", + " [[-61881.7344]],\n", + "\n", + " [[-61723.5234]],\n", + "\n", + " [[-61927.8359]],\n", + "\n", + " [[-61751.2773]],\n", + "\n", + " [[-61868.4141]],\n", + "\n", + " [[-61827.0938]],\n", + "\n", + " [[-61856.3125]],\n", + "\n", + " [[-61860.8086]],\n", + "\n", + " [[-61881.4062]],\n", + "\n", + " [[-61863.3828]],\n", + "\n", + " [[-61965.4844]],\n", + "\n", + " [[-61873.1211]],\n", + "\n", + " [[-61791.8633]],\n", + "\n", + " [[-61848.9297]],\n", + "\n", + " [[-61831.2148]],\n", + "\n", + " [[-61829.5352]],\n", + "\n", + " [[-61898.4570]],\n", + "\n", + " [[-61824.4609]],\n", + "\n", + " [[-61838.1680]],\n", + "\n", + " [[-61738.1133]],\n", + "\n", + " [[-61866.5547]],\n", + "\n", + " [[-61805.2500]],\n", + "\n", + " [[-61956.5352]],\n", + "\n", + " [[-61848.4883]],\n", + "\n", + " [[-61840.4492]],\n", + "\n", + " [[-61694.2305]],\n", + "\n", + " [[-61793.1289]],\n", + "\n", + " [[-61780.7109]],\n", + "\n", + " [[-61842.0977]],\n", + "\n", + " [[-61729.0430]],\n", + "\n", + " [[-61753.3945]],\n", + "\n", + " [[-61865.6875]],\n", + "\n", + " [[-61852.1523]],\n", + "\n", + " [[-61814.5703]],\n", + "\n", + " [[-61827.1250]],\n", + "\n", + " [[-61822.0625]],\n", + "\n", + " [[-61937.5938]],\n", + "\n", + " [[-61782.3281]],\n", + "\n", + " [[-61773.3984]],\n", + "\n", + " [[-61738.1484]],\n", + "\n", + " [[-61869.5078]],\n", + "\n", + " [[-61753.5234]],\n", + "\n", + " [[-61858.3594]],\n", + "\n", + " [[-61782.6562]],\n", + "\n", + " [[-61827.9570]],\n", + "\n", + " [[-61873.5273]],\n", + "\n", + " [[-61920.5469]],\n", + "\n", + " [[-61949.7812]],\n", + "\n", + " [[-61821.2344]],\n", + "\n", + " [[-61870.0898]],\n", + "\n", + " [[-61807.2539]],\n", + "\n", + " [[-61860.1758]],\n", + "\n", + " [[-61873.5703]],\n", + "\n", + " [[-61711.7812]],\n", + "\n", + " [[-61898.9023]],\n", + "\n", + " [[-61742.9766]]], grad_fn=)\n", + "tensor([[[-60038.2188]],\n", + "\n", + " [[-60048.1562]],\n", + "\n", + " [[-59983.8086]],\n", + "\n", + " [[-60007.6211]],\n", + "\n", + " [[-60028.2344]],\n", + "\n", + " [[-59993.9141]],\n", + "\n", + " [[-60061.9297]],\n", + "\n", + " [[-60053.0000]],\n", + "\n", + " [[-60007.7461]],\n", + "\n", + " [[-60059.1016]],\n", + "\n", + " [[-59980.8242]],\n", + "\n", + " [[-60001.8789]],\n", + "\n", + " [[-60001.8867]],\n", + "\n", + " [[-59958.2031]],\n", + "\n", + " [[-59973.9492]],\n", + "\n", + " [[-59955.2969]],\n", + "\n", + " [[-59997.6523]],\n", + "\n", + " [[-60041.3164]],\n", + "\n", + " [[-59974.9648]],\n", + "\n", + " [[-60111.5547]],\n", + "\n", + " [[-59941.7383]],\n", + "\n", + " [[-59998.2773]],\n", + "\n", + " [[-60025.3984]],\n", + "\n", + " [[-60045.8164]],\n", + "\n", + " [[-60075.3438]],\n", + "\n", + " [[-60089.8672]],\n", + "\n", + " [[-59971.8438]],\n", + "\n", + " [[-60023.1484]],\n", + "\n", + " [[-60036.8555]],\n", + "\n", + " [[-59920.1797]],\n", + "\n", + " [[-60017.7656]],\n", + "\n", + " [[-60052.7109]],\n", + "\n", + " [[-60125.4219]],\n", + "\n", + " [[-59991.1055]],\n", + "\n", + " [[-59923.8086]],\n", + "\n", + " [[-60015.1016]],\n", + "\n", + " [[-59973.0977]],\n", + "\n", + " [[-59933.5664]],\n", + "\n", + " [[-60067.3984]],\n", + "\n", + " [[-60010.2773]],\n", + "\n", + " [[-60107.3086]],\n", + "\n", + " [[-60027.9531]],\n", + "\n", + " [[-60010.1562]],\n", + "\n", + " [[-59962.5742]],\n", + "\n", + " [[-60030.1992]],\n", + "\n", + " [[-59972.6914]],\n", + "\n", + " [[-60038.0586]],\n", + "\n", + " [[-60024.0078]],\n", + "\n", + " [[-59938.8320]],\n", + "\n", + " [[-59920.5859]],\n", + "\n", + " [[-60081.6641]],\n", + "\n", + " [[-60086.3984]],\n", + "\n", + " [[-60152.0977]],\n", + "\n", + " [[-60060.4102]],\n", + "\n", + " [[-60177.3594]],\n", + "\n", + " [[-60035.6016]],\n", + "\n", + " [[-60060.2109]],\n", + "\n", + " [[-59965.9062]],\n", + "\n", + " [[-60031.0625]],\n", + "\n", + " [[-60081.8750]],\n", + "\n", + " [[-60091.1602]],\n", + "\n", + " [[-59884.3398]],\n", + "\n", + " [[-59946.0391]],\n", + "\n", + " [[-60030.6875]],\n", + "\n", + " [[-59960.8906]],\n", + "\n", + " [[-59981.5625]],\n", + "\n", + " [[-60062.8828]],\n", + "\n", + " [[-59969.4375]],\n", + "\n", + " [[-59971.4492]],\n", + "\n", + " [[-60091.9492]],\n", + "\n", + " [[-59893.3633]],\n", + "\n", + " [[-60053.8086]],\n", + "\n", + " [[-60020.5938]],\n", + "\n", + " [[-60053.7344]],\n", + "\n", + " [[-59987.1641]],\n", + "\n", + " [[-59966.5078]],\n", + "\n", + " [[-59915.7930]],\n", + "\n", + " [[-60024.9062]],\n", + "\n", + " [[-60041.5781]],\n", + "\n", + " [[-59908.2969]],\n", + "\n", + " [[-60036.0547]],\n", + "\n", + " [[-59967.0273]],\n", + "\n", + " [[-59992.5938]],\n", + "\n", + " [[-60006.6797]],\n", + "\n", + " [[-60064.2305]],\n", + "\n", + " [[-59928.1133]],\n", + "\n", + " [[-59986.2148]],\n", + "\n", + " [[-60055.6523]],\n", + "\n", + " [[-59978.6211]],\n", + "\n", + " [[-60071.6367]],\n", + "\n", + " [[-59939.0820]],\n", + "\n", + " [[-60015.2812]],\n", + "\n", + " [[-60087.0078]],\n", + "\n", + " [[-60067.2148]],\n", + "\n", + " [[-59915.0898]],\n", + "\n", + " [[-60071.8086]],\n", + "\n", + " [[-59963.0273]],\n", + "\n", + " [[-60035.7539]],\n", + "\n", + " [[-59923.7344]],\n", + "\n", + " [[-59979.7266]],\n", + "\n", + " [[-60024.2539]],\n", + "\n", + " [[-60043.9688]],\n", + "\n", + " [[-59913.2305]],\n", + "\n", + " [[-60055.1328]],\n", + "\n", + " [[-60005.1914]],\n", + "\n", + " [[-60034.8750]],\n", + "\n", + " [[-60010.8164]],\n", + "\n", + " [[-60010.1875]],\n", + "\n", + " [[-60006.5859]],\n", + "\n", + " [[-60035.8008]],\n", + "\n", + " [[-60016.2656]],\n", + "\n", + " [[-59985.0156]],\n", + "\n", + " [[-60054.7305]],\n", + "\n", + " [[-60091.1055]],\n", + "\n", + " [[-60021.3633]],\n", + "\n", + " [[-60042.5195]],\n", + "\n", + " [[-60071.1289]],\n", + "\n", + " [[-60033.9922]],\n", + "\n", + " [[-59977.5781]],\n", + "\n", + " [[-59958.2422]],\n", + "\n", + " [[-59982.6992]],\n", + "\n", + " [[-60017.7734]],\n", + "\n", + " [[-59932.5352]],\n", + "\n", + " [[-60031.5312]],\n", + "\n", + " [[-60023.2344]],\n", + "\n", + " [[-60013.8008]],\n", + "\n", + " [[-59909.2461]],\n", + "\n", + " [[-60039.4492]],\n", + "\n", + " [[-60066.3477]],\n", + "\n", + " [[-59979.2422]],\n", + "\n", + " [[-60093.2148]],\n", + "\n", + " [[-59992.1836]],\n", + "\n", + " [[-59987.9609]],\n", + "\n", + " [[-59951.2617]],\n", + "\n", + " [[-59943.2500]],\n", + "\n", + " [[-59983.4414]],\n", + "\n", + " [[-60028.8633]],\n", + "\n", + " [[-60045.2656]],\n", + "\n", + " [[-59985.8711]],\n", + "\n", + " [[-60133.2773]],\n", + "\n", + " [[-60024.4922]],\n", + "\n", + " [[-59936.8672]],\n", + "\n", + " [[-60035.5430]],\n", + "\n", + " [[-59916.7539]],\n", + "\n", + " [[-60027.4219]],\n", + "\n", + " [[-60131.8789]],\n", + "\n", + " [[-59968.2656]],\n", + "\n", + " [[-60056.2461]],\n", + "\n", + " [[-60013.8906]],\n", + "\n", + " [[-59990.9102]],\n", + "\n", + " [[-60050.1719]],\n", + "\n", + " [[-60077.2305]],\n", + "\n", + " [[-60100.0938]],\n", + "\n", + " [[-60115.8555]],\n", + "\n", + " [[-59896.1094]],\n", + "\n", + " [[-60016.0352]],\n", + "\n", + " [[-59960.6133]],\n", + "\n", + " [[-60046.2578]],\n", + "\n", + " [[-60042.2188]],\n", + "\n", + " [[-60075.8398]],\n", + "\n", + " [[-60054.1445]],\n", + "\n", + " [[-60060.7383]],\n", + "\n", + " [[-60046.1797]],\n", + "\n", + " [[-60032.2695]],\n", + "\n", + " [[-60052.1328]],\n", + "\n", + " [[-60093.9102]],\n", + "\n", + " [[-60011.8516]],\n", + "\n", + " [[-60020.7422]],\n", + "\n", + " [[-59938.4258]],\n", + "\n", + " [[-60048.0781]],\n", + "\n", + " [[-60007.6094]],\n", + "\n", + " [[-60033.4453]],\n", + "\n", + " [[-59947.2031]],\n", + "\n", + " [[-59899.5078]],\n", + "\n", + " [[-60001.9844]],\n", + "\n", + " [[-60024.4219]],\n", + "\n", + " [[-59999.5508]],\n", + "\n", + " [[-60022.5625]],\n", + "\n", + " [[-60015.3633]],\n", + "\n", + " [[-60003.4883]],\n", + "\n", + " [[-59958.7695]],\n", + "\n", + " [[-59914.2070]],\n", + "\n", + " [[-59981.7188]],\n", + "\n", + " [[-60010.2070]],\n", + "\n", + " [[-59997.8867]],\n", + "\n", + " [[-60026.5703]],\n", + "\n", + " [[-60065.3320]],\n", + "\n", + " [[-60004.5938]],\n", + "\n", + " [[-60030.6875]],\n", + "\n", + " [[-60004.2109]],\n", + "\n", + " [[-60113.3125]],\n", + "\n", + " [[-59969.5781]],\n", + "\n", + " [[-60034.7891]],\n", + "\n", + " [[-59889.9961]],\n", + "\n", + " [[-60011.9141]],\n", + "\n", + " [[-60078.5742]],\n", + "\n", + " [[-60016.8984]],\n", + "\n", + " [[-59993.2148]],\n", + "\n", + " [[-60009.8398]],\n", + "\n", + " [[-59953.9180]],\n", + "\n", + " [[-60044.0664]],\n", + "\n", + " [[-60086.2578]],\n", + "\n", + " [[-59949.3242]],\n", + "\n", + " [[-59957.2500]],\n", + "\n", + " [[-60047.4336]],\n", + "\n", + " [[-60001.7969]],\n", + "\n", + " [[-59976.0234]],\n", + "\n", + " [[-60031.9375]],\n", + "\n", + " [[-59970.5742]],\n", + "\n", + " [[-60086.0547]],\n", + "\n", + " [[-59969.5820]],\n", + "\n", + " [[-60060.6602]],\n", + "\n", + " [[-60044.6250]],\n", + "\n", + " [[-60042.8516]],\n", + "\n", + " [[-60102.2812]],\n", + "\n", + " [[-60106.5156]],\n", + "\n", + " [[-60047.8555]],\n", + "\n", + " [[-60064.1875]],\n", + "\n", + " [[-60082.2617]],\n", + "\n", + " [[-60016.6992]],\n", + "\n", + " [[-60000.1797]],\n", + "\n", + " [[-60062.4375]],\n", + "\n", + " [[-60074.8516]],\n", + "\n", + " [[-59992.3516]],\n", + "\n", + " [[-60127.2852]],\n", + "\n", + " [[-59903.8711]],\n", + "\n", + " [[-60030.9766]],\n", + "\n", + " [[-59922.5156]],\n", + "\n", + " [[-60049.8945]],\n", + "\n", + " [[-59973.7070]],\n", + "\n", + " [[-60036.3125]],\n", + "\n", + " [[-60021.2500]],\n", + "\n", + " [[-59949.6992]],\n", + "\n", + " [[-60018.8281]],\n", + "\n", + " [[-60013.2891]],\n", + "\n", + " [[-59995.0547]],\n", + "\n", + " [[-60086.0977]],\n", + "\n", + " [[-59946.0156]],\n", + "\n", + " [[-60076.2852]],\n", + "\n", + " [[-59974.9648]],\n", + "\n", + " [[-60065.1250]],\n", + "\n", + " [[-60095.9648]],\n", + "\n", + " [[-59895.3984]],\n", + "\n", + " [[-60018.5430]],\n", + "\n", + " [[-60001.7656]],\n", + "\n", + " [[-59896.3633]],\n", + "\n", + " [[-60063.6992]],\n", + "\n", + " [[-60038.4648]],\n", + "\n", + " [[-60020.5859]],\n", + "\n", + " [[-60001.5898]],\n", + "\n", + " [[-60131.6172]],\n", + "\n", + " [[-60060.8164]],\n", + "\n", + " [[-59937.9648]],\n", + "\n", + " [[-60068.8398]],\n", + "\n", + " [[-59908.6602]],\n", + "\n", + " [[-60058.9219]]], grad_fn=)\n", + "tensor([[[-58265.7734]],\n", + "\n", + " [[-58265.0195]],\n", + "\n", + " [[-58318.6680]],\n", + "\n", + " [[-58308.4375]],\n", + "\n", + " [[-58385.9023]],\n", + "\n", + " [[-58411.1836]],\n", + "\n", + " [[-58268.1797]],\n", + "\n", + " [[-58168.4180]],\n", + "\n", + " [[-58235.1992]],\n", + "\n", + " [[-58237.3477]],\n", + "\n", + " [[-58341.5508]],\n", + "\n", + " [[-58208.5078]],\n", + "\n", + " [[-58149.8984]],\n", + "\n", + " [[-58280.7969]],\n", + "\n", + " [[-58271.2852]],\n", + "\n", + " [[-58257.6758]],\n", + "\n", + " [[-58319.9141]],\n", + "\n", + " [[-58318.4336]],\n", + "\n", + " [[-58218.8008]],\n", + "\n", + " [[-58112.2422]],\n", + "\n", + " [[-58299.7734]],\n", + "\n", + " [[-58152.0586]],\n", + "\n", + " [[-58151.0000]],\n", + "\n", + " [[-58327.8672]],\n", + "\n", + " [[-58218.1094]],\n", + "\n", + " [[-58310.2266]],\n", + "\n", + " [[-58250.2812]],\n", + "\n", + " [[-58208.1016]],\n", + "\n", + " [[-58267.6797]],\n", + "\n", + " [[-58205.6016]],\n", + "\n", + " [[-58233.0078]],\n", + "\n", + " [[-58163.4297]],\n", + "\n", + " [[-58150.8008]],\n", + "\n", + " [[-58327.9258]],\n", + "\n", + " [[-58206.0977]],\n", + "\n", + " [[-58229.0117]],\n", + "\n", + " [[-58192.2305]],\n", + "\n", + " [[-58139.8867]],\n", + "\n", + " [[-58192.9766]],\n", + "\n", + " [[-58341.5352]],\n", + "\n", + " [[-58316.7227]],\n", + "\n", + " [[-58173.4297]],\n", + "\n", + " [[-58301.7227]],\n", + "\n", + " [[-58263.7773]],\n", + "\n", + " [[-58312.9492]],\n", + "\n", + " [[-58243.7461]],\n", + "\n", + " [[-58255.0469]],\n", + "\n", + " [[-58334.4805]],\n", + "\n", + " [[-58223.7734]],\n", + "\n", + " [[-58211.4688]],\n", + "\n", + " [[-58258.9766]],\n", + "\n", + " [[-58239.5234]],\n", + "\n", + " [[-58271.2812]],\n", + "\n", + " [[-58222.3359]],\n", + "\n", + " [[-58159.5430]],\n", + "\n", + " [[-58145.7031]],\n", + "\n", + " [[-58259.6211]],\n", + "\n", + " [[-58197.6797]],\n", + "\n", + " [[-58260.2734]],\n", + "\n", + " [[-58127.3555]],\n", + "\n", + " [[-58282.4766]],\n", + "\n", + " [[-58166.4531]],\n", + "\n", + " [[-58184.7344]],\n", + "\n", + " [[-58205.1445]],\n", + "\n", + " [[-58224.0195]],\n", + "\n", + " [[-58238.8984]],\n", + "\n", + " [[-58228.6758]],\n", + "\n", + " [[-58229.7031]],\n", + "\n", + " [[-58144.3594]],\n", + "\n", + " [[-58199.9961]],\n", + "\n", + " [[-58218.3789]],\n", + "\n", + " [[-58307.7773]],\n", + "\n", + " [[-58247.2695]],\n", + "\n", + " [[-58291.5508]],\n", + "\n", + " [[-58127.6406]],\n", + "\n", + " [[-58210.5820]],\n", + "\n", + " [[-58309.2930]],\n", + "\n", + " [[-58151.7070]],\n", + "\n", + " [[-58254.7852]],\n", + "\n", + " [[-58334.6289]],\n", + "\n", + " [[-58273.1250]],\n", + "\n", + " [[-58298.7539]],\n", + "\n", + " [[-58179.4258]],\n", + "\n", + " [[-58268.6172]],\n", + "\n", + " [[-58135.2969]],\n", + "\n", + " [[-58295.8008]],\n", + "\n", + " [[-58161.1523]],\n", + "\n", + " [[-58238.7461]],\n", + "\n", + " [[-58136.6016]],\n", + "\n", + " [[-58389.7305]],\n", + "\n", + " [[-58216.8281]],\n", + "\n", + " [[-58188.7461]],\n", + "\n", + " [[-58217.1641]],\n", + "\n", + " [[-58222.1836]],\n", + "\n", + " [[-58285.9258]],\n", + "\n", + " [[-58223.4922]],\n", + "\n", + " [[-58186.9766]],\n", + "\n", + " [[-58202.7969]],\n", + "\n", + " [[-58289.9453]],\n", + "\n", + " [[-58224.6211]],\n", + "\n", + " [[-58174.3242]],\n", + "\n", + " [[-58307.3633]],\n", + "\n", + " [[-58283.9180]],\n", + "\n", + " [[-58248.8828]],\n", + "\n", + " [[-58238.5273]],\n", + "\n", + " [[-58224.5898]],\n", + "\n", + " [[-58252.2305]],\n", + "\n", + " [[-58347.1680]],\n", + "\n", + " [[-58287.8398]],\n", + "\n", + " [[-58252.7188]],\n", + "\n", + " [[-58305.9688]],\n", + "\n", + " [[-58222.7656]],\n", + "\n", + " [[-58146.3281]],\n", + "\n", + " [[-58230.3711]],\n", + "\n", + " [[-58240.1211]],\n", + "\n", + " [[-58271.7891]],\n", + "\n", + " [[-58193.6484]],\n", + "\n", + " [[-58297.8398]],\n", + "\n", + " [[-58194.0234]],\n", + "\n", + " [[-58114.1797]],\n", + "\n", + " [[-58333.0391]],\n", + "\n", + " [[-58169.1680]],\n", + "\n", + " [[-58232.0625]],\n", + "\n", + " [[-58207.0117]],\n", + "\n", + " [[-58127.8242]],\n", + "\n", + " [[-58300.1602]],\n", + "\n", + " [[-58297.2383]],\n", + "\n", + " [[-58257.0664]],\n", + "\n", + " [[-58218.6797]],\n", + "\n", + " [[-58280.0781]],\n", + "\n", + " [[-58225.2695]],\n", + "\n", + " [[-58220.2422]],\n", + "\n", + " [[-58237.0273]],\n", + "\n", + " [[-58152.3047]],\n", + "\n", + " [[-58349.7891]],\n", + "\n", + " [[-58285.8906]],\n", + "\n", + " [[-58239.1172]],\n", + "\n", + " [[-58159.7305]],\n", + "\n", + " [[-58316.9219]],\n", + "\n", + " [[-58236.3125]],\n", + "\n", + " [[-58203.4297]],\n", + "\n", + " [[-58254.3945]],\n", + "\n", + " [[-58343.4648]],\n", + "\n", + " [[-58261.6719]],\n", + "\n", + " [[-58258.4492]],\n", + "\n", + " [[-58185.2773]],\n", + "\n", + " [[-58234.6836]],\n", + "\n", + " [[-58277.9180]],\n", + "\n", + " [[-58272.5664]],\n", + "\n", + " [[-58124.8008]],\n", + "\n", + " [[-58168.0625]],\n", + "\n", + " [[-58174.5508]],\n", + "\n", + " [[-58238.5742]],\n", + "\n", + " [[-58272.3398]],\n", + "\n", + " [[-58353.1719]],\n", + "\n", + " [[-58278.8906]],\n", + "\n", + " [[-58290.4258]],\n", + "\n", + " [[-58212.9102]],\n", + "\n", + " [[-58292.2461]],\n", + "\n", + " [[-58249.7070]],\n", + "\n", + " [[-58301.9844]],\n", + "\n", + " [[-58133.8164]],\n", + "\n", + " [[-58238.6953]],\n", + "\n", + " [[-58209.8555]],\n", + "\n", + " [[-58232.9141]],\n", + "\n", + " [[-58239.3516]],\n", + "\n", + " [[-58280.1211]],\n", + "\n", + " [[-58197.3750]],\n", + "\n", + " [[-58194.8867]],\n", + "\n", + " [[-58329.1406]],\n", + "\n", + " [[-58266.3945]],\n", + "\n", + " [[-58234.1680]],\n", + "\n", + " [[-58162.0977]],\n", + "\n", + " [[-58144.3438]],\n", + "\n", + " [[-58246.4141]],\n", + "\n", + " [[-58327.8125]],\n", + "\n", + " [[-58257.4883]],\n", + "\n", + " [[-58251.8906]],\n", + "\n", + " [[-58243.6836]],\n", + "\n", + " [[-58297.8086]],\n", + "\n", + " [[-58260.9961]],\n", + "\n", + " [[-58249.7109]],\n", + "\n", + " [[-58216.3086]],\n", + "\n", + " [[-58193.1016]],\n", + "\n", + " [[-58204.8984]],\n", + "\n", + " [[-58270.9609]],\n", + "\n", + " [[-58138.8281]],\n", + "\n", + " [[-58290.0977]],\n", + "\n", + " [[-58278.8086]],\n", + "\n", + " [[-58180.1016]],\n", + "\n", + " [[-58278.4336]],\n", + "\n", + " [[-58227.1836]],\n", + "\n", + " [[-58194.6250]],\n", + "\n", + " [[-58230.6250]],\n", + "\n", + " [[-58223.9844]],\n", + "\n", + " [[-58117.7578]],\n", + "\n", + " [[-58243.9297]],\n", + "\n", + " [[-58270.1914]],\n", + "\n", + " [[-58211.8594]],\n", + "\n", + " [[-58245.3906]],\n", + "\n", + " [[-58272.1172]],\n", + "\n", + " [[-58257.3633]],\n", + "\n", + " [[-58283.4180]],\n", + "\n", + " [[-58305.6602]],\n", + "\n", + " [[-58233.1328]],\n", + "\n", + " [[-58247.1250]],\n", + "\n", + " [[-58204.2188]],\n", + "\n", + " [[-58095.2500]],\n", + "\n", + " [[-58302.1914]],\n", + "\n", + " [[-58272.7148]],\n", + "\n", + " [[-58293.6758]],\n", + "\n", + " [[-58230.7930]],\n", + "\n", + " [[-58272.7930]],\n", + "\n", + " [[-58313.3594]],\n", + "\n", + " [[-58343.5391]],\n", + "\n", + " [[-58288.8867]],\n", + "\n", + " [[-58261.4180]],\n", + "\n", + " [[-58281.1406]],\n", + "\n", + " [[-58138.4375]],\n", + "\n", + " [[-58288.9219]],\n", + "\n", + " [[-58188.4805]],\n", + "\n", + " [[-58224.9375]],\n", + "\n", + " [[-58105.5977]],\n", + "\n", + " [[-58239.9219]],\n", + "\n", + " [[-58277.1797]],\n", + "\n", + " [[-58248.1836]],\n", + "\n", + " [[-58296.3750]],\n", + "\n", + " [[-58345.4258]],\n", + "\n", + " [[-58197.7188]],\n", + "\n", + " [[-58299.8633]],\n", + "\n", + " [[-58139.9375]],\n", + "\n", + " [[-58327.6250]],\n", + "\n", + " [[-58181.8984]],\n", + "\n", + " [[-58276.7344]],\n", + "\n", + " [[-58166.8242]],\n", + "\n", + " [[-58133.8242]],\n", + "\n", + " [[-58310.6094]],\n", + "\n", + " [[-58182.1875]],\n", + "\n", + " [[-58315.7031]],\n", + "\n", + " [[-58291.9375]],\n", + "\n", + " [[-58217.2422]],\n", + "\n", + " [[-58282.1992]],\n", + "\n", + " [[-58332.5234]],\n", + "\n", + " [[-58155.5430]],\n", + "\n", + " [[-58319.7969]],\n", + "\n", + " [[-58196.5469]],\n", + "\n", + " [[-58205.2773]],\n", + "\n", + " [[-58226.1016]],\n", + "\n", + " [[-58191.9570]],\n", + "\n", + " [[-58220.2852]],\n", + "\n", + " [[-58292.8086]],\n", + "\n", + " [[-58194.2656]],\n", + "\n", + " [[-58145.6289]],\n", + "\n", + " [[-58273.8281]],\n", + "\n", + " [[-58210.3203]],\n", + "\n", + " [[-58260.5039]]], grad_fn=)\n", + "tensor([[[-56449.8125]],\n", + "\n", + " [[-56509.2930]],\n", + "\n", + " [[-56570.6523]],\n", + "\n", + " [[-56532.6523]],\n", + "\n", + " [[-56634.6289]],\n", + "\n", + " [[-56484.5547]],\n", + "\n", + " [[-56530.2734]],\n", + "\n", + " [[-56474.0664]],\n", + "\n", + " [[-56512.2148]],\n", + "\n", + " [[-56509.0352]],\n", + "\n", + " [[-56508.7930]],\n", + "\n", + " [[-56388.2617]],\n", + "\n", + " [[-56541.0078]],\n", + "\n", + " [[-56541.2930]],\n", + "\n", + " [[-56513.3672]],\n", + "\n", + " [[-56555.2891]],\n", + "\n", + " [[-56491.4961]],\n", + "\n", + " [[-56543.8203]],\n", + "\n", + " [[-56486.1211]],\n", + "\n", + " [[-56514.4414]],\n", + "\n", + " [[-56481.4492]],\n", + "\n", + " [[-56493.7461]],\n", + "\n", + " [[-56491.6914]],\n", + "\n", + " [[-56552.0898]],\n", + "\n", + " [[-56505.4219]],\n", + "\n", + " [[-56575.1484]],\n", + "\n", + " [[-56481.9609]],\n", + "\n", + " [[-56486.4531]],\n", + "\n", + " [[-56511.6562]],\n", + "\n", + " [[-56456.7812]],\n", + "\n", + " [[-56491.5859]],\n", + "\n", + " [[-56452.7656]],\n", + "\n", + " [[-56388.5898]],\n", + "\n", + " [[-56608.2188]],\n", + "\n", + " [[-56597.5781]],\n", + "\n", + " [[-56533.4648]],\n", + "\n", + " [[-56499.6094]],\n", + "\n", + " [[-56542.9766]],\n", + "\n", + " [[-56486.9102]],\n", + "\n", + " [[-56460.6719]],\n", + "\n", + " [[-56579.4141]],\n", + "\n", + " [[-56482.1250]],\n", + "\n", + " [[-56482.8711]],\n", + "\n", + " [[-56543.1055]],\n", + "\n", + " [[-56604.6523]],\n", + "\n", + " [[-56594.4844]],\n", + "\n", + " [[-56548.9453]],\n", + "\n", + " [[-56515.4648]],\n", + "\n", + " [[-56563.3398]],\n", + "\n", + " [[-56440.4297]],\n", + "\n", + " [[-56500.6328]],\n", + "\n", + " [[-56608.5000]],\n", + "\n", + " [[-56562.3750]],\n", + "\n", + " [[-56536.2734]],\n", + "\n", + " [[-56485.9336]],\n", + "\n", + " [[-56501.1289]],\n", + "\n", + " [[-56498.1211]],\n", + "\n", + " [[-56642.6367]],\n", + "\n", + " [[-56506.3867]],\n", + "\n", + " [[-56506.0586]],\n", + "\n", + " [[-56478.4336]],\n", + "\n", + " [[-56434.2344]],\n", + "\n", + " [[-56520.5234]],\n", + "\n", + " [[-56433.8711]],\n", + "\n", + " [[-56531.0781]],\n", + "\n", + " [[-56377.2383]],\n", + "\n", + " [[-56550.6055]],\n", + "\n", + " [[-56576.8477]],\n", + "\n", + " [[-56563.4922]],\n", + "\n", + " [[-56395.1680]],\n", + "\n", + " [[-56520.6680]],\n", + "\n", + " [[-56465.5234]],\n", + "\n", + " [[-56432.0859]],\n", + "\n", + " [[-56492.4727]],\n", + "\n", + " [[-56558.1953]],\n", + "\n", + " [[-56557.9844]],\n", + "\n", + " [[-56597.3281]],\n", + "\n", + " [[-56525.2812]],\n", + "\n", + " [[-56591.3594]],\n", + "\n", + " [[-56514.4336]],\n", + "\n", + " [[-56450.1250]],\n", + "\n", + " [[-56442.7773]],\n", + "\n", + " [[-56456.7617]],\n", + "\n", + " [[-56532.0078]],\n", + "\n", + " [[-56437.2188]],\n", + "\n", + " [[-56480.4258]],\n", + "\n", + " [[-56461.7148]],\n", + "\n", + " [[-56595.7891]],\n", + "\n", + " [[-56562.3711]],\n", + "\n", + " [[-56576.7812]],\n", + "\n", + " [[-56549.6055]],\n", + "\n", + " [[-56535.2617]],\n", + "\n", + " [[-56529.5391]],\n", + "\n", + " [[-56560.2773]],\n", + "\n", + " [[-56495.8125]],\n", + "\n", + " [[-56412.3867]],\n", + "\n", + " [[-56482.2969]],\n", + "\n", + " [[-56534.6641]],\n", + "\n", + " [[-56426.4180]],\n", + "\n", + " [[-56460.2617]],\n", + "\n", + " [[-56489.6406]],\n", + "\n", + " [[-56611.2617]],\n", + "\n", + " [[-56493.6797]],\n", + "\n", + " [[-56534.2500]],\n", + "\n", + " [[-56477.7500]],\n", + "\n", + " [[-56490.9258]],\n", + "\n", + " [[-56571.1016]],\n", + "\n", + " [[-56652.9258]],\n", + "\n", + " [[-56445.5742]],\n", + "\n", + " [[-56467.4883]],\n", + "\n", + " [[-56577.4219]],\n", + "\n", + " [[-56487.5977]],\n", + "\n", + " [[-56385.7109]],\n", + "\n", + " [[-56464.4336]],\n", + "\n", + " [[-56431.0820]],\n", + "\n", + " [[-56397.7383]],\n", + "\n", + " [[-56561.5664]],\n", + "\n", + " [[-56485.5586]],\n", + "\n", + " [[-56412.9297]],\n", + "\n", + " [[-56399.5430]],\n", + "\n", + " [[-56508.4531]],\n", + "\n", + " [[-56553.2227]],\n", + "\n", + " [[-56535.0078]],\n", + "\n", + " [[-56681.5820]],\n", + "\n", + " [[-56516.6289]],\n", + "\n", + " [[-56544.8281]],\n", + "\n", + " [[-56476.2422]],\n", + "\n", + " [[-56519.6641]],\n", + "\n", + " [[-56568.0586]],\n", + "\n", + " [[-56576.0742]],\n", + "\n", + " [[-56466.6562]],\n", + "\n", + " [[-56507.9688]],\n", + "\n", + " [[-56530.6484]],\n", + "\n", + " [[-56528.0234]],\n", + "\n", + " [[-56444.8828]],\n", + "\n", + " [[-56455.6680]],\n", + "\n", + " [[-56555.9609]],\n", + "\n", + " [[-56481.9297]],\n", + "\n", + " [[-56588.0781]],\n", + "\n", + " [[-56518.0547]],\n", + "\n", + " [[-56487.8008]],\n", + "\n", + " [[-56530.1250]],\n", + "\n", + " [[-56529.7422]],\n", + "\n", + " [[-56534.3164]],\n", + "\n", + " [[-56536.1719]],\n", + "\n", + " [[-56614.5938]],\n", + "\n", + " [[-56568.6914]],\n", + "\n", + " [[-56630.8828]],\n", + "\n", + " [[-56502.9805]],\n", + "\n", + " [[-56367.2539]],\n", + "\n", + " [[-56495.0352]],\n", + "\n", + " [[-56556.6289]],\n", + "\n", + " [[-56560.4492]],\n", + "\n", + " [[-56609.6523]],\n", + "\n", + " [[-56408.7539]],\n", + "\n", + " [[-56586.8008]],\n", + "\n", + " [[-56546.8594]],\n", + "\n", + " [[-56397.3359]],\n", + "\n", + " [[-56469.6523]],\n", + "\n", + " [[-56606.3594]],\n", + "\n", + " [[-56539.8164]],\n", + "\n", + " [[-56576.0781]],\n", + "\n", + " [[-56500.1016]],\n", + "\n", + " [[-56532.7227]],\n", + "\n", + " [[-56451.3555]],\n", + "\n", + " [[-56515.5039]],\n", + "\n", + " [[-56596.4141]],\n", + "\n", + " [[-56479.3711]],\n", + "\n", + " [[-56518.7891]],\n", + "\n", + " [[-56571.8320]],\n", + "\n", + " [[-56512.0703]],\n", + "\n", + " [[-56399.0352]],\n", + "\n", + " [[-56409.0312]],\n", + "\n", + " [[-56557.8516]],\n", + "\n", + " [[-56492.8047]],\n", + "\n", + " [[-56502.9531]],\n", + "\n", + " [[-56511.6172]],\n", + "\n", + " [[-56523.9961]],\n", + "\n", + " [[-56581.0547]],\n", + "\n", + " [[-56496.4180]],\n", + "\n", + " [[-56408.3633]],\n", + "\n", + " [[-56482.2852]],\n", + "\n", + " [[-56547.1641]],\n", + "\n", + " [[-56534.1406]],\n", + "\n", + " [[-56505.9336]],\n", + "\n", + " [[-56511.4961]],\n", + "\n", + " [[-56550.0781]],\n", + "\n", + " [[-56414.0625]],\n", + "\n", + " [[-56545.7461]],\n", + "\n", + " [[-56515.5664]],\n", + "\n", + " [[-56487.6406]],\n", + "\n", + " [[-56478.3750]],\n", + "\n", + " [[-56537.5000]],\n", + "\n", + " [[-56506.4375]],\n", + "\n", + " [[-56433.0898]],\n", + "\n", + " [[-56488.3164]],\n", + "\n", + " [[-56575.2969]],\n", + "\n", + " [[-56526.1562]],\n", + "\n", + " [[-56497.8477]],\n", + "\n", + " [[-56479.8438]],\n", + "\n", + " [[-56570.0781]],\n", + "\n", + " [[-56411.7148]],\n", + "\n", + " [[-56611.2070]],\n", + "\n", + " [[-56543.3086]],\n", + "\n", + " [[-56484.8789]],\n", + "\n", + " [[-56507.0195]],\n", + "\n", + " [[-56444.3320]],\n", + "\n", + " [[-56453.7266]],\n", + "\n", + " [[-56508.9727]],\n", + "\n", + " [[-56648.5625]],\n", + "\n", + " [[-56481.5938]],\n", + "\n", + " [[-56475.7266]],\n", + "\n", + " [[-56452.7031]],\n", + "\n", + " [[-56518.7617]],\n", + "\n", + " [[-56519.2695]],\n", + "\n", + " [[-56605.8750]],\n", + "\n", + " [[-56563.3828]],\n", + "\n", + " [[-56601.2617]],\n", + "\n", + " [[-56471.8398]],\n", + "\n", + " [[-56512.5820]],\n", + "\n", + " [[-56580.5391]],\n", + "\n", + " [[-56454.5273]],\n", + "\n", + " [[-56530.2031]],\n", + "\n", + " [[-56499.9570]],\n", + "\n", + " [[-56521.0977]],\n", + "\n", + " [[-56475.4609]],\n", + "\n", + " [[-56495.5000]],\n", + "\n", + " [[-56472.7383]],\n", + "\n", + " [[-56491.3945]],\n", + "\n", + " [[-56478.2500]],\n", + "\n", + " [[-56422.6406]],\n", + "\n", + " [[-56566.5859]],\n", + "\n", + " [[-56489.6289]],\n", + "\n", + " [[-56495.7812]],\n", + "\n", + " [[-56414.0039]],\n", + "\n", + " [[-56514.0078]],\n", + "\n", + " [[-56530.3086]],\n", + "\n", + " [[-56601.2148]],\n", + "\n", + " [[-56557.4492]],\n", + "\n", + " [[-56421.4688]],\n", + "\n", + " [[-56462.0039]],\n", + "\n", + " [[-56478.8828]],\n", + "\n", + " [[-56439.3672]],\n", + "\n", + " [[-56432.8047]],\n", + "\n", + " [[-56552.4219]],\n", + "\n", + " [[-56531.3984]],\n", + "\n", + " [[-56611.6992]],\n", + "\n", + " [[-56394.1094]],\n", + "\n", + " [[-56580.4180]],\n", + "\n", + " [[-56533.2734]],\n", + "\n", + " [[-56635.1211]],\n", + "\n", + " [[-56467.9688]],\n", + "\n", + " [[-56617.1836]],\n", + "\n", + " [[-56535.5820]],\n", + "\n", + " [[-56431.3281]],\n", + "\n", + " [[-56488.6562]]], grad_fn=)\n", + "tensor([[[-54840.4688]],\n", + "\n", + " [[-54858.1055]],\n", + "\n", + " [[-54810.2031]],\n", + "\n", + " [[-54841.1758]],\n", + "\n", + " [[-54747.0391]],\n", + "\n", + " [[-54783.1875]],\n", + "\n", + " [[-54911.4453]],\n", + "\n", + " [[-54847.4453]],\n", + "\n", + " [[-54787.3984]],\n", + "\n", + " [[-54850.6211]],\n", + "\n", + " [[-54811.8828]],\n", + "\n", + " [[-54967.4414]],\n", + "\n", + " [[-54814.6992]],\n", + "\n", + " [[-54856.1797]],\n", + "\n", + " [[-54843.9766]],\n", + "\n", + " [[-54763.0781]],\n", + "\n", + " [[-54928.1016]],\n", + "\n", + " [[-54878.2422]],\n", + "\n", + " [[-54784.7227]],\n", + "\n", + " [[-54824.1836]],\n", + "\n", + " [[-54812.7773]],\n", + "\n", + " [[-54714.6367]],\n", + "\n", + " [[-54743.5898]],\n", + "\n", + " [[-54696.6133]],\n", + "\n", + " [[-54860.8750]],\n", + "\n", + " [[-54714.8945]],\n", + "\n", + " [[-54784.2383]],\n", + "\n", + " [[-54712.5781]],\n", + "\n", + " [[-54764.7070]],\n", + "\n", + " [[-54833.1211]],\n", + "\n", + " [[-54766.6445]],\n", + "\n", + " [[-54919.3438]],\n", + "\n", + " [[-54783.2148]],\n", + "\n", + " [[-54877.8789]],\n", + "\n", + " [[-54841.9844]],\n", + "\n", + " [[-54874.7930]],\n", + "\n", + " [[-54811.1836]],\n", + "\n", + " [[-54809.2773]],\n", + "\n", + " [[-54695.9727]],\n", + "\n", + " [[-54835.8906]],\n", + "\n", + " [[-54902.0078]],\n", + "\n", + " [[-54925.6250]],\n", + "\n", + " [[-54831.4648]],\n", + "\n", + " [[-54667.4961]],\n", + "\n", + " [[-54764.4570]],\n", + "\n", + " [[-54920.7695]],\n", + "\n", + " [[-54799.1367]],\n", + "\n", + " [[-54865.7578]],\n", + "\n", + " [[-54790.1562]],\n", + "\n", + " [[-54685.4883]],\n", + "\n", + " [[-54797.1367]],\n", + "\n", + " [[-54801.3359]],\n", + "\n", + " [[-54787.2461]],\n", + "\n", + " [[-54809.5547]],\n", + "\n", + " [[-54886.0078]],\n", + "\n", + " [[-54809.7773]],\n", + "\n", + " [[-54816.4648]],\n", + "\n", + " [[-54851.2578]],\n", + "\n", + " [[-54872.1602]],\n", + "\n", + " [[-54780.3945]],\n", + "\n", + " [[-54899.0273]],\n", + "\n", + " [[-54842.0977]],\n", + "\n", + " [[-54775.4922]],\n", + "\n", + " [[-54714.6797]],\n", + "\n", + " [[-54830.8398]],\n", + "\n", + " [[-54905.8750]],\n", + "\n", + " [[-54850.0273]],\n", + "\n", + " [[-54855.7656]],\n", + "\n", + " [[-54675.7578]],\n", + "\n", + " [[-54781.1797]],\n", + "\n", + " [[-54767.0625]],\n", + "\n", + " [[-54770.0586]],\n", + "\n", + " [[-54813.1367]],\n", + "\n", + " [[-54776.4766]],\n", + "\n", + " [[-54890.3633]],\n", + "\n", + " [[-54826.6445]],\n", + "\n", + " [[-54889.2188]],\n", + "\n", + " [[-54801.3906]],\n", + "\n", + " [[-54714.6016]],\n", + "\n", + " [[-54866.2891]],\n", + "\n", + " [[-54843.3984]],\n", + "\n", + " [[-54844.6523]],\n", + "\n", + " [[-54766.2344]],\n", + "\n", + " [[-54910.6328]],\n", + "\n", + " [[-54880.2188]],\n", + "\n", + " [[-54760.2539]],\n", + "\n", + " [[-54842.2422]],\n", + "\n", + " [[-54811.0430]],\n", + "\n", + " [[-54829.7695]],\n", + "\n", + " [[-54778.2773]],\n", + "\n", + " [[-54750.9297]],\n", + "\n", + " [[-54845.2930]],\n", + "\n", + " [[-54762.2539]],\n", + "\n", + " [[-54802.7500]],\n", + "\n", + " [[-54853.9258]],\n", + "\n", + " [[-54717.6797]],\n", + "\n", + " [[-54889.9688]],\n", + "\n", + " [[-54832.9688]],\n", + "\n", + " [[-54865.4727]],\n", + "\n", + " [[-54809.1914]],\n", + "\n", + " [[-54740.3477]],\n", + "\n", + " [[-54887.0273]],\n", + "\n", + " [[-54955.3711]],\n", + "\n", + " [[-54783.8203]],\n", + "\n", + " [[-54818.0078]],\n", + "\n", + " [[-54870.6523]],\n", + "\n", + " [[-54805.7070]],\n", + "\n", + " [[-54857.8594]],\n", + "\n", + " [[-54799.7266]],\n", + "\n", + " [[-54712.1992]],\n", + "\n", + " [[-54833.9570]],\n", + "\n", + " [[-54842.4258]],\n", + "\n", + " [[-54846.4883]],\n", + "\n", + " [[-54877.3203]],\n", + "\n", + " [[-54838.3516]],\n", + "\n", + " [[-54808.0898]],\n", + "\n", + " [[-54773.6484]],\n", + "\n", + " [[-54703.5039]],\n", + "\n", + " [[-54819.7578]],\n", + "\n", + " [[-54767.7383]],\n", + "\n", + " [[-54786.9727]],\n", + "\n", + " [[-54776.4766]],\n", + "\n", + " [[-54955.9180]],\n", + "\n", + " [[-54831.5586]],\n", + "\n", + " [[-54801.4453]],\n", + "\n", + " [[-54895.1289]],\n", + "\n", + " [[-54797.9375]],\n", + "\n", + " [[-54842.5508]],\n", + "\n", + " [[-55006.7734]],\n", + "\n", + " [[-54722.9375]],\n", + "\n", + " [[-54849.8047]],\n", + "\n", + " [[-54793.5156]],\n", + "\n", + " [[-54824.0273]],\n", + "\n", + " [[-54842.9570]],\n", + "\n", + " [[-54795.1875]],\n", + "\n", + " [[-54665.2383]],\n", + "\n", + " [[-54907.0195]],\n", + "\n", + " [[-54892.4141]],\n", + "\n", + " [[-54759.9102]],\n", + "\n", + " [[-54770.8789]],\n", + "\n", + " [[-54808.1094]],\n", + "\n", + " [[-54776.7148]],\n", + "\n", + " [[-54853.8203]],\n", + "\n", + " [[-54828.8594]],\n", + "\n", + " [[-54846.0977]],\n", + "\n", + " [[-54762.3984]],\n", + "\n", + " [[-54861.8281]],\n", + "\n", + " [[-54759.7617]],\n", + "\n", + " [[-54852.6758]],\n", + "\n", + " [[-54812.1602]],\n", + "\n", + " [[-54882.5977]],\n", + "\n", + " [[-54839.1211]],\n", + "\n", + " [[-54849.8633]],\n", + "\n", + " [[-54748.9102]],\n", + "\n", + " [[-54789.4180]],\n", + "\n", + " [[-54955.1328]],\n", + "\n", + " [[-54983.1914]],\n", + "\n", + " [[-54882.4414]],\n", + "\n", + " [[-54883.0078]],\n", + "\n", + " [[-54848.4453]],\n", + "\n", + " [[-54820.5312]],\n", + "\n", + " [[-54814.8633]],\n", + "\n", + " [[-54838.7500]],\n", + "\n", + " [[-54743.2344]],\n", + "\n", + " [[-54903.7070]],\n", + "\n", + " [[-54885.9141]],\n", + "\n", + " [[-54882.4258]],\n", + "\n", + " [[-54842.8125]],\n", + "\n", + " [[-54773.2500]],\n", + "\n", + " [[-54758.1836]],\n", + "\n", + " [[-54780.0703]],\n", + "\n", + " [[-54874.6992]],\n", + "\n", + " [[-54870.3438]],\n", + "\n", + " [[-54803.9883]],\n", + "\n", + " [[-54820.5117]],\n", + "\n", + " [[-54843.9414]],\n", + "\n", + " [[-54836.8047]],\n", + "\n", + " [[-54852.4180]],\n", + "\n", + " [[-54819.8398]],\n", + "\n", + " [[-54856.4297]],\n", + "\n", + " [[-54858.3594]],\n", + "\n", + " [[-54992.5820]],\n", + "\n", + " [[-54796.6719]],\n", + "\n", + " [[-54727.5117]],\n", + "\n", + " [[-54731.5156]],\n", + "\n", + " [[-54852.0156]],\n", + "\n", + " [[-54790.7227]],\n", + "\n", + " [[-54854.7773]],\n", + "\n", + " [[-54903.3789]],\n", + "\n", + " [[-54719.9297]],\n", + "\n", + " [[-54734.8555]],\n", + "\n", + " [[-54914.9961]],\n", + "\n", + " [[-54850.4766]],\n", + "\n", + " [[-54791.8828]],\n", + "\n", + " [[-54831.6328]],\n", + "\n", + " [[-54773.4375]],\n", + "\n", + " [[-54772.1875]],\n", + "\n", + " [[-54826.3789]],\n", + "\n", + " [[-54874.3086]],\n", + "\n", + " [[-54773.2227]],\n", + "\n", + " [[-54690.4766]],\n", + "\n", + " [[-54806.1172]],\n", + "\n", + " [[-54829.4961]],\n", + "\n", + " [[-54770.2773]],\n", + "\n", + " [[-54779.5430]],\n", + "\n", + " [[-54714.5352]],\n", + "\n", + " [[-54847.0781]],\n", + "\n", + " [[-54862.0195]],\n", + "\n", + " [[-54898.9219]],\n", + "\n", + " [[-54794.4180]],\n", + "\n", + " [[-54853.6133]],\n", + "\n", + " [[-54788.6797]],\n", + "\n", + " [[-54690.8164]],\n", + "\n", + " [[-54793.0312]],\n", + "\n", + " [[-54848.4453]],\n", + "\n", + " [[-54863.5625]],\n", + "\n", + " [[-54813.5039]],\n", + "\n", + " [[-54795.0703]],\n", + "\n", + " [[-54823.6484]],\n", + "\n", + " [[-54716.4375]],\n", + "\n", + " [[-54747.4805]],\n", + "\n", + " [[-54839.0625]],\n", + "\n", + " [[-54793.7891]],\n", + "\n", + " [[-54818.7266]],\n", + "\n", + " [[-54860.5391]],\n", + "\n", + " [[-54867.8281]],\n", + "\n", + " [[-54812.5547]],\n", + "\n", + " [[-54701.7969]],\n", + "\n", + " [[-54792.7539]],\n", + "\n", + " [[-54847.6562]],\n", + "\n", + " [[-54803.1680]],\n", + "\n", + " [[-54843.8125]],\n", + "\n", + " [[-54831.2617]],\n", + "\n", + " [[-54852.9180]],\n", + "\n", + " [[-54809.0391]],\n", + "\n", + " [[-54666.6484]],\n", + "\n", + " [[-54866.0312]],\n", + "\n", + " [[-54817.2109]],\n", + "\n", + " [[-54806.5508]],\n", + "\n", + " [[-55008.1484]],\n", + "\n", + " [[-54800.4727]],\n", + "\n", + " [[-54949.1250]],\n", + "\n", + " [[-54818.3086]],\n", + "\n", + " [[-54781.0781]],\n", + "\n", + " [[-54825.0664]],\n", + "\n", + " [[-54826.3633]],\n", + "\n", + " [[-54824.0156]],\n", + "\n", + " [[-54858.5859]],\n", + "\n", + " [[-54822.6758]],\n", + "\n", + " [[-54838.3672]],\n", + "\n", + " [[-54911.4102]],\n", + "\n", + " [[-54793.9922]],\n", + "\n", + " [[-54883.6914]],\n", + "\n", + " [[-54701.5000]],\n", + "\n", + " [[-54847.1367]],\n", + "\n", + " [[-54709.1211]]], grad_fn=)\n", + "tensor([[[-53094.9648]],\n", + "\n", + " [[-53111.7031]],\n", + "\n", + " [[-53102.6406]],\n", + "\n", + " [[-53151.0820]],\n", + "\n", + " [[-53251.6094]],\n", + "\n", + " [[-53148.1172]],\n", + "\n", + " [[-53072.1133]],\n", + "\n", + " [[-53138.9062]],\n", + "\n", + " [[-53126.3906]],\n", + "\n", + " [[-53117.8984]],\n", + "\n", + " [[-53092.5625]],\n", + "\n", + " [[-53226.3086]],\n", + "\n", + " [[-53189.6875]],\n", + "\n", + " [[-53191.1055]],\n", + "\n", + " [[-53169.8086]],\n", + "\n", + " [[-53197.1211]],\n", + "\n", + " [[-53235.7305]],\n", + "\n", + " [[-53239.5938]],\n", + "\n", + " [[-53256.5195]],\n", + "\n", + " [[-53249.6758]],\n", + "\n", + " [[-53221.5156]],\n", + "\n", + " [[-53274.2070]],\n", + "\n", + " [[-53091.1875]],\n", + "\n", + " [[-53179.7461]],\n", + "\n", + " [[-53167.3945]],\n", + "\n", + " [[-53125.5508]],\n", + "\n", + " [[-53257.2383]],\n", + "\n", + " [[-53271.6914]],\n", + "\n", + " [[-53150.5195]],\n", + "\n", + " [[-53269.4883]],\n", + "\n", + " [[-53142.8320]],\n", + "\n", + " [[-53121.3398]],\n", + "\n", + " [[-53201.9492]],\n", + "\n", + " [[-53070.5039]],\n", + "\n", + " [[-53253.9062]],\n", + "\n", + " [[-53198.3828]],\n", + "\n", + " [[-53302.1953]],\n", + "\n", + " [[-53166.3008]],\n", + "\n", + " [[-53126.2969]],\n", + "\n", + " [[-53109.3633]],\n", + "\n", + " [[-53144.2109]],\n", + "\n", + " [[-53098.4961]],\n", + "\n", + " [[-53064.7539]],\n", + "\n", + " [[-53070.2227]],\n", + "\n", + " [[-53265.3906]],\n", + "\n", + " [[-53200.4414]],\n", + "\n", + " [[-53278.0898]],\n", + "\n", + " [[-53258.5742]],\n", + "\n", + " [[-53200.0703]],\n", + "\n", + " [[-53172.5039]],\n", + "\n", + " [[-53052.5352]],\n", + "\n", + " [[-53125.5156]],\n", + "\n", + " [[-53104.2773]],\n", + "\n", + " [[-53101.7891]],\n", + "\n", + " [[-53154.9141]],\n", + "\n", + " [[-53255.6250]],\n", + "\n", + " [[-53036.6289]],\n", + "\n", + " [[-53035.0898]],\n", + "\n", + " [[-53087.0742]],\n", + "\n", + " [[-53086.9023]],\n", + "\n", + " [[-53315.2344]],\n", + "\n", + " [[-53176.5312]],\n", + "\n", + " [[-53109.4648]],\n", + "\n", + " [[-53350.6875]],\n", + "\n", + " [[-53167.8320]],\n", + "\n", + " [[-53212.9141]],\n", + "\n", + " [[-53210.2539]],\n", + "\n", + " [[-53265.4961]],\n", + "\n", + " [[-53146.8047]],\n", + "\n", + " [[-53057.3164]],\n", + "\n", + " [[-53206.9023]],\n", + "\n", + " [[-53199.7773]],\n", + "\n", + " [[-53199.0273]],\n", + "\n", + " [[-53158.7500]],\n", + "\n", + " [[-53109.0508]],\n", + "\n", + " [[-53188.9688]],\n", + "\n", + " [[-53157.1953]],\n", + "\n", + " [[-53061.7109]],\n", + "\n", + " [[-53214.2109]],\n", + "\n", + " [[-53247.8984]],\n", + "\n", + " [[-53158.6875]],\n", + "\n", + " [[-53221.7383]],\n", + "\n", + " [[-53216.8281]],\n", + "\n", + " [[-53128.0742]],\n", + "\n", + " [[-53098.5000]],\n", + "\n", + " [[-53198.9961]],\n", + "\n", + " [[-53132.4375]],\n", + "\n", + " [[-53179.4258]],\n", + "\n", + " [[-53119.6680]],\n", + "\n", + " [[-53150.1250]],\n", + "\n", + " [[-53213.0195]],\n", + "\n", + " [[-53131.6133]],\n", + "\n", + " [[-53070.9297]],\n", + "\n", + " [[-53044.1406]],\n", + "\n", + " [[-53339.7891]],\n", + "\n", + " [[-53107.5820]],\n", + "\n", + " [[-53207.0117]],\n", + "\n", + " [[-53170.7227]],\n", + "\n", + " [[-53152.4180]],\n", + "\n", + " [[-53183.0117]],\n", + "\n", + " [[-53226.1875]],\n", + "\n", + " [[-53350.2344]],\n", + "\n", + " [[-53128.4258]],\n", + "\n", + " [[-53268.9453]],\n", + "\n", + " [[-53157.9805]],\n", + "\n", + " [[-53133.0703]],\n", + "\n", + " [[-53086.3945]],\n", + "\n", + " [[-53139.4961]],\n", + "\n", + " [[-53210.5273]],\n", + "\n", + " [[-53038.2148]],\n", + "\n", + " [[-53200.4180]],\n", + "\n", + " [[-53118.9844]],\n", + "\n", + " [[-53189.2734]],\n", + "\n", + " [[-53130.0898]],\n", + "\n", + " [[-53123.4297]],\n", + "\n", + " [[-53276.8984]],\n", + "\n", + " [[-53185.1914]],\n", + "\n", + " [[-53232.0859]],\n", + "\n", + " [[-53063.4336]],\n", + "\n", + " [[-53162.0586]],\n", + "\n", + " [[-53070.8438]],\n", + "\n", + " [[-53183.5742]],\n", + "\n", + " [[-53097.9062]],\n", + "\n", + " [[-53164.2461]],\n", + "\n", + " [[-53195.0273]],\n", + "\n", + " [[-53136.1094]],\n", + "\n", + " [[-53242.3984]],\n", + "\n", + " [[-53027.8281]],\n", + "\n", + " [[-53168.4141]],\n", + "\n", + " [[-53106.6758]],\n", + "\n", + " [[-53211.5000]],\n", + "\n", + " [[-53167.7031]],\n", + "\n", + " [[-53125.4375]],\n", + "\n", + " [[-53170.1055]],\n", + "\n", + " [[-53177.2383]],\n", + "\n", + " [[-53233.6641]],\n", + "\n", + " [[-53213.3125]],\n", + "\n", + " [[-53199.0742]],\n", + "\n", + " [[-53138.9922]],\n", + "\n", + " [[-53203.0586]],\n", + "\n", + " [[-53228.6562]],\n", + "\n", + " [[-53157.4219]],\n", + "\n", + " [[-53120.1641]],\n", + "\n", + " [[-53114.7461]],\n", + "\n", + " [[-53038.3125]],\n", + "\n", + " [[-53258.7578]],\n", + "\n", + " [[-53129.0781]],\n", + "\n", + " [[-53153.5156]],\n", + "\n", + " [[-53296.4648]],\n", + "\n", + " [[-53256.2461]],\n", + "\n", + " [[-53238.7109]],\n", + "\n", + " [[-53306.0234]],\n", + "\n", + " [[-53205.0625]],\n", + "\n", + " [[-53186.9609]],\n", + "\n", + " [[-53130.0664]],\n", + "\n", + " [[-53255.1875]],\n", + "\n", + " [[-53259.2539]],\n", + "\n", + " [[-53227.3086]],\n", + "\n", + " [[-53123.0000]],\n", + "\n", + " [[-53135.1602]],\n", + "\n", + " [[-53197.1250]],\n", + "\n", + " [[-53153.3086]],\n", + "\n", + " [[-53175.5586]],\n", + "\n", + " [[-53208.0820]],\n", + "\n", + " [[-53319.2148]],\n", + "\n", + " [[-53257.6914]],\n", + "\n", + " [[-53253.2070]],\n", + "\n", + " [[-53229.7500]],\n", + "\n", + " [[-53118.3398]],\n", + "\n", + " [[-53158.0195]],\n", + "\n", + " [[-53173.5430]],\n", + "\n", + " [[-53081.8984]],\n", + "\n", + " [[-53132.7773]],\n", + "\n", + " [[-53121.3867]],\n", + "\n", + " [[-53163.7422]],\n", + "\n", + " [[-53186.6484]],\n", + "\n", + " [[-53073.4023]],\n", + "\n", + " [[-53202.1992]],\n", + "\n", + " [[-53062.2500]],\n", + "\n", + " [[-53120.1367]],\n", + "\n", + " [[-53206.7188]],\n", + "\n", + " [[-53187.7578]],\n", + "\n", + " [[-53223.3750]],\n", + "\n", + " [[-53159.4414]],\n", + "\n", + " [[-53221.9258]],\n", + "\n", + " [[-53177.1641]],\n", + "\n", + " [[-53093.8828]],\n", + "\n", + " [[-53116.4531]],\n", + "\n", + " [[-53071.1875]],\n", + "\n", + " [[-53211.7422]],\n", + "\n", + " [[-53195.1875]],\n", + "\n", + " [[-53207.1914]],\n", + "\n", + " [[-53086.3984]],\n", + "\n", + " [[-53164.5586]],\n", + "\n", + " [[-53254.3125]],\n", + "\n", + " [[-53092.8320]],\n", + "\n", + " [[-53205.7383]],\n", + "\n", + " [[-53262.0977]],\n", + "\n", + " [[-53246.0703]],\n", + "\n", + " [[-53100.4219]],\n", + "\n", + " [[-53063.2031]],\n", + "\n", + " [[-53114.4609]],\n", + "\n", + " [[-53141.7422]],\n", + "\n", + " [[-53040.3750]],\n", + "\n", + " [[-53063.2422]],\n", + "\n", + " [[-53271.6211]],\n", + "\n", + " [[-53137.7500]],\n", + "\n", + " [[-53158.1797]],\n", + "\n", + " [[-53136.2148]],\n", + "\n", + " [[-53153.5508]],\n", + "\n", + " [[-53259.2852]],\n", + "\n", + " [[-53042.4023]],\n", + "\n", + " [[-53034.7305]],\n", + "\n", + " [[-53256.6484]],\n", + "\n", + " [[-53092.5859]],\n", + "\n", + " [[-53176.4922]],\n", + "\n", + " [[-53084.5430]],\n", + "\n", + " [[-53134.2109]],\n", + "\n", + " [[-53207.7305]],\n", + "\n", + " [[-53278.4609]],\n", + "\n", + " [[-53256.2266]],\n", + "\n", + " [[-53103.0938]],\n", + "\n", + " [[-53084.8320]],\n", + "\n", + " [[-53251.7852]],\n", + "\n", + " [[-53131.2656]],\n", + "\n", + " [[-53279.8867]],\n", + "\n", + " [[-53112.2070]],\n", + "\n", + " [[-53204.4531]],\n", + "\n", + " [[-53274.0977]],\n", + "\n", + " [[-53198.2734]],\n", + "\n", + " [[-53200.5273]],\n", + "\n", + " [[-53180.4922]],\n", + "\n", + " [[-53204.2070]],\n", + "\n", + " [[-53172.5586]],\n", + "\n", + " [[-53170.4883]],\n", + "\n", + " [[-53256.8906]],\n", + "\n", + " [[-53159.6562]],\n", + "\n", + " [[-53105.5938]],\n", + "\n", + " [[-53261.8203]],\n", + "\n", + " [[-53227.6289]],\n", + "\n", + " [[-53112.2031]],\n", + "\n", + " [[-53224.8438]],\n", + "\n", + " [[-53205.2773]],\n", + "\n", + " [[-53092.7539]],\n", + "\n", + " [[-53155.7305]],\n", + "\n", + " [[-53157.8555]],\n", + "\n", + " [[-53175.2695]],\n", + "\n", + " [[-53080.6914]],\n", + "\n", + " [[-53235.3789]],\n", + "\n", + " [[-53180.4961]],\n", + "\n", + " [[-53187.9297]],\n", + "\n", + " [[-53228.3242]],\n", + "\n", + " [[-53260.1055]],\n", + "\n", + " [[-53195.2891]],\n", + "\n", + " [[-53171.9648]],\n", + "\n", + " [[-53197.4961]]], grad_fn=)\n", + "tensor([[[-51529.8008]],\n", + "\n", + " [[-51610.9414]],\n", + "\n", + " [[-51723.6484]],\n", + "\n", + " [[-51589.8086]],\n", + "\n", + " [[-51535.4219]],\n", + "\n", + " [[-51583.6055]],\n", + "\n", + " [[-51647.1875]],\n", + "\n", + " [[-51590.5977]],\n", + "\n", + " [[-51709.9023]],\n", + "\n", + " [[-51550.7656]],\n", + "\n", + " [[-51463.8672]],\n", + "\n", + " [[-51574.9531]],\n", + "\n", + " [[-51707.0000]],\n", + "\n", + " [[-51606.2734]],\n", + "\n", + " [[-51555.5273]],\n", + "\n", + " [[-51560.1289]],\n", + "\n", + " [[-51757.4570]],\n", + "\n", + " [[-51428.7461]],\n", + "\n", + " [[-51650.9961]],\n", + "\n", + " [[-51439.5625]],\n", + "\n", + " [[-51537.4844]],\n", + "\n", + " [[-51564.1914]],\n", + "\n", + " [[-51471.8398]],\n", + "\n", + " [[-51697.2695]],\n", + "\n", + " [[-51597.6680]],\n", + "\n", + " [[-51526.1992]],\n", + "\n", + " [[-51618.4727]],\n", + "\n", + " [[-51612.2852]],\n", + "\n", + " [[-51577.9570]],\n", + "\n", + " [[-51579.8750]],\n", + "\n", + " [[-51574.6250]],\n", + "\n", + " [[-51535.7773]],\n", + "\n", + " [[-51592.8945]],\n", + "\n", + " [[-51563.0195]],\n", + "\n", + " [[-51596.6328]],\n", + "\n", + " [[-51562.3359]],\n", + "\n", + " [[-51591.3320]],\n", + "\n", + " [[-51555.0000]],\n", + "\n", + " [[-51526.8398]],\n", + "\n", + " [[-51650.2656]],\n", + "\n", + " [[-51445.4219]],\n", + "\n", + " [[-51538.1250]],\n", + "\n", + " [[-51545.0586]],\n", + "\n", + " [[-51468.8359]],\n", + "\n", + " [[-51537.0469]],\n", + "\n", + " [[-51443.4766]],\n", + "\n", + " [[-51467.7266]],\n", + "\n", + " [[-51595.3594]],\n", + "\n", + " [[-51598.9023]],\n", + "\n", + " [[-51636.3555]],\n", + "\n", + " [[-51650.5820]],\n", + "\n", + " [[-51641.8750]],\n", + "\n", + " [[-51521.4492]],\n", + "\n", + " [[-51636.0781]],\n", + "\n", + " [[-51606.0391]],\n", + "\n", + " [[-51535.7148]],\n", + "\n", + " [[-51517.4336]],\n", + "\n", + " [[-51588.2695]],\n", + "\n", + " [[-51669.0000]],\n", + "\n", + " [[-51554.1562]],\n", + "\n", + " [[-51643.0742]],\n", + "\n", + " [[-51637.2422]],\n", + "\n", + " [[-51543.8008]],\n", + "\n", + " [[-51772.8984]],\n", + "\n", + " [[-51574.9453]],\n", + "\n", + " [[-51543.2109]],\n", + "\n", + " [[-51587.5195]],\n", + "\n", + " [[-51511.0586]],\n", + "\n", + " [[-51577.9766]],\n", + "\n", + " [[-51620.8945]],\n", + "\n", + " [[-51576.7070]],\n", + "\n", + " [[-51558.5820]],\n", + "\n", + " [[-51532.3477]],\n", + "\n", + " [[-51559.3242]],\n", + "\n", + " [[-51655.7422]],\n", + "\n", + " [[-51539.0703]],\n", + "\n", + " [[-51644.0859]],\n", + "\n", + " [[-51505.0000]],\n", + "\n", + " [[-51598.4102]],\n", + "\n", + " [[-51542.5391]],\n", + "\n", + " [[-51559.2383]],\n", + "\n", + " [[-51695.8984]],\n", + "\n", + " [[-51651.1953]],\n", + "\n", + " [[-51601.2109]],\n", + "\n", + " [[-51548.2656]],\n", + "\n", + " [[-51549.0625]],\n", + "\n", + " [[-51466.8359]],\n", + "\n", + " [[-51631.4336]],\n", + "\n", + " [[-51570.7812]],\n", + "\n", + " [[-51563.0156]],\n", + "\n", + " [[-51565.7578]],\n", + "\n", + " [[-51535.7812]],\n", + "\n", + " [[-51595.9961]],\n", + "\n", + " [[-51568.5000]],\n", + "\n", + " [[-51446.6680]],\n", + "\n", + " [[-51543.5430]],\n", + "\n", + " [[-51702.5352]],\n", + "\n", + " [[-51526.6328]],\n", + "\n", + " [[-51523.5234]],\n", + "\n", + " [[-51629.8203]],\n", + "\n", + " [[-51574.2188]],\n", + "\n", + " [[-51654.7773]],\n", + "\n", + " [[-51628.5508]],\n", + "\n", + " [[-51530.5664]],\n", + "\n", + " [[-51443.7539]],\n", + "\n", + " [[-51585.7070]],\n", + "\n", + " [[-51447.4336]],\n", + "\n", + " [[-51613.4375]],\n", + "\n", + " [[-51576.7852]],\n", + "\n", + " [[-51473.7266]],\n", + "\n", + " [[-51595.6094]],\n", + "\n", + " [[-51545.2578]],\n", + "\n", + " [[-51609.7148]],\n", + "\n", + " [[-51613.6875]],\n", + "\n", + " [[-51608.7344]],\n", + "\n", + " [[-51533.1992]],\n", + "\n", + " [[-51713.2617]],\n", + "\n", + " [[-51535.2539]],\n", + "\n", + " [[-51598.2344]],\n", + "\n", + " [[-51579.9727]],\n", + "\n", + " [[-51526.8281]],\n", + "\n", + " [[-51510.0430]],\n", + "\n", + " [[-51571.4258]],\n", + "\n", + " [[-51617.3633]],\n", + "\n", + " [[-51463.5859]],\n", + "\n", + " [[-51582.0000]],\n", + "\n", + " [[-51628.8477]],\n", + "\n", + " [[-51541.5156]],\n", + "\n", + " [[-51441.8203]],\n", + "\n", + " [[-51761.6602]],\n", + "\n", + " [[-51567.2539]],\n", + "\n", + " [[-51503.7617]],\n", + "\n", + " [[-51590.1094]],\n", + "\n", + " [[-51712.8125]],\n", + "\n", + " [[-51614.1602]],\n", + "\n", + " [[-51568.9219]],\n", + "\n", + " [[-51615.4258]],\n", + "\n", + " [[-51624.0469]],\n", + "\n", + " [[-51591.4609]],\n", + "\n", + " [[-51583.0078]],\n", + "\n", + " [[-51526.2812]],\n", + "\n", + " [[-51492.2812]],\n", + "\n", + " [[-51539.2070]],\n", + "\n", + " [[-51542.0781]],\n", + "\n", + " [[-51570.7188]],\n", + "\n", + " [[-51512.4609]],\n", + "\n", + " [[-51657.4688]],\n", + "\n", + " [[-51583.1172]],\n", + "\n", + " [[-51662.6406]],\n", + "\n", + " [[-51519.6367]],\n", + "\n", + " [[-51592.8242]],\n", + "\n", + " [[-51515.0312]],\n", + "\n", + " [[-51443.3281]],\n", + "\n", + " [[-51690.7656]],\n", + "\n", + " [[-51432.1406]],\n", + "\n", + " [[-51577.3555]],\n", + "\n", + " [[-51524.6523]],\n", + "\n", + " [[-51570.6211]],\n", + "\n", + " [[-51542.9375]],\n", + "\n", + " [[-51519.8203]],\n", + "\n", + " [[-51625.5078]],\n", + "\n", + " [[-51556.6250]],\n", + "\n", + " [[-51645.4883]],\n", + "\n", + " [[-51688.2422]],\n", + "\n", + " [[-51673.5469]],\n", + "\n", + " [[-51622.2500]],\n", + "\n", + " [[-51669.4922]],\n", + "\n", + " [[-51503.5234]],\n", + "\n", + " [[-51677.0586]],\n", + "\n", + " [[-51688.4648]],\n", + "\n", + " [[-51658.5781]],\n", + "\n", + " [[-51593.9336]],\n", + "\n", + " [[-51579.9297]],\n", + "\n", + " [[-51444.8477]],\n", + "\n", + " [[-51507.9375]],\n", + "\n", + " [[-51620.6680]],\n", + "\n", + " [[-51537.4453]],\n", + "\n", + " [[-51522.9766]],\n", + "\n", + " [[-51431.0469]],\n", + "\n", + " [[-51609.4258]],\n", + "\n", + " [[-51525.3203]],\n", + "\n", + " [[-51456.1133]],\n", + "\n", + " [[-51590.4023]],\n", + "\n", + " [[-51525.4180]],\n", + "\n", + " [[-51519.9570]],\n", + "\n", + " [[-51561.4648]],\n", + "\n", + " [[-51747.1719]],\n", + "\n", + " [[-51480.7617]],\n", + "\n", + " [[-51645.1992]],\n", + "\n", + " [[-51555.8867]],\n", + "\n", + " [[-51634.3320]],\n", + "\n", + " [[-51664.7266]],\n", + "\n", + " [[-51503.7422]],\n", + "\n", + " [[-51528.3359]],\n", + "\n", + " [[-51589.9102]],\n", + "\n", + " [[-51545.0078]],\n", + "\n", + " [[-51600.6836]],\n", + "\n", + " [[-51511.7188]],\n", + "\n", + " [[-51627.8555]],\n", + "\n", + " [[-51565.9531]],\n", + "\n", + " [[-51546.4688]],\n", + "\n", + " [[-51547.9258]],\n", + "\n", + " [[-51721.7891]],\n", + "\n", + " [[-51494.8203]],\n", + "\n", + " [[-51617.5078]],\n", + "\n", + " [[-51587.7656]],\n", + "\n", + " [[-51447.8359]],\n", + "\n", + " [[-51627.5234]],\n", + "\n", + " [[-51596.4766]],\n", + "\n", + " [[-51543.6289]],\n", + "\n", + " [[-51636.6602]],\n", + "\n", + " [[-51674.1914]],\n", + "\n", + " [[-51609.6055]],\n", + "\n", + " [[-51574.0625]],\n", + "\n", + " [[-51580.3359]],\n", + "\n", + " [[-51547.8359]],\n", + "\n", + " [[-51540.4180]],\n", + "\n", + " [[-51585.4961]],\n", + "\n", + " [[-51590.1133]],\n", + "\n", + " [[-51578.8555]],\n", + "\n", + " [[-51567.2656]],\n", + "\n", + " [[-51570.7148]],\n", + "\n", + " [[-51628.2188]],\n", + "\n", + " [[-51473.0781]],\n", + "\n", + " [[-51494.1719]],\n", + "\n", + " [[-51655.5625]],\n", + "\n", + " [[-51603.0742]],\n", + "\n", + " [[-51653.0898]],\n", + "\n", + " [[-51633.8633]],\n", + "\n", + " [[-51553.0859]],\n", + "\n", + " [[-51592.0820]],\n", + "\n", + " [[-51429.1836]],\n", + "\n", + " [[-51542.7305]],\n", + "\n", + " [[-51592.2578]],\n", + "\n", + " [[-51563.2305]],\n", + "\n", + " [[-51585.8750]],\n", + "\n", + " [[-51526.9766]],\n", + "\n", + " [[-51586.8945]],\n", + "\n", + " [[-51463.0859]],\n", + "\n", + " [[-51449.6992]],\n", + "\n", + " [[-51665.1719]],\n", + "\n", + " [[-51483.4883]],\n", + "\n", + " [[-51562.1562]],\n", + "\n", + " [[-51578.6680]],\n", + "\n", + " [[-51542.1367]],\n", + "\n", + " [[-51600.8281]],\n", + "\n", + " [[-51694.7617]],\n", + "\n", + " [[-51642.2422]],\n", + "\n", + " [[-51695.1367]],\n", + "\n", + " [[-51466.7539]],\n", + "\n", + " [[-51567.5469]],\n", + "\n", + " [[-51720.8828]],\n", + "\n", + " [[-51549.9570]],\n", + "\n", + " [[-51489.1836]],\n", + "\n", + " [[-51512.9844]],\n", + "\n", + " [[-51537.3984]]], grad_fn=)\n", + "tensor([[[-49989.0625]],\n", + "\n", + " [[-50112.4414]],\n", + "\n", + " [[-49930.3281]],\n", + "\n", + " [[-50141.0664]],\n", + "\n", + " [[-49932.1758]],\n", + "\n", + " [[-50001.5820]],\n", + "\n", + " [[-49954.4492]],\n", + "\n", + " [[-50004.1133]],\n", + "\n", + " [[-50085.2539]],\n", + "\n", + " [[-50014.1758]],\n", + "\n", + " [[-49979.6211]],\n", + "\n", + " [[-50075.8594]],\n", + "\n", + " [[-50024.6328]],\n", + "\n", + " [[-50094.8125]],\n", + "\n", + " [[-50069.0820]],\n", + "\n", + " [[-50004.2031]],\n", + "\n", + " [[-49843.6523]],\n", + "\n", + " [[-50046.9570]],\n", + "\n", + " [[-49960.1680]],\n", + "\n", + " [[-49954.6562]],\n", + "\n", + " [[-50093.8789]],\n", + "\n", + " [[-49964.6875]],\n", + "\n", + " [[-50025.9688]],\n", + "\n", + " [[-49970.1758]],\n", + "\n", + " [[-49977.9219]],\n", + "\n", + " [[-49968.2891]],\n", + "\n", + " [[-49962.9609]],\n", + "\n", + " [[-49872.1562]],\n", + "\n", + " [[-49987.1367]],\n", + "\n", + " [[-50032.7812]],\n", + "\n", + " [[-49990.0703]],\n", + "\n", + " [[-49905.6953]],\n", + "\n", + " [[-50102.9531]],\n", + "\n", + " [[-50023.1094]],\n", + "\n", + " [[-49984.1758]],\n", + "\n", + " [[-50036.0391]],\n", + "\n", + " [[-49958.4219]],\n", + "\n", + " [[-49950.5938]],\n", + "\n", + " [[-50026.4805]],\n", + "\n", + " [[-50125.0938]],\n", + "\n", + " [[-49937.3789]],\n", + "\n", + " [[-50020.1211]],\n", + "\n", + " [[-50004.2734]],\n", + "\n", + " [[-49959.8398]],\n", + "\n", + " [[-50016.6875]],\n", + "\n", + " [[-49992.3789]],\n", + "\n", + " [[-50024.1680]],\n", + "\n", + " [[-50099.7500]],\n", + "\n", + " [[-49874.9062]],\n", + "\n", + " [[-50083.9727]],\n", + "\n", + " [[-49974.4727]],\n", + "\n", + " [[-49969.3555]],\n", + "\n", + " [[-50135.2070]],\n", + "\n", + " [[-50026.8750]],\n", + "\n", + " [[-50137.9102]],\n", + "\n", + " [[-49985.8008]],\n", + "\n", + " [[-49928.8789]],\n", + "\n", + " [[-49922.6719]],\n", + "\n", + " [[-49914.2188]],\n", + "\n", + " [[-50009.5938]],\n", + "\n", + " [[-49981.4883]],\n", + "\n", + " [[-49880.9766]],\n", + "\n", + " [[-49916.3047]],\n", + "\n", + " [[-50079.8594]],\n", + "\n", + " [[-50164.4609]],\n", + "\n", + " [[-50038.8633]],\n", + "\n", + " [[-49944.2500]],\n", + "\n", + " [[-50001.7266]],\n", + "\n", + " [[-49987.5508]],\n", + "\n", + " [[-50128.8320]],\n", + "\n", + " [[-50084.1094]],\n", + "\n", + " [[-50102.8008]],\n", + "\n", + " [[-50087.5508]],\n", + "\n", + " [[-50002.9688]],\n", + "\n", + " [[-50005.6406]],\n", + "\n", + " [[-49918.0000]],\n", + "\n", + " [[-49983.3828]],\n", + "\n", + " [[-50029.7539]],\n", + "\n", + " [[-50082.9961]],\n", + "\n", + " [[-50169.1875]],\n", + "\n", + " [[-49927.6211]],\n", + "\n", + " [[-49939.0664]],\n", + "\n", + " [[-50033.6719]],\n", + "\n", + " [[-50034.1875]],\n", + "\n", + " [[-50048.5781]],\n", + "\n", + " [[-49917.5273]],\n", + "\n", + " [[-50023.6367]],\n", + "\n", + " [[-50027.6836]],\n", + "\n", + " [[-49922.2266]],\n", + "\n", + " [[-50051.0039]],\n", + "\n", + " [[-50097.1367]],\n", + "\n", + " [[-50019.6055]],\n", + "\n", + " [[-49887.7930]],\n", + "\n", + " [[-50047.2617]],\n", + "\n", + " [[-50081.0039]],\n", + "\n", + " [[-49968.8359]],\n", + "\n", + " [[-50080.7852]],\n", + "\n", + " [[-49977.8242]],\n", + "\n", + " [[-50129.7422]],\n", + "\n", + " [[-49980.9688]],\n", + "\n", + " [[-50013.7148]],\n", + "\n", + " [[-50057.5742]],\n", + "\n", + " [[-50110.0234]],\n", + "\n", + " [[-50042.8555]],\n", + "\n", + " [[-50066.5703]],\n", + "\n", + " [[-50141.6641]],\n", + "\n", + " [[-50042.6484]],\n", + "\n", + " [[-50050.7500]],\n", + "\n", + " [[-50167.1914]],\n", + "\n", + " [[-50032.5039]],\n", + "\n", + " [[-49964.2930]],\n", + "\n", + " [[-50012.3086]],\n", + "\n", + " [[-49956.6758]],\n", + "\n", + " [[-50017.7852]],\n", + "\n", + " [[-49923.8047]],\n", + "\n", + " [[-49952.2617]],\n", + "\n", + " [[-49978.5391]],\n", + "\n", + " [[-49992.6797]],\n", + "\n", + " [[-49892.9922]],\n", + "\n", + " [[-50109.5820]],\n", + "\n", + " [[-50088.6289]],\n", + "\n", + " [[-50041.8516]],\n", + "\n", + " [[-49913.8711]],\n", + "\n", + " [[-50025.8047]],\n", + "\n", + " [[-50026.6172]],\n", + "\n", + " [[-49916.4023]],\n", + "\n", + " [[-50079.5742]],\n", + "\n", + " [[-50032.8164]],\n", + "\n", + " [[-49964.5977]],\n", + "\n", + " [[-49874.1094]],\n", + "\n", + " [[-50034.8438]],\n", + "\n", + " [[-50047.4609]],\n", + "\n", + " [[-50041.6367]],\n", + "\n", + " [[-50005.8633]],\n", + "\n", + " [[-49929.5859]],\n", + "\n", + " [[-50059.7148]],\n", + "\n", + " [[-50067.9258]],\n", + "\n", + " [[-50055.4648]],\n", + "\n", + " [[-50072.9023]],\n", + "\n", + " [[-49880.9141]],\n", + "\n", + " [[-49921.1992]],\n", + "\n", + " [[-50035.0195]],\n", + "\n", + " [[-49994.7930]],\n", + "\n", + " [[-50026.6250]],\n", + "\n", + " [[-49986.0547]],\n", + "\n", + " [[-50089.6875]],\n", + "\n", + " [[-50098.1641]],\n", + "\n", + " [[-50009.5078]],\n", + "\n", + " [[-50083.9883]],\n", + "\n", + " [[-50090.6367]],\n", + "\n", + " [[-50002.9961]],\n", + "\n", + " [[-49910.7695]],\n", + "\n", + " [[-49934.0625]],\n", + "\n", + " [[-50015.8320]],\n", + "\n", + " [[-49864.5234]],\n", + "\n", + " [[-49979.5312]],\n", + "\n", + " [[-49994.0312]],\n", + "\n", + " [[-50006.8789]],\n", + "\n", + " [[-49996.3047]],\n", + "\n", + " [[-50000.1523]],\n", + "\n", + " [[-50041.3359]],\n", + "\n", + " [[-49931.0859]],\n", + "\n", + " [[-49887.3711]],\n", + "\n", + " [[-50042.1953]],\n", + "\n", + " [[-49969.8008]],\n", + "\n", + " [[-49960.6641]],\n", + "\n", + " [[-49969.9922]],\n", + "\n", + " [[-50013.4414]],\n", + "\n", + " [[-50082.2500]],\n", + "\n", + " [[-49985.4961]],\n", + "\n", + " [[-49974.2227]],\n", + "\n", + " [[-50054.6680]],\n", + "\n", + " [[-49865.8672]],\n", + "\n", + " [[-50068.5117]],\n", + "\n", + " [[-50046.8906]],\n", + "\n", + " [[-50046.5781]],\n", + "\n", + " [[-50040.2969]],\n", + "\n", + " [[-49915.8047]],\n", + "\n", + " [[-50075.3203]],\n", + "\n", + " [[-49925.4609]],\n", + "\n", + " [[-50031.3906]],\n", + "\n", + " [[-50039.1562]],\n", + "\n", + " [[-50019.9531]],\n", + "\n", + " [[-50007.6250]],\n", + "\n", + " [[-49954.4258]],\n", + "\n", + " [[-49983.2734]],\n", + "\n", + " [[-50104.4219]],\n", + "\n", + " [[-50034.8789]],\n", + "\n", + " [[-49940.5898]],\n", + "\n", + " [[-50144.3672]],\n", + "\n", + " [[-50055.1172]],\n", + "\n", + " [[-50041.2617]],\n", + "\n", + " [[-50024.0273]],\n", + "\n", + " [[-50122.2812]],\n", + "\n", + " [[-50109.8008]],\n", + "\n", + " [[-49906.2188]],\n", + "\n", + " [[-49995.0156]],\n", + "\n", + " [[-50020.1367]],\n", + "\n", + " [[-49963.9102]],\n", + "\n", + " [[-49944.6172]],\n", + "\n", + " [[-50086.3711]],\n", + "\n", + " [[-50023.6328]],\n", + "\n", + " [[-50052.1484]],\n", + "\n", + " [[-50096.4258]],\n", + "\n", + " [[-50022.6406]],\n", + "\n", + " [[-50110.0586]],\n", + "\n", + " [[-50106.3711]],\n", + "\n", + " [[-49975.8828]],\n", + "\n", + " [[-50049.6836]],\n", + "\n", + " [[-50001.6875]],\n", + "\n", + " [[-49928.4922]],\n", + "\n", + " [[-49902.4375]],\n", + "\n", + " [[-49860.0938]],\n", + "\n", + " [[-50040.6211]],\n", + "\n", + " [[-49993.0234]],\n", + "\n", + " [[-49969.5078]],\n", + "\n", + " [[-50066.8867]],\n", + "\n", + " [[-49871.1094]],\n", + "\n", + " [[-50008.7734]],\n", + "\n", + " [[-50020.9258]],\n", + "\n", + " [[-49967.1562]],\n", + "\n", + " [[-49960.6055]],\n", + "\n", + " [[-50001.2461]],\n", + "\n", + " [[-49957.6992]],\n", + "\n", + " [[-49996.1797]],\n", + "\n", + " [[-50029.1406]],\n", + "\n", + " [[-49972.0391]],\n", + "\n", + " [[-49944.3008]],\n", + "\n", + " [[-50022.7969]],\n", + "\n", + " [[-50002.0156]],\n", + "\n", + " [[-50033.1289]],\n", + "\n", + " [[-50121.5352]],\n", + "\n", + " [[-49951.6875]],\n", + "\n", + " [[-49944.4570]],\n", + "\n", + " [[-49849.6992]],\n", + "\n", + " [[-49975.4375]],\n", + "\n", + " [[-50033.2461]],\n", + "\n", + " [[-50035.0234]],\n", + "\n", + " [[-49957.1641]],\n", + "\n", + " [[-49983.9609]],\n", + "\n", + " [[-50004.2891]],\n", + "\n", + " [[-49860.0469]],\n", + "\n", + " [[-49886.0586]],\n", + "\n", + " [[-49974.4258]],\n", + "\n", + " [[-49885.5000]],\n", + "\n", + " [[-50048.1953]],\n", + "\n", + " [[-50012.7891]],\n", + "\n", + " [[-49989.6641]],\n", + "\n", + " [[-50041.6562]],\n", + "\n", + " [[-50136.5039]],\n", + "\n", + " [[-50144.4922]],\n", + "\n", + " [[-49879.9805]],\n", + "\n", + " [[-50128.4570]],\n", + "\n", + " [[-49866.5117]],\n", + "\n", + " [[-49997.1953]],\n", + "\n", + " [[-50004.9336]]], grad_fn=)\n", + "tensor([[[-48593.2617]],\n", + "\n", + " [[-48589.4258]],\n", + "\n", + " [[-48613.1406]],\n", + "\n", + " [[-48467.9219]],\n", + "\n", + " [[-48512.6094]],\n", + "\n", + " [[-48445.7773]],\n", + "\n", + " [[-48514.3320]],\n", + "\n", + " [[-48394.4062]],\n", + "\n", + " [[-48451.9414]],\n", + "\n", + " [[-48495.0430]],\n", + "\n", + " [[-48475.1328]],\n", + "\n", + " [[-48498.5547]],\n", + "\n", + " [[-48588.9336]],\n", + "\n", + " [[-48463.7461]],\n", + "\n", + " [[-48352.2422]],\n", + "\n", + " [[-48533.3047]],\n", + "\n", + " [[-48543.7031]],\n", + "\n", + " [[-48397.1758]],\n", + "\n", + " [[-48445.5977]],\n", + "\n", + " [[-48591.9414]],\n", + "\n", + " [[-48420.7305]],\n", + "\n", + " [[-48501.2656]],\n", + "\n", + " [[-48552.3516]],\n", + "\n", + " [[-48507.1719]],\n", + "\n", + " [[-48674.0469]],\n", + "\n", + " [[-48440.8008]],\n", + "\n", + " [[-48411.1094]],\n", + "\n", + " [[-48490.8789]],\n", + "\n", + " [[-48475.2266]],\n", + "\n", + " [[-48451.3516]],\n", + "\n", + " [[-48571.3281]],\n", + "\n", + " [[-48523.9688]],\n", + "\n", + " [[-48556.1523]],\n", + "\n", + " [[-48493.9727]],\n", + "\n", + " [[-48531.3516]],\n", + "\n", + " [[-48465.2773]],\n", + "\n", + " [[-48508.7305]],\n", + "\n", + " [[-48602.8438]],\n", + "\n", + " [[-48404.0586]],\n", + "\n", + " [[-48596.5234]],\n", + "\n", + " [[-48464.0977]],\n", + "\n", + " [[-48590.9688]],\n", + "\n", + " [[-48477.3555]],\n", + "\n", + " [[-48475.4531]],\n", + "\n", + " [[-48509.7461]],\n", + "\n", + " [[-48489.3086]],\n", + "\n", + " [[-48433.8047]],\n", + "\n", + " [[-48505.0781]],\n", + "\n", + " [[-48437.3359]],\n", + "\n", + " [[-48374.3789]],\n", + "\n", + " [[-48482.2422]],\n", + "\n", + " [[-48493.8789]],\n", + "\n", + " [[-48528.1445]],\n", + "\n", + " [[-48462.7500]],\n", + "\n", + " [[-48549.0898]],\n", + "\n", + " [[-48555.6953]],\n", + "\n", + " [[-48537.2070]],\n", + "\n", + " [[-48443.9258]],\n", + "\n", + " [[-48561.4414]],\n", + "\n", + " [[-48462.2734]],\n", + "\n", + " [[-48403.2812]],\n", + "\n", + " [[-48494.5586]],\n", + "\n", + " [[-48473.8398]],\n", + "\n", + " [[-48456.3672]],\n", + "\n", + " [[-48400.6367]],\n", + "\n", + " [[-48359.2148]],\n", + "\n", + " [[-48568.2812]],\n", + "\n", + " [[-48565.1836]],\n", + "\n", + " [[-48497.9297]],\n", + "\n", + " [[-48404.7031]],\n", + "\n", + " [[-48448.2148]],\n", + "\n", + " [[-48462.4492]],\n", + "\n", + " [[-48531.7383]],\n", + "\n", + " [[-48460.9414]],\n", + "\n", + " [[-48489.1328]],\n", + "\n", + " [[-48510.4648]],\n", + "\n", + " [[-48450.0000]],\n", + "\n", + " [[-48540.5586]],\n", + "\n", + " [[-48368.9961]],\n", + "\n", + " [[-48505.8242]],\n", + "\n", + " [[-48526.5156]],\n", + "\n", + " [[-48451.5938]],\n", + "\n", + " [[-48450.7344]],\n", + "\n", + " [[-48571.2383]],\n", + "\n", + " [[-48512.4141]],\n", + "\n", + " [[-48554.6211]],\n", + "\n", + " [[-48447.9492]],\n", + "\n", + " [[-48331.1133]],\n", + "\n", + " [[-48427.1328]],\n", + "\n", + " [[-48583.7422]],\n", + "\n", + " [[-48437.3750]],\n", + "\n", + " [[-48433.3281]],\n", + "\n", + " [[-48453.5234]],\n", + "\n", + " [[-48429.2617]],\n", + "\n", + " [[-48511.9609]],\n", + "\n", + " [[-48456.2773]],\n", + "\n", + " [[-48424.4727]],\n", + "\n", + " [[-48395.9258]],\n", + "\n", + " [[-48520.3203]],\n", + "\n", + " [[-48447.0781]],\n", + "\n", + " [[-48482.1875]],\n", + "\n", + " [[-48465.6055]],\n", + "\n", + " [[-48432.8828]],\n", + "\n", + " [[-48502.3164]],\n", + "\n", + " [[-48427.6719]],\n", + "\n", + " [[-48401.6055]],\n", + "\n", + " [[-48514.2891]],\n", + "\n", + " [[-48477.1289]],\n", + "\n", + " [[-48391.3047]],\n", + "\n", + " [[-48562.7539]],\n", + "\n", + " [[-48574.7148]],\n", + "\n", + " [[-48462.6172]],\n", + "\n", + " [[-48457.1133]],\n", + "\n", + " [[-48482.0625]],\n", + "\n", + " [[-48468.8516]],\n", + "\n", + " [[-48423.0781]],\n", + "\n", + " [[-48499.6914]],\n", + "\n", + " [[-48525.0664]],\n", + "\n", + " [[-48447.8555]],\n", + "\n", + " [[-48491.8398]],\n", + "\n", + " [[-48509.3711]],\n", + "\n", + " [[-48355.3125]],\n", + "\n", + " [[-48480.0625]],\n", + "\n", + " [[-48628.7656]],\n", + "\n", + " [[-48493.0859]],\n", + "\n", + " [[-48629.5820]],\n", + "\n", + " [[-48346.0859]],\n", + "\n", + " [[-48556.6172]],\n", + "\n", + " [[-48531.5977]],\n", + "\n", + " [[-48493.4570]],\n", + "\n", + " [[-48508.7461]],\n", + "\n", + " [[-48359.9766]],\n", + "\n", + " [[-48502.5039]],\n", + "\n", + " [[-48378.4336]],\n", + "\n", + " [[-48492.6992]],\n", + "\n", + " [[-48396.4609]],\n", + "\n", + " [[-48460.9961]],\n", + "\n", + " [[-48547.7227]],\n", + "\n", + " [[-48455.0898]],\n", + "\n", + " [[-48537.0586]],\n", + "\n", + " [[-48350.4688]],\n", + "\n", + " [[-48504.5664]],\n", + "\n", + " [[-48535.0703]],\n", + "\n", + " [[-48401.9805]],\n", + "\n", + " [[-48476.6875]],\n", + "\n", + " [[-48523.6289]],\n", + "\n", + " [[-48399.2969]],\n", + "\n", + " [[-48360.4883]],\n", + "\n", + " [[-48355.4297]],\n", + "\n", + " [[-48613.1289]],\n", + "\n", + " [[-48617.1953]],\n", + "\n", + " [[-48426.5547]],\n", + "\n", + " [[-48478.0625]],\n", + "\n", + " [[-48504.7891]],\n", + "\n", + " [[-48414.4727]],\n", + "\n", + " [[-48502.4102]],\n", + "\n", + " [[-48580.2852]],\n", + "\n", + " [[-48536.9258]],\n", + "\n", + " [[-48442.8516]],\n", + "\n", + " [[-48499.0547]],\n", + "\n", + " [[-48384.3867]],\n", + "\n", + " [[-48463.5469]],\n", + "\n", + " [[-48538.7891]],\n", + "\n", + " [[-48509.8750]],\n", + "\n", + " [[-48470.0586]],\n", + "\n", + " [[-48451.6289]],\n", + "\n", + " [[-48531.7812]],\n", + "\n", + " [[-48422.8750]],\n", + "\n", + " [[-48585.1133]],\n", + "\n", + " [[-48438.3320]],\n", + "\n", + " [[-48630.4375]],\n", + "\n", + " [[-48482.8164]],\n", + "\n", + " [[-48401.6406]],\n", + "\n", + " [[-48584.7930]],\n", + "\n", + " [[-48389.2812]],\n", + "\n", + " [[-48481.2891]],\n", + "\n", + " [[-48505.8047]],\n", + "\n", + " [[-48431.9688]],\n", + "\n", + " [[-48360.3906]],\n", + "\n", + " [[-48362.6328]],\n", + "\n", + " [[-48524.6680]],\n", + "\n", + " [[-48584.4219]],\n", + "\n", + " [[-48368.1523]],\n", + "\n", + " [[-48567.5977]],\n", + "\n", + " [[-48370.0820]],\n", + "\n", + " [[-48399.2695]],\n", + "\n", + " [[-48479.3008]],\n", + "\n", + " [[-48483.1328]],\n", + "\n", + " [[-48389.1641]],\n", + "\n", + " [[-48470.9023]],\n", + "\n", + " [[-48535.3867]],\n", + "\n", + " [[-48504.9297]],\n", + "\n", + " [[-48592.1914]],\n", + "\n", + " [[-48497.0039]],\n", + "\n", + " [[-48475.1992]],\n", + "\n", + " [[-48477.0508]],\n", + "\n", + " [[-48423.0898]],\n", + "\n", + " [[-48418.0469]],\n", + "\n", + " [[-48561.1523]],\n", + "\n", + " [[-48333.4492]],\n", + "\n", + " [[-48411.9922]],\n", + "\n", + " [[-48517.9609]],\n", + "\n", + " [[-48530.6406]],\n", + "\n", + " [[-48413.7383]],\n", + "\n", + " [[-48478.8359]],\n", + "\n", + " [[-48637.6836]],\n", + "\n", + " [[-48383.8320]],\n", + "\n", + " [[-48478.0781]],\n", + "\n", + " [[-48545.0234]],\n", + "\n", + " [[-48395.9766]],\n", + "\n", + " [[-48435.1719]],\n", + "\n", + " [[-48518.0898]],\n", + "\n", + " [[-48508.2422]],\n", + "\n", + " [[-48470.1836]],\n", + "\n", + " [[-48582.6445]],\n", + "\n", + " [[-48441.8125]],\n", + "\n", + " [[-48423.4141]],\n", + "\n", + " [[-48453.3828]],\n", + "\n", + " [[-48488.7148]],\n", + "\n", + " [[-48337.2305]],\n", + "\n", + " [[-48614.0469]],\n", + "\n", + " [[-48365.7305]],\n", + "\n", + " [[-48431.4141]],\n", + "\n", + " [[-48400.7188]],\n", + "\n", + " [[-48451.3906]],\n", + "\n", + " [[-48433.1211]],\n", + "\n", + " [[-48478.9961]],\n", + "\n", + " [[-48466.1094]],\n", + "\n", + " [[-48570.0352]],\n", + "\n", + " [[-48532.9297]],\n", + "\n", + " [[-48510.9375]],\n", + "\n", + " [[-48478.0000]],\n", + "\n", + " [[-48409.3711]],\n", + "\n", + " [[-48534.5938]],\n", + "\n", + " [[-48492.6172]],\n", + "\n", + " [[-48512.7734]],\n", + "\n", + " [[-48468.6016]],\n", + "\n", + " [[-48409.3945]],\n", + "\n", + " [[-48397.8359]],\n", + "\n", + " [[-48437.8711]],\n", + "\n", + " [[-48429.8164]],\n", + "\n", + " [[-48388.0078]],\n", + "\n", + " [[-48384.0391]],\n", + "\n", + " [[-48451.1758]],\n", + "\n", + " [[-48547.6641]],\n", + "\n", + " [[-48486.1602]],\n", + "\n", + " [[-48546.0898]],\n", + "\n", + " [[-48486.0078]],\n", + "\n", + " [[-48555.8008]],\n", + "\n", + " [[-48428.0586]],\n", + "\n", + " [[-48384.6719]],\n", + "\n", + " [[-48611.1484]],\n", + "\n", + " [[-48434.9258]],\n", + "\n", + " [[-48523.4258]],\n", + "\n", + " [[-48554.9766]],\n", + "\n", + " [[-48579.5000]]], grad_fn=)\n", + "tensor([[[-46931.9805]],\n", + "\n", + " [[-47013.5859]],\n", + "\n", + " [[-46979.1797]],\n", + "\n", + " [[-46992.3594]],\n", + "\n", + " [[-46858.7578]],\n", + "\n", + " [[-47106.4492]],\n", + "\n", + " [[-46987.9258]],\n", + "\n", + " [[-47022.6406]],\n", + "\n", + " [[-47106.3750]],\n", + "\n", + " [[-47052.7344]],\n", + "\n", + " [[-47087.2422]],\n", + "\n", + " [[-47116.7734]],\n", + "\n", + " [[-46908.0430]],\n", + "\n", + " [[-47097.7578]],\n", + "\n", + " [[-46929.5156]],\n", + "\n", + " [[-47010.5898]],\n", + "\n", + " [[-46948.9102]],\n", + "\n", + " [[-46842.7383]],\n", + "\n", + " [[-46998.9062]],\n", + "\n", + " [[-46992.9688]],\n", + "\n", + " [[-46974.0195]],\n", + "\n", + " [[-47015.2930]],\n", + "\n", + " [[-46993.0859]],\n", + "\n", + " [[-47028.3008]],\n", + "\n", + " [[-47112.3945]],\n", + "\n", + " [[-46975.7930]],\n", + "\n", + " [[-47120.2930]],\n", + "\n", + " [[-46810.4844]],\n", + "\n", + " [[-46959.6602]],\n", + "\n", + " [[-47119.6211]],\n", + "\n", + " [[-46942.3438]],\n", + "\n", + " [[-47099.8594]],\n", + "\n", + " [[-47001.9609]],\n", + "\n", + " [[-47018.9688]],\n", + "\n", + " [[-46903.8945]],\n", + "\n", + " [[-46934.0000]],\n", + "\n", + " [[-46953.2578]],\n", + "\n", + " [[-47039.1250]],\n", + "\n", + " [[-47031.4414]],\n", + "\n", + " [[-47042.5508]],\n", + "\n", + " [[-46941.5391]],\n", + "\n", + " [[-46998.6836]],\n", + "\n", + " [[-46978.6250]],\n", + "\n", + " [[-47026.5234]],\n", + "\n", + " [[-46989.3320]],\n", + "\n", + " [[-46998.3281]],\n", + "\n", + " [[-47018.5938]],\n", + "\n", + " [[-47132.7695]],\n", + "\n", + " [[-46963.8789]],\n", + "\n", + " [[-46875.0430]],\n", + "\n", + " [[-46843.8047]],\n", + "\n", + " [[-46974.1016]],\n", + "\n", + " [[-47045.2812]],\n", + "\n", + " [[-47135.2070]],\n", + "\n", + " [[-46953.5820]],\n", + "\n", + " [[-47010.5508]],\n", + "\n", + " [[-47102.8750]],\n", + "\n", + " [[-47060.9648]],\n", + "\n", + " [[-46973.3086]],\n", + "\n", + " [[-46994.7031]],\n", + "\n", + " [[-47060.8281]],\n", + "\n", + " [[-46919.8555]],\n", + "\n", + " [[-47172.6914]],\n", + "\n", + " [[-46972.6562]],\n", + "\n", + " [[-47120.4961]],\n", + "\n", + " [[-47116.1680]],\n", + "\n", + " [[-47083.1016]],\n", + "\n", + " [[-46883.0664]],\n", + "\n", + " [[-47004.9609]],\n", + "\n", + " [[-47054.9062]],\n", + "\n", + " [[-46918.9883]],\n", + "\n", + " [[-47042.4297]],\n", + "\n", + " [[-47059.7812]],\n", + "\n", + " [[-47082.7148]],\n", + "\n", + " [[-47052.4805]],\n", + "\n", + " [[-47087.1953]],\n", + "\n", + " [[-47042.8086]],\n", + "\n", + " [[-47139.9492]],\n", + "\n", + " [[-46956.9570]],\n", + "\n", + " [[-47059.5508]],\n", + "\n", + " [[-47037.8672]],\n", + "\n", + " [[-46972.9883]],\n", + "\n", + " [[-46912.8086]],\n", + "\n", + " [[-47057.3711]],\n", + "\n", + " [[-46924.4141]],\n", + "\n", + " [[-46859.8867]],\n", + "\n", + " [[-47200.6211]],\n", + "\n", + " [[-46854.5469]],\n", + "\n", + " [[-47050.6914]],\n", + "\n", + " [[-46932.2344]],\n", + "\n", + " [[-46814.9805]],\n", + "\n", + " [[-47081.5703]],\n", + "\n", + " [[-46960.5703]],\n", + "\n", + " [[-46943.2617]],\n", + "\n", + " [[-47026.9570]],\n", + "\n", + " [[-46914.3359]],\n", + "\n", + " [[-47023.7344]],\n", + "\n", + " [[-47059.8750]],\n", + "\n", + " [[-47022.3594]],\n", + "\n", + " [[-47008.0625]],\n", + "\n", + " [[-46998.9844]],\n", + "\n", + " [[-46999.5391]],\n", + "\n", + " [[-46919.7070]],\n", + "\n", + " [[-46864.5664]],\n", + "\n", + " [[-47063.9219]],\n", + "\n", + " [[-47033.8555]],\n", + "\n", + " [[-47095.2969]],\n", + "\n", + " [[-47009.6172]],\n", + "\n", + " [[-46836.4453]],\n", + "\n", + " [[-46954.3359]],\n", + "\n", + " [[-46962.5859]],\n", + "\n", + " [[-46949.9336]],\n", + "\n", + " [[-46993.7148]],\n", + "\n", + " [[-47070.0938]],\n", + "\n", + " [[-47160.1562]],\n", + "\n", + " [[-47109.3164]],\n", + "\n", + " [[-46948.0781]],\n", + "\n", + " [[-47019.1719]],\n", + "\n", + " [[-47061.5586]],\n", + "\n", + " [[-46849.4023]],\n", + "\n", + " [[-47009.4648]],\n", + "\n", + " [[-47106.0156]],\n", + "\n", + " [[-47012.9023]],\n", + "\n", + " [[-47080.9414]],\n", + "\n", + " [[-47019.3867]],\n", + "\n", + " [[-47063.9375]],\n", + "\n", + " [[-46894.8711]],\n", + "\n", + " [[-46992.9062]],\n", + "\n", + " [[-46917.2617]],\n", + "\n", + " [[-46957.1484]],\n", + "\n", + " [[-46919.1055]],\n", + "\n", + " [[-47136.6797]],\n", + "\n", + " [[-46918.9180]],\n", + "\n", + " [[-46953.2812]],\n", + "\n", + " [[-47007.7109]],\n", + "\n", + " [[-47018.5664]],\n", + "\n", + " [[-47064.6367]],\n", + "\n", + " [[-46855.1133]],\n", + "\n", + " [[-47081.8594]],\n", + "\n", + " [[-47061.8320]],\n", + "\n", + " [[-47008.6445]],\n", + "\n", + " [[-47099.2734]],\n", + "\n", + " [[-46911.4453]],\n", + "\n", + " [[-46838.7070]],\n", + "\n", + " [[-46926.9609]],\n", + "\n", + " [[-46949.2773]],\n", + "\n", + " [[-46999.8828]],\n", + "\n", + " [[-47012.4883]],\n", + "\n", + " [[-46930.0156]],\n", + "\n", + " [[-47024.2695]],\n", + "\n", + " [[-46982.5156]],\n", + "\n", + " [[-46911.7734]],\n", + "\n", + " [[-46897.7734]],\n", + "\n", + " [[-47064.1719]],\n", + "\n", + " [[-47057.9609]],\n", + "\n", + " [[-46949.2852]],\n", + "\n", + " [[-46930.0195]],\n", + "\n", + " [[-46843.5078]],\n", + "\n", + " [[-47011.1562]],\n", + "\n", + " [[-47095.0352]],\n", + "\n", + " [[-46933.5312]],\n", + "\n", + " [[-46930.9648]],\n", + "\n", + " [[-46996.2461]],\n", + "\n", + " [[-46921.3203]],\n", + "\n", + " [[-46986.8359]],\n", + "\n", + " [[-46937.0664]],\n", + "\n", + " [[-47050.4648]],\n", + "\n", + " [[-46978.4727]],\n", + "\n", + " [[-46935.5234]],\n", + "\n", + " [[-46906.3164]],\n", + "\n", + " [[-46925.8359]],\n", + "\n", + " [[-47158.6875]],\n", + "\n", + " [[-46876.6562]],\n", + "\n", + " [[-47008.4453]],\n", + "\n", + " [[-46848.5625]],\n", + "\n", + " [[-46897.4336]],\n", + "\n", + " [[-46973.2266]],\n", + "\n", + " [[-46944.0195]],\n", + "\n", + " [[-46900.4414]],\n", + "\n", + " [[-46908.8828]],\n", + "\n", + " [[-47059.4297]],\n", + "\n", + " [[-46965.4141]],\n", + "\n", + " [[-46892.9023]],\n", + "\n", + " [[-47054.4453]],\n", + "\n", + " [[-46999.0859]],\n", + "\n", + " [[-46903.3672]],\n", + "\n", + " [[-46944.6250]],\n", + "\n", + " [[-47021.1367]],\n", + "\n", + " [[-46981.5195]],\n", + "\n", + " [[-47231.8984]],\n", + "\n", + " [[-47030.7852]],\n", + "\n", + " [[-47058.7578]],\n", + "\n", + " [[-47016.4258]],\n", + "\n", + " [[-46970.1133]],\n", + "\n", + " [[-46897.5781]],\n", + "\n", + " [[-46993.8945]],\n", + "\n", + " [[-47010.1484]],\n", + "\n", + " [[-46990.3945]],\n", + "\n", + " [[-46927.4531]],\n", + "\n", + " [[-46986.6406]],\n", + "\n", + " [[-47020.2031]],\n", + "\n", + " [[-46929.6094]],\n", + "\n", + " [[-46915.7773]],\n", + "\n", + " [[-46912.5156]],\n", + "\n", + " [[-46999.3047]],\n", + "\n", + " [[-46926.3828]],\n", + "\n", + " [[-46952.7500]],\n", + "\n", + " [[-46958.5586]],\n", + "\n", + " [[-47188.2148]],\n", + "\n", + " [[-46811.8242]],\n", + "\n", + " [[-46927.5547]],\n", + "\n", + " [[-46848.5664]],\n", + "\n", + " [[-47040.1523]],\n", + "\n", + " [[-46974.2891]],\n", + "\n", + " [[-47005.0117]],\n", + "\n", + " [[-47111.3711]],\n", + "\n", + " [[-46954.1406]],\n", + "\n", + " [[-47053.1172]],\n", + "\n", + " [[-46851.8047]],\n", + "\n", + " [[-46951.0430]],\n", + "\n", + " [[-47091.4883]],\n", + "\n", + " [[-47127.1211]],\n", + "\n", + " [[-46973.3945]],\n", + "\n", + " [[-47006.5781]],\n", + "\n", + " [[-46971.9297]],\n", + "\n", + " [[-46993.5586]],\n", + "\n", + " [[-46930.9883]],\n", + "\n", + " [[-47006.1211]],\n", + "\n", + " [[-46879.1758]],\n", + "\n", + " [[-46968.2109]],\n", + "\n", + " [[-46895.8750]],\n", + "\n", + " [[-46960.7969]],\n", + "\n", + " [[-47071.9492]],\n", + "\n", + " [[-46942.1836]],\n", + "\n", + " [[-47022.3750]],\n", + "\n", + " [[-46935.7891]],\n", + "\n", + " [[-47123.8477]],\n", + "\n", + " [[-46990.7930]],\n", + "\n", + " [[-46943.2773]],\n", + "\n", + " [[-46933.0898]],\n", + "\n", + " [[-46932.5234]],\n", + "\n", + " [[-47012.7383]],\n", + "\n", + " [[-46965.2656]],\n", + "\n", + " [[-46973.7578]],\n", + "\n", + " [[-46857.7695]],\n", + "\n", + " [[-46979.8320]],\n", + "\n", + " [[-46942.3633]],\n", + "\n", + " [[-46950.0312]],\n", + "\n", + " [[-46953.0195]],\n", + "\n", + " [[-47035.4492]],\n", + "\n", + " [[-46878.0078]],\n", + "\n", + " [[-47032.9219]],\n", + "\n", + " [[-46977.7773]],\n", + "\n", + " [[-47058.4883]],\n", + "\n", + " [[-46947.8633]],\n", + "\n", + " [[-46949.9648]]], grad_fn=)\n", + "tensor([[[-45586.7188]],\n", + "\n", + " [[-45550.5820]],\n", + "\n", + " [[-45399.3359]],\n", + "\n", + " [[-45539.1211]],\n", + "\n", + " [[-45602.3047]],\n", + "\n", + " [[-45527.3008]],\n", + "\n", + " [[-45583.5859]],\n", + "\n", + " [[-45681.8281]],\n", + "\n", + " [[-45728.9102]],\n", + "\n", + " [[-45696.8750]],\n", + "\n", + " [[-45409.5078]],\n", + "\n", + " [[-45535.0781]],\n", + "\n", + " [[-45545.2031]],\n", + "\n", + " [[-45469.6680]],\n", + "\n", + " [[-45487.8516]],\n", + "\n", + " [[-45464.7539]],\n", + "\n", + " [[-45442.2695]],\n", + "\n", + " [[-45462.8672]],\n", + "\n", + " [[-45623.6328]],\n", + "\n", + " [[-45409.7891]],\n", + "\n", + " [[-45526.2422]],\n", + "\n", + " [[-45361.2305]],\n", + "\n", + " [[-45405.0898]],\n", + "\n", + " [[-45590.9688]],\n", + "\n", + " [[-45621.2930]],\n", + "\n", + " [[-45587.3789]],\n", + "\n", + " [[-45549.5391]],\n", + "\n", + " [[-45442.6445]],\n", + "\n", + " [[-45563.9844]],\n", + "\n", + " [[-45532.9805]],\n", + "\n", + " [[-45588.1836]],\n", + "\n", + " [[-45570.8867]],\n", + "\n", + " [[-45598.6484]],\n", + "\n", + " [[-45656.2109]],\n", + "\n", + " [[-45574.5508]],\n", + "\n", + " [[-45668.3242]],\n", + "\n", + " [[-45612.2305]],\n", + "\n", + " [[-45569.4141]],\n", + "\n", + " [[-45480.1367]],\n", + "\n", + " [[-45421.6562]],\n", + "\n", + " [[-45561.4023]],\n", + "\n", + " [[-45421.1875]],\n", + "\n", + " [[-45539.1719]],\n", + "\n", + " [[-45529.0234]],\n", + "\n", + " [[-45585.7695]],\n", + "\n", + " [[-45541.3789]],\n", + "\n", + " [[-45462.3398]],\n", + "\n", + " [[-45559.1250]],\n", + "\n", + " [[-45620.6836]],\n", + "\n", + " [[-45513.4062]],\n", + "\n", + " [[-45523.3320]],\n", + "\n", + " [[-45470.6797]],\n", + "\n", + " [[-45524.3984]],\n", + "\n", + " [[-45579.0156]],\n", + "\n", + " [[-45561.7422]],\n", + "\n", + " [[-45508.0547]],\n", + "\n", + " [[-45457.7500]],\n", + "\n", + " [[-45604.1406]],\n", + "\n", + " [[-45503.7266]],\n", + "\n", + " [[-45658.9336]],\n", + "\n", + " [[-45468.7656]],\n", + "\n", + " [[-45520.3828]],\n", + "\n", + " [[-45630.2070]],\n", + "\n", + " [[-45524.3672]],\n", + "\n", + " [[-45565.7773]],\n", + "\n", + " [[-45596.6445]],\n", + "\n", + " [[-45455.4258]],\n", + "\n", + " [[-45588.5352]],\n", + "\n", + " [[-45608.9297]],\n", + "\n", + " [[-45605.7891]],\n", + "\n", + " [[-45514.6211]],\n", + "\n", + " [[-45604.8398]],\n", + "\n", + " [[-45565.1680]],\n", + "\n", + " [[-45483.5117]],\n", + "\n", + " [[-45554.1055]],\n", + "\n", + " [[-45573.6367]],\n", + "\n", + " [[-45617.4219]],\n", + "\n", + " [[-45538.0664]],\n", + "\n", + " [[-45539.4414]],\n", + "\n", + " [[-45504.4766]],\n", + "\n", + " [[-45564.0078]],\n", + "\n", + " [[-45505.2070]],\n", + "\n", + " [[-45632.1719]],\n", + "\n", + " [[-45411.7266]],\n", + "\n", + " [[-45544.8789]],\n", + "\n", + " [[-45534.4062]],\n", + "\n", + " [[-45644.5859]],\n", + "\n", + " [[-45557.2227]],\n", + "\n", + " [[-45544.2852]],\n", + "\n", + " [[-45551.9023]],\n", + "\n", + " [[-45625.1016]],\n", + "\n", + " [[-45463.3477]],\n", + "\n", + " [[-45592.7148]],\n", + "\n", + " [[-45529.5117]],\n", + "\n", + " [[-45517.9453]],\n", + "\n", + " [[-45498.7969]],\n", + "\n", + " [[-45490.5586]],\n", + "\n", + " [[-45409.4531]],\n", + "\n", + " [[-45547.7734]],\n", + "\n", + " [[-45440.7383]],\n", + "\n", + " [[-45619.7188]],\n", + "\n", + " [[-45482.7695]],\n", + "\n", + " [[-45587.6445]],\n", + "\n", + " [[-45655.6289]],\n", + "\n", + " [[-45368.3789]],\n", + "\n", + " [[-45629.2891]],\n", + "\n", + " [[-45639.4961]],\n", + "\n", + " [[-45542.1719]],\n", + "\n", + " [[-45465.0508]],\n", + "\n", + " [[-45613.0078]],\n", + "\n", + " [[-45596.6680]],\n", + "\n", + " [[-45476.2578]],\n", + "\n", + " [[-45388.2852]],\n", + "\n", + " [[-45575.9766]],\n", + "\n", + " [[-45593.8750]],\n", + "\n", + " [[-45709.2344]],\n", + "\n", + " [[-45530.0586]],\n", + "\n", + " [[-45549.0195]],\n", + "\n", + " [[-45429.3945]],\n", + "\n", + " [[-45676.8516]],\n", + "\n", + " [[-45571.3281]],\n", + "\n", + " [[-45665.1094]],\n", + "\n", + " [[-45453.0859]],\n", + "\n", + " [[-45619.1875]],\n", + "\n", + " [[-45367.1172]],\n", + "\n", + " [[-45601.7188]],\n", + "\n", + " [[-45396.4336]],\n", + "\n", + " [[-45552.2031]],\n", + "\n", + " [[-45628.5391]],\n", + "\n", + " [[-45447.2148]],\n", + "\n", + " [[-45625.0547]],\n", + "\n", + " [[-45533.8398]],\n", + "\n", + " [[-45620.6328]],\n", + "\n", + " [[-45549.2930]],\n", + "\n", + " [[-45534.1680]],\n", + "\n", + " [[-45532.2539]],\n", + "\n", + " [[-45549.0977]],\n", + "\n", + " [[-45506.8789]],\n", + "\n", + " [[-45468.4961]],\n", + "\n", + " [[-45520.4414]],\n", + "\n", + " [[-45496.0742]],\n", + "\n", + " [[-45636.7461]],\n", + "\n", + " [[-45632.8711]],\n", + "\n", + " [[-45492.3281]],\n", + "\n", + " [[-45562.6953]],\n", + "\n", + " [[-45583.3633]],\n", + "\n", + " [[-45677.3125]],\n", + "\n", + " [[-45542.6328]],\n", + "\n", + " [[-45384.0156]],\n", + "\n", + " [[-45476.2188]],\n", + "\n", + " [[-45578.8008]],\n", + "\n", + " [[-45619.5977]],\n", + "\n", + " [[-45514.4453]],\n", + "\n", + " [[-45471.0039]],\n", + "\n", + " [[-45639.1875]],\n", + "\n", + " [[-45483.7344]],\n", + "\n", + " [[-45553.5195]],\n", + "\n", + " [[-45636.4141]],\n", + "\n", + " [[-45404.9414]],\n", + "\n", + " [[-45575.4297]],\n", + "\n", + " [[-45404.5781]],\n", + "\n", + " [[-45605.5977]],\n", + "\n", + " [[-45473.3789]],\n", + "\n", + " [[-45401.8828]],\n", + "\n", + " [[-45489.7148]],\n", + "\n", + " [[-45446.1367]],\n", + "\n", + " [[-45644.5664]],\n", + "\n", + " [[-45575.1680]],\n", + "\n", + " [[-45488.0078]],\n", + "\n", + " [[-45546.3789]],\n", + "\n", + " [[-45633.4023]],\n", + "\n", + " [[-45543.3555]],\n", + "\n", + " [[-45558.1914]],\n", + "\n", + " [[-45574.1055]],\n", + "\n", + " [[-45636.1445]],\n", + "\n", + " [[-45480.3086]],\n", + "\n", + " [[-45538.9062]],\n", + "\n", + " [[-45566.4141]],\n", + "\n", + " [[-45508.5195]],\n", + "\n", + " [[-45584.4375]],\n", + "\n", + " [[-45566.0703]],\n", + "\n", + " [[-45571.2422]],\n", + "\n", + " [[-45485.4102]],\n", + "\n", + " [[-45582.4062]],\n", + "\n", + " [[-45460.3477]],\n", + "\n", + " [[-45529.4375]],\n", + "\n", + " [[-45558.2891]],\n", + "\n", + " [[-45533.9297]],\n", + "\n", + " [[-45634.5859]],\n", + "\n", + " [[-45420.8984]],\n", + "\n", + " [[-45486.8594]],\n", + "\n", + " [[-45544.6016]],\n", + "\n", + " [[-45621.8867]],\n", + "\n", + " [[-45583.0742]],\n", + "\n", + " [[-45762.8320]],\n", + "\n", + " [[-45659.7227]],\n", + "\n", + " [[-45538.3242]],\n", + "\n", + " [[-45587.3164]],\n", + "\n", + " [[-45522.7695]],\n", + "\n", + " [[-45450.7500]],\n", + "\n", + " [[-45552.2383]],\n", + "\n", + " [[-45502.0547]],\n", + "\n", + " [[-45564.2773]],\n", + "\n", + " [[-45605.6016]],\n", + "\n", + " [[-45521.9922]],\n", + "\n", + " [[-45435.5859]],\n", + "\n", + " [[-45587.6484]],\n", + "\n", + " [[-45528.7930]],\n", + "\n", + " [[-45518.9844]],\n", + "\n", + " [[-45514.9453]],\n", + "\n", + " [[-45524.1016]],\n", + "\n", + " [[-45586.2031]],\n", + "\n", + " [[-45419.8789]],\n", + "\n", + " [[-45547.9922]],\n", + "\n", + " [[-45471.0391]],\n", + "\n", + " [[-45503.4375]],\n", + "\n", + " [[-45439.3711]],\n", + "\n", + " [[-45459.8945]],\n", + "\n", + " [[-45401.4531]],\n", + "\n", + " [[-45521.0039]],\n", + "\n", + " [[-45560.3594]],\n", + "\n", + " [[-45597.1289]],\n", + "\n", + " [[-45573.0586]],\n", + "\n", + " [[-45498.3242]],\n", + "\n", + " [[-45573.9922]],\n", + "\n", + " [[-45392.8750]],\n", + "\n", + " [[-45530.1797]],\n", + "\n", + " [[-45591.5820]],\n", + "\n", + " [[-45586.5703]],\n", + "\n", + " [[-45419.2578]],\n", + "\n", + " [[-45467.7734]],\n", + "\n", + " [[-45550.1992]],\n", + "\n", + " [[-45682.7969]],\n", + "\n", + " [[-45722.0352]],\n", + "\n", + " [[-45482.5938]],\n", + "\n", + " [[-45668.5586]],\n", + "\n", + " [[-45485.4922]],\n", + "\n", + " [[-45601.5234]],\n", + "\n", + " [[-45752.4023]],\n", + "\n", + " [[-45584.5781]],\n", + "\n", + " [[-45500.4180]],\n", + "\n", + " [[-45465.0703]],\n", + "\n", + " [[-45493.7266]],\n", + "\n", + " [[-45576.8203]],\n", + "\n", + " [[-45557.0273]],\n", + "\n", + " [[-45518.6289]],\n", + "\n", + " [[-45675.5000]],\n", + "\n", + " [[-45515.1484]],\n", + "\n", + " [[-45516.2188]],\n", + "\n", + " [[-45564.9062]],\n", + "\n", + " [[-45531.4531]],\n", + "\n", + " [[-45497.7227]],\n", + "\n", + " [[-45494.8516]],\n", + "\n", + " [[-45588.2305]],\n", + "\n", + " [[-45471.4766]],\n", + "\n", + " [[-45572.9961]]], grad_fn=)\n", + "tensor([[[-44231.1758]],\n", + "\n", + " [[-44119.0703]],\n", + "\n", + " [[-44247.6406]],\n", + "\n", + " [[-44058.1758]],\n", + "\n", + " [[-44091.8242]],\n", + "\n", + " [[-44158.4883]],\n", + "\n", + " [[-44165.4961]],\n", + "\n", + " [[-44081.2188]],\n", + "\n", + " [[-43974.2969]],\n", + "\n", + " [[-43983.7891]],\n", + "\n", + " [[-44118.9922]],\n", + "\n", + " [[-44263.8633]],\n", + "\n", + " [[-44085.3047]],\n", + "\n", + " [[-43977.4336]],\n", + "\n", + " [[-44180.2070]],\n", + "\n", + " [[-44055.2266]],\n", + "\n", + " [[-44081.2227]],\n", + "\n", + " [[-44154.6445]],\n", + "\n", + " [[-44134.4258]],\n", + "\n", + " [[-44226.7891]],\n", + "\n", + " [[-44258.1094]],\n", + "\n", + " [[-44137.4062]],\n", + "\n", + " [[-44115.4219]],\n", + "\n", + " [[-44154.7461]],\n", + "\n", + " [[-43947.2266]],\n", + "\n", + " [[-44071.8008]],\n", + "\n", + " [[-44030.9648]],\n", + "\n", + " [[-44173.0664]],\n", + "\n", + " [[-44136.4453]],\n", + "\n", + " [[-44167.6602]],\n", + "\n", + " [[-44104.9141]],\n", + "\n", + " [[-44042.1406]],\n", + "\n", + " [[-44254.0352]],\n", + "\n", + " [[-44037.4961]],\n", + "\n", + " [[-43996.2500]],\n", + "\n", + " [[-44074.3672]],\n", + "\n", + " [[-44070.1641]],\n", + "\n", + " [[-44061.4062]],\n", + "\n", + " [[-44064.2852]],\n", + "\n", + " [[-44154.7930]],\n", + "\n", + " [[-44050.9023]],\n", + "\n", + " [[-43951.1367]],\n", + "\n", + " [[-44010.5703]],\n", + "\n", + " [[-44155.4336]],\n", + "\n", + " [[-44079.7773]],\n", + "\n", + " [[-44148.3008]],\n", + "\n", + " [[-44043.8555]],\n", + "\n", + " [[-43972.6094]],\n", + "\n", + " [[-44042.8203]],\n", + "\n", + " [[-44142.8906]],\n", + "\n", + " [[-44126.7930]],\n", + "\n", + " [[-44071.2383]],\n", + "\n", + " [[-44086.1055]],\n", + "\n", + " [[-44092.4805]],\n", + "\n", + " [[-44005.3398]],\n", + "\n", + " [[-44023.6406]],\n", + "\n", + " [[-44133.6484]],\n", + "\n", + " [[-44061.4336]],\n", + "\n", + " [[-44308.2812]],\n", + "\n", + " [[-44243.3711]],\n", + "\n", + " [[-44070.1328]],\n", + "\n", + " [[-44150.9453]],\n", + "\n", + " [[-44124.5586]],\n", + "\n", + " [[-44239.6836]],\n", + "\n", + " [[-44114.4922]],\n", + "\n", + " [[-44102.2734]],\n", + "\n", + " [[-43968.2852]],\n", + "\n", + " [[-44122.9180]],\n", + "\n", + " [[-44241.5078]],\n", + "\n", + " [[-44110.2344]],\n", + "\n", + " [[-44170.2617]],\n", + "\n", + " [[-44053.1172]],\n", + "\n", + " [[-44162.1914]],\n", + "\n", + " [[-44178.8203]],\n", + "\n", + " [[-44195.8125]],\n", + "\n", + " [[-44136.3828]],\n", + "\n", + " [[-43992.2695]],\n", + "\n", + " [[-44136.3477]],\n", + "\n", + " [[-44061.3789]],\n", + "\n", + " [[-44066.2031]],\n", + "\n", + " [[-44121.3867]],\n", + "\n", + " [[-44090.4648]],\n", + "\n", + " [[-44183.0742]],\n", + "\n", + " [[-44316.5938]],\n", + "\n", + " [[-44113.4531]],\n", + "\n", + " [[-44090.8125]],\n", + "\n", + " [[-44008.1875]],\n", + "\n", + " [[-43957.9023]],\n", + "\n", + " [[-44102.9727]],\n", + "\n", + " [[-44187.1914]],\n", + "\n", + " [[-44184.1562]],\n", + "\n", + " [[-44151.5234]],\n", + "\n", + " [[-44060.2070]],\n", + "\n", + " [[-44105.1836]],\n", + "\n", + " [[-44016.9023]],\n", + "\n", + " [[-44171.2773]],\n", + "\n", + " [[-43994.6797]],\n", + "\n", + " [[-44177.0234]],\n", + "\n", + " [[-44129.6523]],\n", + "\n", + " [[-44051.9492]],\n", + "\n", + " [[-44088.1172]],\n", + "\n", + " [[-44016.8359]],\n", + "\n", + " [[-44172.3633]],\n", + "\n", + " [[-44145.1250]],\n", + "\n", + " [[-44105.4531]],\n", + "\n", + " [[-44230.1445]],\n", + "\n", + " [[-44101.8164]],\n", + "\n", + " [[-44222.6953]],\n", + "\n", + " [[-44149.0586]],\n", + "\n", + " [[-44129.6133]],\n", + "\n", + " [[-44068.2969]],\n", + "\n", + " [[-44077.5156]],\n", + "\n", + " [[-44372.6484]],\n", + "\n", + " [[-44233.8516]],\n", + "\n", + " [[-44105.5000]],\n", + "\n", + " [[-44169.2773]],\n", + "\n", + " [[-44110.4727]],\n", + "\n", + " [[-44217.6836]],\n", + "\n", + " [[-44067.9609]],\n", + "\n", + " [[-44197.9727]],\n", + "\n", + " [[-44178.5195]],\n", + "\n", + " [[-44122.2344]],\n", + "\n", + " [[-44248.4141]],\n", + "\n", + " [[-44165.3906]],\n", + "\n", + " [[-44019.7461]],\n", + "\n", + " [[-44075.6484]],\n", + "\n", + " [[-44179.8281]],\n", + "\n", + " [[-44153.7148]],\n", + "\n", + " [[-44065.2578]],\n", + "\n", + " [[-44206.1914]],\n", + "\n", + " [[-44146.2969]],\n", + "\n", + " [[-44145.3242]],\n", + "\n", + " [[-44169.2734]],\n", + "\n", + " [[-44122.2773]],\n", + "\n", + " [[-44048.9883]],\n", + "\n", + " [[-44197.1562]],\n", + "\n", + " [[-44142.3555]],\n", + "\n", + " [[-43991.7461]],\n", + "\n", + " [[-43984.2422]],\n", + "\n", + " [[-44069.5078]],\n", + "\n", + " [[-44054.6367]],\n", + "\n", + " [[-44129.3203]],\n", + "\n", + " [[-44369.4414]],\n", + "\n", + " [[-44056.2734]],\n", + "\n", + " [[-43982.3750]],\n", + "\n", + " [[-44155.8164]],\n", + "\n", + " [[-44005.0273]],\n", + "\n", + " [[-44166.0195]],\n", + "\n", + " [[-44211.0312]],\n", + "\n", + " [[-44166.9609]],\n", + "\n", + " [[-44152.1797]],\n", + "\n", + " [[-44077.0469]],\n", + "\n", + " [[-44188.0664]],\n", + "\n", + " [[-44000.4258]],\n", + "\n", + " [[-44013.6016]],\n", + "\n", + " [[-44061.0898]],\n", + "\n", + " [[-44180.4922]],\n", + "\n", + " [[-44054.0234]],\n", + "\n", + " [[-44225.4531]],\n", + "\n", + " [[-44121.8008]],\n", + "\n", + " [[-44250.1445]],\n", + "\n", + " [[-44117.0586]],\n", + "\n", + " [[-44122.6797]],\n", + "\n", + " [[-44142.1289]],\n", + "\n", + " [[-43972.1016]],\n", + "\n", + " [[-44046.4258]],\n", + "\n", + " [[-44228.0078]],\n", + "\n", + " [[-44295.1250]],\n", + "\n", + " [[-44194.8516]],\n", + "\n", + " [[-44287.4453]],\n", + "\n", + " [[-44188.1992]],\n", + "\n", + " [[-44071.6250]],\n", + "\n", + " [[-44161.6953]],\n", + "\n", + " [[-44048.9961]],\n", + "\n", + " [[-44155.9688]],\n", + "\n", + " [[-44176.3867]],\n", + "\n", + " [[-44157.1289]],\n", + "\n", + " [[-44250.1953]],\n", + "\n", + " [[-44093.3047]],\n", + "\n", + " [[-44089.9180]],\n", + "\n", + " [[-44235.1211]],\n", + "\n", + " [[-44086.6562]],\n", + "\n", + " [[-44115.4023]],\n", + "\n", + " [[-44282.3906]],\n", + "\n", + " [[-44093.0664]],\n", + "\n", + " [[-44086.9062]],\n", + "\n", + " [[-44219.5430]],\n", + "\n", + " [[-44045.5352]],\n", + "\n", + " [[-44151.4453]],\n", + "\n", + " [[-44229.0352]],\n", + "\n", + " [[-44161.3008]],\n", + "\n", + " [[-44051.2109]],\n", + "\n", + " [[-44081.2812]],\n", + "\n", + " [[-44147.8125]],\n", + "\n", + " [[-43977.1953]],\n", + "\n", + " [[-44012.3867]],\n", + "\n", + " [[-44236.3203]],\n", + "\n", + " [[-44091.1133]],\n", + "\n", + " [[-44080.5977]],\n", + "\n", + " [[-44051.3828]],\n", + "\n", + " [[-44137.6992]],\n", + "\n", + " [[-44064.6875]],\n", + "\n", + " [[-44157.5977]],\n", + "\n", + " [[-44135.7930]],\n", + "\n", + " [[-44176.7891]],\n", + "\n", + " [[-44000.5391]],\n", + "\n", + " [[-44103.3633]],\n", + "\n", + " [[-44142.8359]],\n", + "\n", + " [[-43972.7734]],\n", + "\n", + " [[-44173.8281]],\n", + "\n", + " [[-44117.6523]],\n", + "\n", + " [[-44064.5391]],\n", + "\n", + " [[-44262.2461]],\n", + "\n", + " [[-44152.1523]],\n", + "\n", + " [[-44219.4336]],\n", + "\n", + " [[-44221.2773]],\n", + "\n", + " [[-44030.2422]],\n", + "\n", + " [[-44167.8320]],\n", + "\n", + " [[-44026.9023]],\n", + "\n", + " [[-44090.2461]],\n", + "\n", + " [[-44089.8086]],\n", + "\n", + " [[-44157.3711]],\n", + "\n", + " [[-44123.0703]],\n", + "\n", + " [[-44044.6016]],\n", + "\n", + " [[-44123.1445]],\n", + "\n", + " [[-44088.0664]],\n", + "\n", + " [[-44116.4609]],\n", + "\n", + " [[-44204.8828]],\n", + "\n", + " [[-44002.2461]],\n", + "\n", + " [[-44071.5938]],\n", + "\n", + " [[-44186.1133]],\n", + "\n", + " [[-44084.3945]],\n", + "\n", + " [[-44139.5938]],\n", + "\n", + " [[-44279.0078]],\n", + "\n", + " [[-44088.6445]],\n", + "\n", + " [[-44175.3711]],\n", + "\n", + " [[-44090.7305]],\n", + "\n", + " [[-44077.4336]],\n", + "\n", + " [[-44093.3047]],\n", + "\n", + " [[-44212.9297]],\n", + "\n", + " [[-44179.1406]],\n", + "\n", + " [[-44171.0781]],\n", + "\n", + " [[-44006.0938]],\n", + "\n", + " [[-44242.8320]],\n", + "\n", + " [[-44231.0039]],\n", + "\n", + " [[-44114.6250]],\n", + "\n", + " [[-44063.9102]],\n", + "\n", + " [[-44109.6445]],\n", + "\n", + " [[-44213.3750]],\n", + "\n", + " [[-44054.7500]],\n", + "\n", + " [[-44076.5000]],\n", + "\n", + " [[-44111.5859]],\n", + "\n", + " [[-44139.8711]],\n", + "\n", + " [[-44104.6758]],\n", + "\n", + " [[-44122.1289]],\n", + "\n", + " [[-44084.3555]]], grad_fn=)\n", + "tensor([[[-42598.3164]],\n", + "\n", + " [[-42817.9492]],\n", + "\n", + " [[-42812.8594]],\n", + "\n", + " [[-42688.0312]],\n", + "\n", + " [[-42695.8359]],\n", + "\n", + " [[-42776.9336]],\n", + "\n", + " [[-42871.6836]],\n", + "\n", + " [[-42904.2305]],\n", + "\n", + " [[-42846.5078]],\n", + "\n", + " [[-42800.0117]],\n", + "\n", + " [[-42911.1133]],\n", + "\n", + " [[-42685.7188]],\n", + "\n", + " [[-42787.6016]],\n", + "\n", + " [[-42782.8125]],\n", + "\n", + " [[-42701.6875]],\n", + "\n", + " [[-42588.1992]],\n", + "\n", + " [[-42718.7227]],\n", + "\n", + " [[-42775.2617]],\n", + "\n", + " [[-42851.4727]],\n", + "\n", + " [[-42769.2656]],\n", + "\n", + " [[-42783.1250]],\n", + "\n", + " [[-42703.7852]],\n", + "\n", + " [[-42660.9961]],\n", + "\n", + " [[-42718.4219]],\n", + "\n", + " [[-42835.0977]],\n", + "\n", + " [[-42620.2852]],\n", + "\n", + " [[-42780.0938]],\n", + "\n", + " [[-42800.9336]],\n", + "\n", + " [[-42655.3906]],\n", + "\n", + " [[-42816.8789]],\n", + "\n", + " [[-42832.1211]],\n", + "\n", + " [[-42793.4141]],\n", + "\n", + " [[-42761.8047]],\n", + "\n", + " [[-42768.0117]],\n", + "\n", + " [[-42719.9609]],\n", + "\n", + " [[-42721.7852]],\n", + "\n", + " [[-42689.2266]],\n", + "\n", + " [[-42789.7070]],\n", + "\n", + " [[-42779.1367]],\n", + "\n", + " [[-42856.4414]],\n", + "\n", + " [[-42806.1172]],\n", + "\n", + " [[-42777.0078]],\n", + "\n", + " [[-42883.7852]],\n", + "\n", + " [[-42773.9297]],\n", + "\n", + " [[-42771.9062]],\n", + "\n", + " [[-42617.6289]],\n", + "\n", + " [[-42769.1680]],\n", + "\n", + " [[-42621.5312]],\n", + "\n", + " [[-42616.4062]],\n", + "\n", + " [[-42905.5156]],\n", + "\n", + " [[-42678.4258]],\n", + "\n", + " [[-42904.0195]],\n", + "\n", + " [[-42704.2930]],\n", + "\n", + " [[-42740.1836]],\n", + "\n", + " [[-42737.8398]],\n", + "\n", + " [[-42893.4531]],\n", + "\n", + " [[-42713.2188]],\n", + "\n", + " [[-42809.9258]],\n", + "\n", + " [[-42702.8125]],\n", + "\n", + " [[-42588.9609]],\n", + "\n", + " [[-42729.9336]],\n", + "\n", + " [[-42844.5977]],\n", + "\n", + " [[-42740.7617]],\n", + "\n", + " [[-42914.4805]],\n", + "\n", + " [[-42671.1680]],\n", + "\n", + " [[-42861.8359]],\n", + "\n", + " [[-42660.7227]],\n", + "\n", + " [[-42727.6406]],\n", + "\n", + " [[-42791.8594]],\n", + "\n", + " [[-42810.6016]],\n", + "\n", + " [[-42769.5781]],\n", + "\n", + " [[-42759.2773]],\n", + "\n", + " [[-42863.1406]],\n", + "\n", + " [[-42733.9961]],\n", + "\n", + " [[-42681.6250]],\n", + "\n", + " [[-42781.7266]],\n", + "\n", + " [[-42778.2383]],\n", + "\n", + " [[-42643.5352]],\n", + "\n", + " [[-42692.9766]],\n", + "\n", + " [[-42677.2969]],\n", + "\n", + " [[-42686.5391]],\n", + "\n", + " [[-42779.1562]],\n", + "\n", + " [[-42802.8125]],\n", + "\n", + " [[-42801.0195]],\n", + "\n", + " [[-42834.9141]],\n", + "\n", + " [[-42815.1719]],\n", + "\n", + " [[-42643.8906]],\n", + "\n", + " [[-42824.6992]],\n", + "\n", + " [[-42833.3125]],\n", + "\n", + " [[-42762.6719]],\n", + "\n", + " [[-42802.8203]],\n", + "\n", + " [[-42772.9336]],\n", + "\n", + " [[-42815.8867]],\n", + "\n", + " [[-42701.1289]],\n", + "\n", + " [[-42963.1797]],\n", + "\n", + " [[-42748.1406]],\n", + "\n", + " [[-42684.9062]],\n", + "\n", + " [[-42794.6562]],\n", + "\n", + " [[-42804.9414]],\n", + "\n", + " [[-42900.7695]],\n", + "\n", + " [[-42733.4805]],\n", + "\n", + " [[-42819.2773]],\n", + "\n", + " [[-42822.7812]],\n", + "\n", + " [[-42817.1055]],\n", + "\n", + " [[-42767.5000]],\n", + "\n", + " [[-42694.1445]],\n", + "\n", + " [[-42753.5586]],\n", + "\n", + " [[-42694.3242]],\n", + "\n", + " [[-42857.4141]],\n", + "\n", + " [[-42674.7148]],\n", + "\n", + " [[-42901.4375]],\n", + "\n", + " [[-42730.0938]],\n", + "\n", + " [[-42764.7148]],\n", + "\n", + " [[-42816.2227]],\n", + "\n", + " [[-42815.8320]],\n", + "\n", + " [[-42620.8359]],\n", + "\n", + " [[-42689.9766]],\n", + "\n", + " [[-42715.6406]],\n", + "\n", + " [[-42873.4258]],\n", + "\n", + " [[-42771.5820]],\n", + "\n", + " [[-42860.3828]],\n", + "\n", + " [[-42724.6602]],\n", + "\n", + " [[-42853.4141]],\n", + "\n", + " [[-42819.1094]],\n", + "\n", + " [[-42731.5625]],\n", + "\n", + " [[-42810.0195]],\n", + "\n", + " [[-42667.5234]],\n", + "\n", + " [[-42769.9453]],\n", + "\n", + " [[-42603.8750]],\n", + "\n", + " [[-42671.1484]],\n", + "\n", + " [[-42721.8398]],\n", + "\n", + " [[-42754.5625]],\n", + "\n", + " [[-42692.0508]],\n", + "\n", + " [[-42831.9570]],\n", + "\n", + " [[-42813.2969]],\n", + "\n", + " [[-42796.1016]],\n", + "\n", + " [[-42830.0742]],\n", + "\n", + " [[-42743.5078]],\n", + "\n", + " [[-42872.6211]],\n", + "\n", + " [[-42596.7148]],\n", + "\n", + " [[-42768.6953]],\n", + "\n", + " [[-42815.4141]],\n", + "\n", + " [[-42672.2422]],\n", + "\n", + " [[-42832.3242]],\n", + "\n", + " [[-42800.7109]],\n", + "\n", + " [[-42832.6602]],\n", + "\n", + " [[-42733.7383]],\n", + "\n", + " [[-42793.1211]],\n", + "\n", + " [[-42792.6523]],\n", + "\n", + " [[-42751.7461]],\n", + "\n", + " [[-42684.0312]],\n", + "\n", + " [[-42666.2070]],\n", + "\n", + " [[-42812.1328]],\n", + "\n", + " [[-42607.1250]],\n", + "\n", + " [[-42761.0547]],\n", + "\n", + " [[-42818.6055]],\n", + "\n", + " [[-42851.9492]],\n", + "\n", + " [[-42711.2539]],\n", + "\n", + " [[-42761.7148]],\n", + "\n", + " [[-42697.7930]],\n", + "\n", + " [[-42810.6797]],\n", + "\n", + " [[-42791.9023]],\n", + "\n", + " [[-42718.0508]],\n", + "\n", + " [[-42682.4609]],\n", + "\n", + " [[-42672.4023]],\n", + "\n", + " [[-42736.4648]],\n", + "\n", + " [[-42702.5547]],\n", + "\n", + " [[-42731.6523]],\n", + "\n", + " [[-42870.7109]],\n", + "\n", + " [[-42778.4023]],\n", + "\n", + " [[-42895.0312]],\n", + "\n", + " [[-42893.4336]],\n", + "\n", + " [[-42806.5898]],\n", + "\n", + " [[-42685.3750]],\n", + "\n", + " [[-42800.2695]],\n", + "\n", + " [[-42844.0156]],\n", + "\n", + " [[-42687.9609]],\n", + "\n", + " [[-42585.9492]],\n", + "\n", + " [[-42773.5508]],\n", + "\n", + " [[-42789.9453]],\n", + "\n", + " [[-42714.7773]],\n", + "\n", + " [[-42833.1992]],\n", + "\n", + " [[-42742.8867]],\n", + "\n", + " [[-42906.7969]],\n", + "\n", + " [[-42687.5312]],\n", + "\n", + " [[-42731.5039]],\n", + "\n", + " [[-42751.9648]],\n", + "\n", + " [[-42841.3945]],\n", + "\n", + " [[-42651.5625]],\n", + "\n", + " [[-42781.0039]],\n", + "\n", + " [[-42730.6836]],\n", + "\n", + " [[-42749.2344]],\n", + "\n", + " [[-42814.7188]],\n", + "\n", + " [[-42788.6133]],\n", + "\n", + " [[-42859.1172]],\n", + "\n", + " [[-42842.8477]],\n", + "\n", + " [[-42802.4727]],\n", + "\n", + " [[-42771.6133]],\n", + "\n", + " [[-42743.1445]],\n", + "\n", + " [[-42779.5703]],\n", + "\n", + " [[-42746.3438]],\n", + "\n", + " [[-42796.4297]],\n", + "\n", + " [[-42724.9883]],\n", + "\n", + " [[-42722.0625]],\n", + "\n", + " [[-42818.5234]],\n", + "\n", + " [[-42710.1562]],\n", + "\n", + " [[-42722.6172]],\n", + "\n", + " [[-42695.0977]],\n", + "\n", + " [[-42838.4219]],\n", + "\n", + " [[-42739.0625]],\n", + "\n", + " [[-42885.8242]],\n", + "\n", + " [[-42786.7539]],\n", + "\n", + " [[-42801.6328]],\n", + "\n", + " [[-42714.4023]],\n", + "\n", + " [[-42730.5195]],\n", + "\n", + " [[-42695.1289]],\n", + "\n", + " [[-42717.1953]],\n", + "\n", + " [[-42699.6680]],\n", + "\n", + " [[-42842.5195]],\n", + "\n", + " [[-42715.6992]],\n", + "\n", + " [[-42684.0625]],\n", + "\n", + " [[-42845.2070]],\n", + "\n", + " [[-42796.3125]],\n", + "\n", + " [[-42822.2266]],\n", + "\n", + " [[-42779.2852]],\n", + "\n", + " [[-42846.5273]],\n", + "\n", + " [[-42611.0820]],\n", + "\n", + " [[-42682.0898]],\n", + "\n", + " [[-42597.5391]],\n", + "\n", + " [[-42727.1719]],\n", + "\n", + " [[-42627.8242]],\n", + "\n", + " [[-42697.7305]],\n", + "\n", + " [[-42677.5859]],\n", + "\n", + " [[-42830.4062]],\n", + "\n", + " [[-42800.1289]],\n", + "\n", + " [[-42651.4961]],\n", + "\n", + " [[-42754.5664]],\n", + "\n", + " [[-42865.3672]],\n", + "\n", + " [[-42795.2344]],\n", + "\n", + " [[-42724.5078]],\n", + "\n", + " [[-42841.3633]],\n", + "\n", + " [[-42692.3359]],\n", + "\n", + " [[-42904.3008]],\n", + "\n", + " [[-42694.1055]],\n", + "\n", + " [[-42735.9688]],\n", + "\n", + " [[-42700.9180]],\n", + "\n", + " [[-42766.4922]],\n", + "\n", + " [[-42674.8750]],\n", + "\n", + " [[-42601.6836]],\n", + "\n", + " [[-42685.6133]],\n", + "\n", + " [[-42679.9766]],\n", + "\n", + " [[-42597.8359]],\n", + "\n", + " [[-42742.4258]],\n", + "\n", + " [[-42807.4414]],\n", + "\n", + " [[-42724.3281]],\n", + "\n", + " [[-42815.1328]]], grad_fn=)\n", + "tensor([[[-41371.9453]],\n", + "\n", + " [[-41449.7930]],\n", + "\n", + " [[-41360.4297]],\n", + "\n", + " [[-41378.4922]],\n", + "\n", + " [[-41404.1211]],\n", + "\n", + " [[-41473.3789]],\n", + "\n", + " [[-41388.8711]],\n", + "\n", + " [[-41284.0391]],\n", + "\n", + " [[-41403.3281]],\n", + "\n", + " [[-41448.5742]],\n", + "\n", + " [[-41641.0469]],\n", + "\n", + " [[-41425.3594]],\n", + "\n", + " [[-41408.1836]],\n", + "\n", + " [[-41360.1797]],\n", + "\n", + " [[-41418.8906]],\n", + "\n", + " [[-41384.3594]],\n", + "\n", + " [[-41292.2383]],\n", + "\n", + " [[-41510.6797]],\n", + "\n", + " [[-41446.3438]],\n", + "\n", + " [[-41421.6641]],\n", + "\n", + " [[-41414.9062]],\n", + "\n", + " [[-41380.2734]],\n", + "\n", + " [[-41520.8242]],\n", + "\n", + " [[-41426.4336]],\n", + "\n", + " [[-41498.7930]],\n", + "\n", + " [[-41422.8242]],\n", + "\n", + " [[-41247.9961]],\n", + "\n", + " [[-41340.1680]],\n", + "\n", + " [[-41474.7578]],\n", + "\n", + " [[-41425.4805]],\n", + "\n", + " [[-41355.5938]],\n", + "\n", + " [[-41344.3008]],\n", + "\n", + " [[-41334.5977]],\n", + "\n", + " [[-41412.8281]],\n", + "\n", + " [[-41461.6875]],\n", + "\n", + " [[-41394.7305]],\n", + "\n", + " [[-41353.7227]],\n", + "\n", + " [[-41363.1914]],\n", + "\n", + " [[-41357.1875]],\n", + "\n", + " [[-41308.7109]],\n", + "\n", + " [[-41312.6875]],\n", + "\n", + " [[-41438.7617]],\n", + "\n", + " [[-41392.9805]],\n", + "\n", + " [[-41437.1250]],\n", + "\n", + " [[-41439.5898]],\n", + "\n", + " [[-41481.6719]],\n", + "\n", + " [[-41316.5312]],\n", + "\n", + " [[-41395.7031]],\n", + "\n", + " [[-41388.9297]],\n", + "\n", + " [[-41369.8984]],\n", + "\n", + " [[-41393.0430]],\n", + "\n", + " [[-41423.3867]],\n", + "\n", + " [[-41455.3945]],\n", + "\n", + " [[-41477.3906]],\n", + "\n", + " [[-41407.6172]],\n", + "\n", + " [[-41310.8086]],\n", + "\n", + " [[-41382.1250]],\n", + "\n", + " [[-41383.3320]],\n", + "\n", + " [[-41416.9805]],\n", + "\n", + " [[-41411.5469]],\n", + "\n", + " [[-41399.8008]],\n", + "\n", + " [[-41265.6445]],\n", + "\n", + " [[-41253.8672]],\n", + "\n", + " [[-41470.5781]],\n", + "\n", + " [[-41525.3711]],\n", + "\n", + " [[-41426.1523]],\n", + "\n", + " [[-41416.1836]],\n", + "\n", + " [[-41483.0234]],\n", + "\n", + " [[-41504.3008]],\n", + "\n", + " [[-41280.2852]],\n", + "\n", + " [[-41628.4141]],\n", + "\n", + " [[-41518.3945]],\n", + "\n", + " [[-41371.6562]],\n", + "\n", + " [[-41391.0547]],\n", + "\n", + " [[-41453.0156]],\n", + "\n", + " [[-41404.9023]],\n", + "\n", + " [[-41410.0820]],\n", + "\n", + " [[-41500.2148]],\n", + "\n", + " [[-41274.1602]],\n", + "\n", + " [[-41447.2969]],\n", + "\n", + " [[-41284.7031]],\n", + "\n", + " [[-41367.9609]],\n", + "\n", + " [[-41248.6016]],\n", + "\n", + " [[-41398.4023]],\n", + "\n", + " [[-41341.3203]],\n", + "\n", + " [[-41387.6016]],\n", + "\n", + " [[-41363.9609]],\n", + "\n", + " [[-41623.1836]],\n", + "\n", + " [[-41434.4727]],\n", + "\n", + " [[-41330.4180]],\n", + "\n", + " [[-41444.3320]],\n", + "\n", + " [[-41368.4805]],\n", + "\n", + " [[-41324.5703]],\n", + "\n", + " [[-41491.9297]],\n", + "\n", + " [[-41517.3086]],\n", + "\n", + " [[-41396.8555]],\n", + "\n", + " [[-41441.4023]],\n", + "\n", + " [[-41451.4375]],\n", + "\n", + " [[-41260.8281]],\n", + "\n", + " [[-41401.1875]],\n", + "\n", + " [[-41496.1836]],\n", + "\n", + " [[-41463.8242]],\n", + "\n", + " [[-41347.5703]],\n", + "\n", + " [[-41393.4062]],\n", + "\n", + " [[-41533.9805]],\n", + "\n", + " [[-41337.7422]],\n", + "\n", + " [[-41399.3125]],\n", + "\n", + " [[-41458.5469]],\n", + "\n", + " [[-41396.0195]],\n", + "\n", + " [[-41399.7305]],\n", + "\n", + " [[-41422.3047]],\n", + "\n", + " [[-41422.7031]],\n", + "\n", + " [[-41349.6719]],\n", + "\n", + " [[-41330.3828]],\n", + "\n", + " [[-41448.6172]],\n", + "\n", + " [[-41427.5664]],\n", + "\n", + " [[-41445.8594]],\n", + "\n", + " [[-41303.6445]],\n", + "\n", + " [[-41354.7422]],\n", + "\n", + " [[-41347.1484]],\n", + "\n", + " [[-41424.3320]],\n", + "\n", + " [[-41329.6406]],\n", + "\n", + " [[-41294.8711]],\n", + "\n", + " [[-41336.6953]],\n", + "\n", + " [[-41348.7031]],\n", + "\n", + " [[-41479.6719]],\n", + "\n", + " [[-41535.1328]],\n", + "\n", + " [[-41469.3203]],\n", + "\n", + " [[-41363.8711]],\n", + "\n", + " [[-41376.6094]],\n", + "\n", + " [[-41547.0273]],\n", + "\n", + " [[-41544.4805]],\n", + "\n", + " [[-41286.8320]],\n", + "\n", + " [[-41312.0547]],\n", + "\n", + " [[-41516.1641]],\n", + "\n", + " [[-41482.9258]],\n", + "\n", + " [[-41450.8906]],\n", + "\n", + " [[-41386.4531]],\n", + "\n", + " [[-41501.4961]],\n", + "\n", + " [[-41430.9766]],\n", + "\n", + " [[-41326.6719]],\n", + "\n", + " [[-41536.1016]],\n", + "\n", + " [[-41473.7344]],\n", + "\n", + " [[-41244.9531]],\n", + "\n", + " [[-41412.3359]],\n", + "\n", + " [[-41392.2188]],\n", + "\n", + " [[-41310.4414]],\n", + "\n", + " [[-41438.1914]],\n", + "\n", + " [[-41411.5703]],\n", + "\n", + " [[-41319.0469]],\n", + "\n", + " [[-41364.9805]],\n", + "\n", + " [[-41471.6875]],\n", + "\n", + " [[-41359.6367]],\n", + "\n", + " [[-41382.9688]],\n", + "\n", + " [[-41404.8945]],\n", + "\n", + " [[-41428.1562]],\n", + "\n", + " [[-41247.6602]],\n", + "\n", + " [[-41519.5039]],\n", + "\n", + " [[-41374.8906]],\n", + "\n", + " [[-41422.6484]],\n", + "\n", + " [[-41298.6992]],\n", + "\n", + " [[-41334.3125]],\n", + "\n", + " [[-41334.8555]],\n", + "\n", + " [[-41349.3359]],\n", + "\n", + " [[-41321.2070]],\n", + "\n", + " [[-41553.9102]],\n", + "\n", + " [[-41395.9102]],\n", + "\n", + " [[-41500.4531]],\n", + "\n", + " [[-41353.4531]],\n", + "\n", + " [[-41484.2812]],\n", + "\n", + " [[-41448.7891]],\n", + "\n", + " [[-41459.0508]],\n", + "\n", + " [[-41548.8398]],\n", + "\n", + " [[-41435.9922]],\n", + "\n", + " [[-41457.5039]],\n", + "\n", + " [[-41412.5312]],\n", + "\n", + " [[-41415.7227]],\n", + "\n", + " [[-41494.1172]],\n", + "\n", + " [[-41317.7500]],\n", + "\n", + " [[-41522.1367]],\n", + "\n", + " [[-41289.1211]],\n", + "\n", + " [[-41424.5312]],\n", + "\n", + " [[-41401.5117]],\n", + "\n", + " [[-41387.5742]],\n", + "\n", + " [[-41435.8398]],\n", + "\n", + " [[-41384.0664]],\n", + "\n", + " [[-41506.7266]],\n", + "\n", + " [[-41448.8242]],\n", + "\n", + " [[-41500.2891]],\n", + "\n", + " [[-41395.0312]],\n", + "\n", + " [[-41472.8320]],\n", + "\n", + " [[-41322.7656]],\n", + "\n", + " [[-41265.4766]],\n", + "\n", + " [[-41404.3164]],\n", + "\n", + " [[-41332.8320]],\n", + "\n", + " [[-41416.2422]],\n", + "\n", + " [[-41262.9961]],\n", + "\n", + " [[-41382.4922]],\n", + "\n", + " [[-41271.5781]],\n", + "\n", + " [[-41421.8906]],\n", + "\n", + " [[-41562.3047]],\n", + "\n", + " [[-41441.3789]],\n", + "\n", + " [[-41322.0586]],\n", + "\n", + " [[-41353.5898]],\n", + "\n", + " [[-41426.7461]],\n", + "\n", + " [[-41354.3633]],\n", + "\n", + " [[-41330.3711]],\n", + "\n", + " [[-41430.5664]],\n", + "\n", + " [[-41462.9492]],\n", + "\n", + " [[-41397.0352]],\n", + "\n", + " [[-41367.2383]],\n", + "\n", + " [[-41297.9844]],\n", + "\n", + " [[-41459.4727]],\n", + "\n", + " [[-41399.2422]],\n", + "\n", + " [[-41277.3008]],\n", + "\n", + " [[-41463.2969]],\n", + "\n", + " [[-41359.3477]],\n", + "\n", + " [[-41500.6680]],\n", + "\n", + " [[-41505.0312]],\n", + "\n", + " [[-41245.1953]],\n", + "\n", + " [[-41440.2383]],\n", + "\n", + " [[-41319.0547]],\n", + "\n", + " [[-41333.3320]],\n", + "\n", + " [[-41292.8516]],\n", + "\n", + " [[-41421.2109]],\n", + "\n", + " [[-41310.3789]],\n", + "\n", + " [[-41468.3906]],\n", + "\n", + " [[-41425.2070]],\n", + "\n", + " [[-41422.9727]],\n", + "\n", + " [[-41430.1289]],\n", + "\n", + " [[-41357.2070]],\n", + "\n", + " [[-41419.0156]],\n", + "\n", + " [[-41429.6836]],\n", + "\n", + " [[-41258.5156]],\n", + "\n", + " [[-41506.8555]],\n", + "\n", + " [[-41294.6836]],\n", + "\n", + " [[-41461.2578]],\n", + "\n", + " [[-41333.9648]],\n", + "\n", + " [[-41316.7969]],\n", + "\n", + " [[-41388.7891]],\n", + "\n", + " [[-41479.9883]],\n", + "\n", + " [[-41275.9336]],\n", + "\n", + " [[-41434.1719]],\n", + "\n", + " [[-41587.2266]],\n", + "\n", + " [[-41404.2383]],\n", + "\n", + " [[-41415.7500]],\n", + "\n", + " [[-41487.1758]],\n", + "\n", + " [[-41338.8320]],\n", + "\n", + " [[-41500.4336]],\n", + "\n", + " [[-41350.0586]],\n", + "\n", + " [[-41342.4648]],\n", + "\n", + " [[-41525.0703]],\n", + "\n", + " [[-41445.2578]],\n", + "\n", + " [[-41449.4531]],\n", + "\n", + " [[-41439.0547]],\n", + "\n", + " [[-41403.2461]]], grad_fn=)\n", + "tensor([[[-40133.6914]],\n", + "\n", + " [[-40063.2383]],\n", + "\n", + " [[-40068.0938]],\n", + "\n", + " [[-40055.9180]],\n", + "\n", + " [[-40208.6719]],\n", + "\n", + " [[-40046.5117]],\n", + "\n", + " [[-39955.5859]],\n", + "\n", + " [[-40073.6211]],\n", + "\n", + " [[-40037.7969]],\n", + "\n", + " [[-39963.4883]],\n", + "\n", + " [[-40024.7773]],\n", + "\n", + " [[-40234.2266]],\n", + "\n", + " [[-40142.7969]],\n", + "\n", + " [[-40049.9609]],\n", + "\n", + " [[-40150.2305]],\n", + "\n", + " [[-40186.3945]],\n", + "\n", + " [[-39943.6328]],\n", + "\n", + " [[-40199.1445]],\n", + "\n", + " [[-40156.4180]],\n", + "\n", + " [[-40079.8750]],\n", + "\n", + " [[-40057.6133]],\n", + "\n", + " [[-40059.5039]],\n", + "\n", + " [[-39964.9297]],\n", + "\n", + " [[-40105.3125]],\n", + "\n", + " [[-40143.4141]],\n", + "\n", + " [[-40114.6406]],\n", + "\n", + " [[-40151.6953]],\n", + "\n", + " [[-40075.5742]],\n", + "\n", + " [[-40107.8164]],\n", + "\n", + " [[-40010.8125]],\n", + "\n", + " [[-39936.0508]],\n", + "\n", + " [[-40290.1445]],\n", + "\n", + " [[-40213.0312]],\n", + "\n", + " [[-40126.1641]],\n", + "\n", + " [[-40061.5977]],\n", + "\n", + " [[-40050.4688]],\n", + "\n", + " [[-40227.3125]],\n", + "\n", + " [[-40105.1797]],\n", + "\n", + " [[-40156.3945]],\n", + "\n", + " [[-40170.6992]],\n", + "\n", + " [[-40124.9414]],\n", + "\n", + " [[-40222.6914]],\n", + "\n", + " [[-40093.6914]],\n", + "\n", + " [[-40178.3398]],\n", + "\n", + " [[-40165.1406]],\n", + "\n", + " [[-40167.7539]],\n", + "\n", + " [[-40178.9609]],\n", + "\n", + " [[-40136.9375]],\n", + "\n", + " [[-40125.3125]],\n", + "\n", + " [[-40154.6484]],\n", + "\n", + " [[-39911.7578]],\n", + "\n", + " [[-40215.7969]],\n", + "\n", + " [[-40240.8242]],\n", + "\n", + " [[-40209.4258]],\n", + "\n", + " [[-39900.2305]],\n", + "\n", + " [[-40210.3828]],\n", + "\n", + " [[-40158.5273]],\n", + "\n", + " [[-39955.5703]],\n", + "\n", + " [[-40051.6914]],\n", + "\n", + " [[-40233.9844]],\n", + "\n", + " [[-40073.0273]],\n", + "\n", + " [[-40218.1992]],\n", + "\n", + " [[-40144.7656]],\n", + "\n", + " [[-40158.0469]],\n", + "\n", + " [[-40285.9102]],\n", + "\n", + " [[-40195.3750]],\n", + "\n", + " [[-40163.7383]],\n", + "\n", + " [[-40105.9336]],\n", + "\n", + " [[-40068.5508]],\n", + "\n", + " [[-40037.6562]],\n", + "\n", + " [[-40146.8359]],\n", + "\n", + " [[-40033.6602]],\n", + "\n", + " [[-40115.2109]],\n", + "\n", + " [[-40086.6250]],\n", + "\n", + " [[-39928.7344]],\n", + "\n", + " [[-40233.4141]],\n", + "\n", + " [[-40047.8516]],\n", + "\n", + " [[-40084.4453]],\n", + "\n", + " [[-40041.0781]],\n", + "\n", + " [[-40035.3008]],\n", + "\n", + " [[-40095.5000]],\n", + "\n", + " [[-40277.8633]],\n", + "\n", + " [[-40130.4727]],\n", + "\n", + " [[-39932.2266]],\n", + "\n", + " [[-40072.5625]],\n", + "\n", + " [[-40171.8555]],\n", + "\n", + " [[-40080.1211]],\n", + "\n", + " [[-40007.4180]],\n", + "\n", + " [[-40114.0820]],\n", + "\n", + " [[-39990.8047]],\n", + "\n", + " [[-40037.8203]],\n", + "\n", + " [[-40005.5586]],\n", + "\n", + " [[-40177.7773]],\n", + "\n", + " [[-40249.7461]],\n", + "\n", + " [[-40061.4844]],\n", + "\n", + " [[-40037.7031]],\n", + "\n", + " [[-40120.8516]],\n", + "\n", + " [[-40046.4180]],\n", + "\n", + " [[-40094.6250]],\n", + "\n", + " [[-40041.3672]],\n", + "\n", + " [[-40132.5117]],\n", + "\n", + " [[-40011.2812]],\n", + "\n", + " [[-40127.5586]],\n", + "\n", + " [[-39973.5195]],\n", + "\n", + " [[-40073.8008]],\n", + "\n", + " [[-40179.6484]],\n", + "\n", + " [[-39993.3672]],\n", + "\n", + " [[-40102.3438]],\n", + "\n", + " [[-40180.3906]],\n", + "\n", + " [[-40203.5234]],\n", + "\n", + " [[-39979.3867]],\n", + "\n", + " [[-40041.3398]],\n", + "\n", + " [[-39937.4297]],\n", + "\n", + " [[-40257.8828]],\n", + "\n", + " [[-39995.3125]],\n", + "\n", + " [[-40015.3945]],\n", + "\n", + " [[-40175.1133]],\n", + "\n", + " [[-40050.6875]],\n", + "\n", + " [[-40171.9531]],\n", + "\n", + " [[-40024.2422]],\n", + "\n", + " [[-40147.2930]],\n", + "\n", + " [[-40096.6328]],\n", + "\n", + " [[-39976.5898]],\n", + "\n", + " [[-40007.7500]],\n", + "\n", + " [[-39970.3594]],\n", + "\n", + " [[-40125.7734]],\n", + "\n", + " [[-40191.9453]],\n", + "\n", + " [[-40000.6914]],\n", + "\n", + " [[-40155.4492]],\n", + "\n", + " [[-40130.5547]],\n", + "\n", + " [[-40136.9961]],\n", + "\n", + " [[-40090.3633]],\n", + "\n", + " [[-40106.7148]],\n", + "\n", + " [[-40159.0586]],\n", + "\n", + " [[-40136.7578]],\n", + "\n", + " [[-40352.1406]],\n", + "\n", + " [[-40071.7148]],\n", + "\n", + " [[-40189.7773]],\n", + "\n", + " [[-40070.9062]],\n", + "\n", + " [[-40258.6289]],\n", + "\n", + " [[-40114.8945]],\n", + "\n", + " [[-40269.1992]],\n", + "\n", + " [[-40163.8359]],\n", + "\n", + " [[-40036.8477]],\n", + "\n", + " [[-40302.5859]],\n", + "\n", + " [[-39975.3438]],\n", + "\n", + " [[-40241.8672]],\n", + "\n", + " [[-39965.5820]],\n", + "\n", + " [[-40071.8320]],\n", + "\n", + " [[-40033.2695]],\n", + "\n", + " [[-40159.3789]],\n", + "\n", + " [[-40237.1016]],\n", + "\n", + " [[-40063.5977]],\n", + "\n", + " [[-40249.8164]],\n", + "\n", + " [[-40144.8516]],\n", + "\n", + " [[-39934.4961]],\n", + "\n", + " [[-40063.7734]],\n", + "\n", + " [[-40098.6484]],\n", + "\n", + " [[-40122.4570]],\n", + "\n", + " [[-40172.8398]],\n", + "\n", + " [[-40216.0820]],\n", + "\n", + " [[-40128.8125]],\n", + "\n", + " [[-40155.0117]],\n", + "\n", + " [[-40005.0234]],\n", + "\n", + " [[-40125.9609]],\n", + "\n", + " [[-40033.9648]],\n", + "\n", + " [[-40199.4336]],\n", + "\n", + " [[-40140.9688]],\n", + "\n", + " [[-40167.5430]],\n", + "\n", + " [[-40089.2656]],\n", + "\n", + " [[-40147.5977]],\n", + "\n", + " [[-39999.6953]],\n", + "\n", + " [[-40123.9883]],\n", + "\n", + " [[-40099.8516]],\n", + "\n", + " [[-40214.9258]],\n", + "\n", + " [[-40082.2266]],\n", + "\n", + " [[-39969.0195]],\n", + "\n", + " [[-40083.4922]],\n", + "\n", + " [[-40072.8555]],\n", + "\n", + " [[-40119.6719]],\n", + "\n", + " [[-40078.5859]],\n", + "\n", + " [[-40175.5430]],\n", + "\n", + " [[-40025.7266]],\n", + "\n", + " [[-40093.6641]],\n", + "\n", + " [[-39963.8359]],\n", + "\n", + " [[-39981.8555]],\n", + "\n", + " [[-40072.3594]],\n", + "\n", + " [[-40034.4453]],\n", + "\n", + " [[-40055.1250]],\n", + "\n", + " [[-40176.1914]],\n", + "\n", + " [[-39935.9453]],\n", + "\n", + " [[-40137.0859]],\n", + "\n", + " [[-40105.7812]],\n", + "\n", + " [[-40083.6016]],\n", + "\n", + " [[-40171.9922]],\n", + "\n", + " [[-40109.0117]],\n", + "\n", + " [[-40006.2852]],\n", + "\n", + " [[-40161.2344]],\n", + "\n", + " [[-40283.4805]],\n", + "\n", + " [[-40061.7305]],\n", + "\n", + " [[-40189.7734]],\n", + "\n", + " [[-40071.0039]],\n", + "\n", + " [[-40090.6523]],\n", + "\n", + " [[-40267.4102]],\n", + "\n", + " [[-40096.0039]],\n", + "\n", + " [[-40019.1602]],\n", + "\n", + " [[-40240.5547]],\n", + "\n", + " [[-39972.4336]],\n", + "\n", + " [[-40073.1055]],\n", + "\n", + " [[-40225.0938]],\n", + "\n", + " [[-40150.8320]],\n", + "\n", + " [[-39927.3320]],\n", + "\n", + " [[-40199.9492]],\n", + "\n", + " [[-40041.5156]],\n", + "\n", + " [[-40039.5938]],\n", + "\n", + " [[-40176.5508]],\n", + "\n", + " [[-40213.6836]],\n", + "\n", + " [[-40063.8164]],\n", + "\n", + " [[-40184.6250]],\n", + "\n", + " [[-40022.2422]],\n", + "\n", + " [[-40152.2148]],\n", + "\n", + " [[-40019.7891]],\n", + "\n", + " [[-40249.2578]],\n", + "\n", + " [[-40327.5078]],\n", + "\n", + " [[-40138.4883]],\n", + "\n", + " [[-40181.9375]],\n", + "\n", + " [[-40214.0820]],\n", + "\n", + " [[-39988.0742]],\n", + "\n", + " [[-39947.0625]],\n", + "\n", + " [[-40024.9023]],\n", + "\n", + " [[-40086.6133]],\n", + "\n", + " [[-39965.0938]],\n", + "\n", + " [[-40258.6758]],\n", + "\n", + " [[-40235.0117]],\n", + "\n", + " [[-40167.5469]],\n", + "\n", + " [[-40174.6992]],\n", + "\n", + " [[-40114.2734]],\n", + "\n", + " [[-40113.9766]],\n", + "\n", + " [[-40036.7891]],\n", + "\n", + " [[-40143.8633]],\n", + "\n", + " [[-40090.1133]],\n", + "\n", + " [[-39962.4297]],\n", + "\n", + " [[-40183.6562]],\n", + "\n", + " [[-40216.7539]],\n", + "\n", + " [[-40197.0469]],\n", + "\n", + " [[-40190.1406]],\n", + "\n", + " [[-40137.4336]],\n", + "\n", + " [[-40044.0039]],\n", + "\n", + " [[-40049.0195]],\n", + "\n", + " [[-40005.6602]],\n", + "\n", + " [[-40299.8164]],\n", + "\n", + " [[-40172.1719]],\n", + "\n", + " [[-40097.0586]],\n", + "\n", + " [[-40013.0898]],\n", + "\n", + " [[-40034.6562]],\n", + "\n", + " [[-40012.4258]]], grad_fn=)\n", + "tensor([[[-38840.2969]],\n", + "\n", + " [[-38980.3984]],\n", + "\n", + " [[-38802.1016]],\n", + "\n", + " [[-38868.4492]],\n", + "\n", + " [[-38786.8477]],\n", + "\n", + " [[-38843.4883]],\n", + "\n", + " [[-39144.8516]],\n", + "\n", + " [[-38830.4102]],\n", + "\n", + " [[-38771.6719]],\n", + "\n", + " [[-38856.8984]],\n", + "\n", + " [[-38702.6211]],\n", + "\n", + " [[-38856.0938]],\n", + "\n", + " [[-38899.8203]],\n", + "\n", + " [[-38806.2930]],\n", + "\n", + " [[-38905.8750]],\n", + "\n", + " [[-38795.2188]],\n", + "\n", + " [[-38861.5195]],\n", + "\n", + " [[-38898.7812]],\n", + "\n", + " [[-38883.1914]],\n", + "\n", + " [[-38895.0352]],\n", + "\n", + " [[-38683.1719]],\n", + "\n", + " [[-38790.6875]],\n", + "\n", + " [[-38765.1289]],\n", + "\n", + " [[-38932.5391]],\n", + "\n", + " [[-38843.0391]],\n", + "\n", + " [[-38954.5820]],\n", + "\n", + " [[-38732.6250]],\n", + "\n", + " [[-38831.8125]],\n", + "\n", + " [[-38818.3789]],\n", + "\n", + " [[-38866.2852]],\n", + "\n", + " [[-38908.9961]],\n", + "\n", + " [[-38707.8945]],\n", + "\n", + " [[-38777.9531]],\n", + "\n", + " [[-38920.8281]],\n", + "\n", + " [[-38909.6367]],\n", + "\n", + " [[-38831.1172]],\n", + "\n", + " [[-38800.2852]],\n", + "\n", + " [[-38803.4102]],\n", + "\n", + " [[-38704.6719]],\n", + "\n", + " [[-38780.7578]],\n", + "\n", + " [[-38821.5312]],\n", + "\n", + " [[-38790.9023]],\n", + "\n", + " [[-38866.2539]],\n", + "\n", + " [[-38854.3555]],\n", + "\n", + " [[-38857.0117]],\n", + "\n", + " [[-38972.3203]],\n", + "\n", + " [[-38842.5898]],\n", + "\n", + " [[-38873.7109]],\n", + "\n", + " [[-38947.5273]],\n", + "\n", + " [[-38923.1367]],\n", + "\n", + " [[-38701.6328]],\n", + "\n", + " [[-38839.3828]],\n", + "\n", + " [[-38858.9727]],\n", + "\n", + " [[-38672.2773]],\n", + "\n", + " [[-38879.8438]],\n", + "\n", + " [[-39001.0938]],\n", + "\n", + " [[-38651.7305]],\n", + "\n", + " [[-38781.9102]],\n", + "\n", + " [[-38897.2266]],\n", + "\n", + " [[-38736.4336]],\n", + "\n", + " [[-38807.3711]],\n", + "\n", + " [[-38857.3750]],\n", + "\n", + " [[-38826.2695]],\n", + "\n", + " [[-38756.1992]],\n", + "\n", + " [[-38827.5430]],\n", + "\n", + " [[-38868.9844]],\n", + "\n", + " [[-38855.8203]],\n", + "\n", + " [[-38887.2266]],\n", + "\n", + " [[-39063.4336]],\n", + "\n", + " [[-38877.5664]],\n", + "\n", + " [[-38849.1641]],\n", + "\n", + " [[-38790.2969]],\n", + "\n", + " [[-38750.8672]],\n", + "\n", + " [[-38907.8633]],\n", + "\n", + " [[-38800.1016]],\n", + "\n", + " [[-38686.2734]],\n", + "\n", + " [[-38905.0859]],\n", + "\n", + " [[-38811.2109]],\n", + "\n", + " [[-38941.1836]],\n", + "\n", + " [[-38656.0352]],\n", + "\n", + " [[-38841.7812]],\n", + "\n", + " [[-38817.9570]],\n", + "\n", + " [[-38848.2656]],\n", + "\n", + " [[-38934.3164]],\n", + "\n", + " [[-38913.4336]],\n", + "\n", + " [[-38809.3516]],\n", + "\n", + " [[-38823.3789]],\n", + "\n", + " [[-38858.9375]],\n", + "\n", + " [[-38924.2773]],\n", + "\n", + " [[-38850.5039]],\n", + "\n", + " [[-38833.7695]],\n", + "\n", + " [[-38740.5820]],\n", + "\n", + " [[-38719.8281]],\n", + "\n", + " [[-38942.9062]],\n", + "\n", + " [[-38948.3945]],\n", + "\n", + " [[-38942.1836]],\n", + "\n", + " [[-38797.9531]],\n", + "\n", + " [[-38864.0430]],\n", + "\n", + " [[-38682.1016]],\n", + "\n", + " [[-38975.2930]],\n", + "\n", + " [[-38836.1367]],\n", + "\n", + " [[-38939.5469]],\n", + "\n", + " [[-38935.6250]],\n", + "\n", + " [[-38811.7734]],\n", + "\n", + " [[-38698.1523]],\n", + "\n", + " [[-38825.0273]],\n", + "\n", + " [[-38931.8203]],\n", + "\n", + " [[-38811.0039]],\n", + "\n", + " [[-38762.7148]],\n", + "\n", + " [[-38914.2617]],\n", + "\n", + " [[-38960.0469]],\n", + "\n", + " [[-38950.3711]],\n", + "\n", + " [[-38857.8906]],\n", + "\n", + " [[-38834.2656]],\n", + "\n", + " [[-38833.1953]],\n", + "\n", + " [[-38821.3320]],\n", + "\n", + " [[-38862.3516]],\n", + "\n", + " [[-38847.9727]],\n", + "\n", + " [[-38935.1133]],\n", + "\n", + " [[-38803.8320]],\n", + "\n", + " [[-38922.3477]],\n", + "\n", + " [[-38782.2617]],\n", + "\n", + " [[-38732.1367]],\n", + "\n", + " [[-38903.2188]],\n", + "\n", + " [[-38826.5000]],\n", + "\n", + " [[-38695.7227]],\n", + "\n", + " [[-38763.3828]],\n", + "\n", + " [[-38758.9805]],\n", + "\n", + " [[-38827.7812]],\n", + "\n", + " [[-38848.6797]],\n", + "\n", + " [[-38711.7227]],\n", + "\n", + " [[-38846.3047]],\n", + "\n", + " [[-38748.6758]],\n", + "\n", + " [[-38779.1953]],\n", + "\n", + " [[-39007.5000]],\n", + "\n", + " [[-38924.1680]],\n", + "\n", + " [[-38754.6641]],\n", + "\n", + " [[-38658.7031]],\n", + "\n", + " [[-38654.4023]],\n", + "\n", + " [[-38945.0664]],\n", + "\n", + " [[-38790.2031]],\n", + "\n", + " [[-38947.1211]],\n", + "\n", + " [[-38942.7852]],\n", + "\n", + " [[-38853.0078]],\n", + "\n", + " [[-38837.9219]],\n", + "\n", + " [[-38782.3164]],\n", + "\n", + " [[-38665.6484]],\n", + "\n", + " [[-38939.1953]],\n", + "\n", + " [[-38772.3164]],\n", + "\n", + " [[-38787.5430]],\n", + "\n", + " [[-38812.7969]],\n", + "\n", + " [[-38886.0312]],\n", + "\n", + " [[-38840.5938]],\n", + "\n", + " [[-38820.6367]],\n", + "\n", + " [[-38791.8438]],\n", + "\n", + " [[-38858.5195]],\n", + "\n", + " [[-38890.7891]],\n", + "\n", + " [[-38796.6875]],\n", + "\n", + " [[-38779.9258]],\n", + "\n", + " [[-38870.7539]],\n", + "\n", + " [[-38831.8555]],\n", + "\n", + " [[-38992.2305]],\n", + "\n", + " [[-38925.3750]],\n", + "\n", + " [[-38824.7109]],\n", + "\n", + " [[-38711.1875]],\n", + "\n", + " [[-38900.8281]],\n", + "\n", + " [[-38812.1406]],\n", + "\n", + " [[-38887.2812]],\n", + "\n", + " [[-38851.1719]],\n", + "\n", + " [[-38675.3477]],\n", + "\n", + " [[-38944.0938]],\n", + "\n", + " [[-38738.2617]],\n", + "\n", + " [[-38789.2070]],\n", + "\n", + " [[-38703.1523]],\n", + "\n", + " [[-38845.0234]],\n", + "\n", + " [[-38942.2812]],\n", + "\n", + " [[-38729.2188]],\n", + "\n", + " [[-38805.2930]],\n", + "\n", + " [[-38746.2109]],\n", + "\n", + " [[-38807.8320]],\n", + "\n", + " [[-38772.6328]],\n", + "\n", + " [[-38862.4219]],\n", + "\n", + " [[-38921.3984]],\n", + "\n", + " [[-38807.8281]],\n", + "\n", + " [[-38819.8750]],\n", + "\n", + " [[-38939.5430]],\n", + "\n", + " [[-38893.3047]],\n", + "\n", + " [[-38815.9766]],\n", + "\n", + " [[-38808.4570]],\n", + "\n", + " [[-38804.0039]],\n", + "\n", + " [[-38854.6094]],\n", + "\n", + " [[-38744.5352]],\n", + "\n", + " [[-38701.0508]],\n", + "\n", + " [[-38772.4531]],\n", + "\n", + " [[-38982.5195]],\n", + "\n", + " [[-38838.8047]],\n", + "\n", + " [[-38882.0156]],\n", + "\n", + " [[-38977.2891]],\n", + "\n", + " [[-38887.6562]],\n", + "\n", + " [[-38697.0664]],\n", + "\n", + " [[-38801.5586]],\n", + "\n", + " [[-38850.8945]],\n", + "\n", + " [[-38920.2266]],\n", + "\n", + " [[-38825.7031]],\n", + "\n", + " [[-38840.2305]],\n", + "\n", + " [[-38935.1836]],\n", + "\n", + " [[-38912.4219]],\n", + "\n", + " [[-38806.4727]],\n", + "\n", + " [[-38884.8438]],\n", + "\n", + " [[-38778.3789]],\n", + "\n", + " [[-38796.7422]],\n", + "\n", + " [[-38725.4570]],\n", + "\n", + " [[-38832.2930]],\n", + "\n", + " [[-38839.5508]],\n", + "\n", + " [[-38817.8867]],\n", + "\n", + " [[-38838.4180]],\n", + "\n", + " [[-38732.0508]],\n", + "\n", + " [[-38720.0000]],\n", + "\n", + " [[-38792.4258]],\n", + "\n", + " [[-38822.6289]],\n", + "\n", + " [[-38773.8633]],\n", + "\n", + " [[-38783.8594]],\n", + "\n", + " [[-38970.2344]],\n", + "\n", + " [[-38702.9609]],\n", + "\n", + " [[-38689.0547]],\n", + "\n", + " [[-38988.6055]],\n", + "\n", + " [[-38755.0703]],\n", + "\n", + " [[-38763.6211]],\n", + "\n", + " [[-38843.3438]],\n", + "\n", + " [[-38809.5195]],\n", + "\n", + " [[-38806.4219]],\n", + "\n", + " [[-38761.2461]],\n", + "\n", + " [[-38833.0078]],\n", + "\n", + " [[-38915.2461]],\n", + "\n", + " [[-38964.0352]],\n", + "\n", + " [[-38703.4219]],\n", + "\n", + " [[-38816.9219]],\n", + "\n", + " [[-38920.3711]],\n", + "\n", + " [[-38927.2422]],\n", + "\n", + " [[-38948.9766]],\n", + "\n", + " [[-38786.4414]],\n", + "\n", + " [[-38665.4961]],\n", + "\n", + " [[-38801.8320]],\n", + "\n", + " [[-38807.8125]],\n", + "\n", + " [[-39037.8086]],\n", + "\n", + " [[-38815.4609]],\n", + "\n", + " [[-38809.3242]],\n", + "\n", + " [[-38935.4062]],\n", + "\n", + " [[-38694.2188]],\n", + "\n", + " [[-38796.6875]],\n", + "\n", + " [[-38797.9336]],\n", + "\n", + " [[-38958.8438]],\n", + "\n", + " [[-38821.7031]],\n", + "\n", + " [[-38870.0938]],\n", + "\n", + " [[-38799.3320]],\n", + "\n", + " [[-38867.2383]]], grad_fn=)\n", + "tensor([[[-37500.0039]],\n", + "\n", + " [[-37592.5898]],\n", + "\n", + " [[-37670.1953]],\n", + "\n", + " [[-37678.3320]],\n", + "\n", + " [[-37684.3828]],\n", + "\n", + " [[-37610.2266]],\n", + "\n", + " [[-37477.7539]],\n", + "\n", + " [[-37705.7891]],\n", + "\n", + " [[-37422.5547]],\n", + "\n", + " [[-37725.0430]],\n", + "\n", + " [[-37661.4102]],\n", + "\n", + " [[-37622.0547]],\n", + "\n", + " [[-37573.2539]],\n", + "\n", + " [[-37622.6602]],\n", + "\n", + " [[-37632.7656]],\n", + "\n", + " [[-37613.1445]],\n", + "\n", + " [[-37531.7969]],\n", + "\n", + " [[-37605.2969]],\n", + "\n", + " [[-37699.8516]],\n", + "\n", + " [[-37572.8047]],\n", + "\n", + " [[-37469.5469]],\n", + "\n", + " [[-37605.0625]],\n", + "\n", + " [[-37668.1094]],\n", + "\n", + " [[-37767.2227]],\n", + "\n", + " [[-37589.4180]],\n", + "\n", + " [[-37774.3516]],\n", + "\n", + " [[-37507.8789]],\n", + "\n", + " [[-37586.1406]],\n", + "\n", + " [[-37478.0352]],\n", + "\n", + " [[-37726.0273]],\n", + "\n", + " [[-37674.4258]],\n", + "\n", + " [[-37600.6289]],\n", + "\n", + " [[-37476.6289]],\n", + "\n", + " [[-37625.0547]],\n", + "\n", + " [[-37605.4609]],\n", + "\n", + " [[-37569.3984]],\n", + "\n", + " [[-37578.8359]],\n", + "\n", + " [[-37548.2734]],\n", + "\n", + " [[-37523.9844]],\n", + "\n", + " [[-37747.9609]],\n", + "\n", + " [[-37543.6250]],\n", + "\n", + " [[-37579.4141]],\n", + "\n", + " [[-37663.3086]],\n", + "\n", + " [[-37659.8398]],\n", + "\n", + " [[-37696.5273]],\n", + "\n", + " [[-37533.7344]],\n", + "\n", + " [[-37661.2070]],\n", + "\n", + " [[-37568.4922]],\n", + "\n", + " [[-37535.8359]],\n", + "\n", + " [[-37685.9609]],\n", + "\n", + " [[-37693.0547]],\n", + "\n", + " [[-37427.4805]],\n", + "\n", + " [[-37540.7383]],\n", + "\n", + " [[-37509.0078]],\n", + "\n", + " [[-37717.4297]],\n", + "\n", + " [[-37577.2070]],\n", + "\n", + " [[-37586.7266]],\n", + "\n", + " [[-37464.0781]],\n", + "\n", + " [[-37556.9336]],\n", + "\n", + " [[-37650.8125]],\n", + "\n", + " [[-37721.5898]],\n", + "\n", + " [[-37422.3555]],\n", + "\n", + " [[-37602.9336]],\n", + "\n", + " [[-37627.7617]],\n", + "\n", + " [[-37535.8008]],\n", + "\n", + " [[-37697.5430]],\n", + "\n", + " [[-37638.9922]],\n", + "\n", + " [[-37700.9492]],\n", + "\n", + " [[-37514.6680]],\n", + "\n", + " [[-37517.3555]],\n", + "\n", + " [[-37660.6719]],\n", + "\n", + " [[-37540.7344]],\n", + "\n", + " [[-37697.3203]],\n", + "\n", + " [[-37555.4375]],\n", + "\n", + " [[-37689.0586]],\n", + "\n", + " [[-37626.9492]],\n", + "\n", + " [[-37537.3945]],\n", + "\n", + " [[-37641.6055]],\n", + "\n", + " [[-37439.0664]],\n", + "\n", + " [[-37814.6641]],\n", + "\n", + " [[-37671.5469]],\n", + "\n", + " [[-37623.8594]],\n", + "\n", + " [[-37614.5664]],\n", + "\n", + " [[-37584.7188]],\n", + "\n", + " [[-37656.3164]],\n", + "\n", + " [[-37640.6875]],\n", + "\n", + " [[-37413.8984]],\n", + "\n", + " [[-37618.0352]],\n", + "\n", + " [[-37704.9805]],\n", + "\n", + " [[-37526.2852]],\n", + "\n", + " [[-37646.9453]],\n", + "\n", + " [[-37685.0469]],\n", + "\n", + " [[-37587.9805]],\n", + "\n", + " [[-37585.4258]],\n", + "\n", + " [[-37579.4023]],\n", + "\n", + " [[-37624.1211]],\n", + "\n", + " [[-37544.3242]],\n", + "\n", + " [[-37515.0859]],\n", + "\n", + " [[-37634.0703]],\n", + "\n", + " [[-37580.0781]],\n", + "\n", + " [[-37688.1797]],\n", + "\n", + " [[-37652.3008]],\n", + "\n", + " [[-37623.9102]],\n", + "\n", + " [[-37693.6992]],\n", + "\n", + " [[-37717.5352]],\n", + "\n", + " [[-37507.6680]],\n", + "\n", + " [[-37642.0664]],\n", + "\n", + " [[-37620.8555]],\n", + "\n", + " [[-37620.5898]],\n", + "\n", + " [[-37400.4609]],\n", + "\n", + " [[-37545.9961]],\n", + "\n", + " [[-37543.8281]],\n", + "\n", + " [[-37552.3242]],\n", + "\n", + " [[-37455.8320]],\n", + "\n", + " [[-37503.0781]],\n", + "\n", + " [[-37636.9102]],\n", + "\n", + " [[-37648.3516]],\n", + "\n", + " [[-37604.9805]],\n", + "\n", + " [[-37507.1484]],\n", + "\n", + " [[-37541.6055]],\n", + "\n", + " [[-37504.0703]],\n", + "\n", + " [[-37410.3672]],\n", + "\n", + " [[-37688.7344]],\n", + "\n", + " [[-37704.6641]],\n", + "\n", + " [[-37573.5469]],\n", + "\n", + " [[-37644.0195]],\n", + "\n", + " [[-37688.4766]],\n", + "\n", + " [[-37714.2422]],\n", + "\n", + " [[-37663.0508]],\n", + "\n", + " [[-37782.6133]],\n", + "\n", + " [[-37588.8984]],\n", + "\n", + " [[-37551.8867]],\n", + "\n", + " [[-37731.0820]],\n", + "\n", + " [[-37554.1445]],\n", + "\n", + " [[-37678.5312]],\n", + "\n", + " [[-37578.0195]],\n", + "\n", + " [[-37724.9805]],\n", + "\n", + " [[-37603.2109]],\n", + "\n", + " [[-37615.8242]],\n", + "\n", + " [[-37756.7383]],\n", + "\n", + " [[-37692.2500]],\n", + "\n", + " [[-37679.8555]],\n", + "\n", + " [[-37560.6836]],\n", + "\n", + " [[-37572.7539]],\n", + "\n", + " [[-37568.9375]],\n", + "\n", + " [[-37472.2461]],\n", + "\n", + " [[-37544.1641]],\n", + "\n", + " [[-37486.9805]],\n", + "\n", + " [[-37589.8906]],\n", + "\n", + " [[-37727.4180]],\n", + "\n", + " [[-37702.1406]],\n", + "\n", + " [[-37541.0234]],\n", + "\n", + " [[-37462.1992]],\n", + "\n", + " [[-37601.7461]],\n", + "\n", + " [[-37458.0742]],\n", + "\n", + " [[-37425.9023]],\n", + "\n", + " [[-37745.2500]],\n", + "\n", + " [[-37444.1758]],\n", + "\n", + " [[-37665.7031]],\n", + "\n", + " [[-37474.1523]],\n", + "\n", + " [[-37709.8672]],\n", + "\n", + " [[-37596.5898]],\n", + "\n", + " [[-37663.0078]],\n", + "\n", + " [[-37693.8203]],\n", + "\n", + " [[-37630.2383]],\n", + "\n", + " [[-37653.1992]],\n", + "\n", + " [[-37463.3359]],\n", + "\n", + " [[-37647.9336]],\n", + "\n", + " [[-37659.2578]],\n", + "\n", + " [[-37551.4609]],\n", + "\n", + " [[-37662.3711]],\n", + "\n", + " [[-37522.0938]],\n", + "\n", + " [[-37651.4609]],\n", + "\n", + " [[-37611.5430]],\n", + "\n", + " [[-37788.4688]],\n", + "\n", + " [[-37631.9883]],\n", + "\n", + " [[-37771.0273]],\n", + "\n", + " [[-37565.9297]],\n", + "\n", + " [[-37530.3945]],\n", + "\n", + " [[-37586.5156]],\n", + "\n", + " [[-37733.9180]],\n", + "\n", + " [[-37661.6484]],\n", + "\n", + " [[-37492.9375]],\n", + "\n", + " [[-37571.3945]],\n", + "\n", + " [[-37560.6680]],\n", + "\n", + " [[-37755.4492]],\n", + "\n", + " [[-37491.6055]],\n", + "\n", + " [[-37625.2812]],\n", + "\n", + " [[-37579.7383]],\n", + "\n", + " [[-37470.5586]],\n", + "\n", + " [[-37518.4727]],\n", + "\n", + " [[-37693.0234]],\n", + "\n", + " [[-37449.4141]],\n", + "\n", + " [[-37588.2500]],\n", + "\n", + " [[-37550.4766]],\n", + "\n", + " [[-37718.7500]],\n", + "\n", + " [[-37685.7109]],\n", + "\n", + " [[-37459.9922]],\n", + "\n", + " [[-37576.4648]],\n", + "\n", + " [[-37726.9297]],\n", + "\n", + " [[-37548.0117]],\n", + "\n", + " [[-37638.8984]],\n", + "\n", + " [[-37712.3438]],\n", + "\n", + " [[-37609.9062]],\n", + "\n", + " [[-37702.0820]],\n", + "\n", + " [[-37623.1641]],\n", + "\n", + " [[-37595.1836]],\n", + "\n", + " [[-37534.6328]],\n", + "\n", + " [[-37619.9492]],\n", + "\n", + " [[-37755.5703]],\n", + "\n", + " [[-37584.6992]],\n", + "\n", + " [[-37483.7539]],\n", + "\n", + " [[-37690.1914]],\n", + "\n", + " [[-37695.3477]],\n", + "\n", + " [[-37590.5078]],\n", + "\n", + " [[-37666.1797]],\n", + "\n", + " [[-37721.3477]],\n", + "\n", + " [[-37541.2852]],\n", + "\n", + " [[-37435.1875]],\n", + "\n", + " [[-37741.4570]],\n", + "\n", + " [[-37486.4062]],\n", + "\n", + " [[-37622.8633]],\n", + "\n", + " [[-37661.8516]],\n", + "\n", + " [[-37449.3789]],\n", + "\n", + " [[-37430.0469]],\n", + "\n", + " [[-37629.1797]],\n", + "\n", + " [[-37510.1055]],\n", + "\n", + " [[-37476.8711]],\n", + "\n", + " [[-37527.0977]],\n", + "\n", + " [[-37566.3164]],\n", + "\n", + " [[-37630.6484]],\n", + "\n", + " [[-37552.9453]],\n", + "\n", + " [[-37617.5703]],\n", + "\n", + " [[-37490.4219]],\n", + "\n", + " [[-37619.5586]],\n", + "\n", + " [[-37654.0000]],\n", + "\n", + " [[-37582.1758]],\n", + "\n", + " [[-37491.7734]],\n", + "\n", + " [[-37666.4648]],\n", + "\n", + " [[-37612.7148]],\n", + "\n", + " [[-37389.9531]],\n", + "\n", + " [[-37621.2617]],\n", + "\n", + " [[-37547.6953]],\n", + "\n", + " [[-37661.7500]],\n", + "\n", + " [[-37638.2227]],\n", + "\n", + " [[-37528.8359]],\n", + "\n", + " [[-37600.3047]],\n", + "\n", + " [[-37809.3633]],\n", + "\n", + " [[-37500.6602]],\n", + "\n", + " [[-37728.5938]],\n", + "\n", + " [[-37687.6992]],\n", + "\n", + " [[-37487.4297]],\n", + "\n", + " [[-37751.8984]],\n", + "\n", + " [[-37593.7383]],\n", + "\n", + " [[-37710.0469]],\n", + "\n", + " [[-37674.8086]]], grad_fn=)\n", + "tensor([[[-36434.8750]],\n", + "\n", + " [[-36371.1602]],\n", + "\n", + " [[-36521.5508]],\n", + "\n", + " [[-36345.6133]],\n", + "\n", + " [[-36318.1445]],\n", + "\n", + " [[-36384.4414]],\n", + "\n", + " [[-36496.2422]],\n", + "\n", + " [[-36340.4180]],\n", + "\n", + " [[-36448.2812]],\n", + "\n", + " [[-36441.8945]],\n", + "\n", + " [[-36352.1562]],\n", + "\n", + " [[-36513.6953]],\n", + "\n", + " [[-36387.0742]],\n", + "\n", + " [[-36522.2383]],\n", + "\n", + " [[-36486.1992]],\n", + "\n", + " [[-36489.9922]],\n", + "\n", + " [[-36243.8789]],\n", + "\n", + " [[-36475.6797]],\n", + "\n", + " [[-36464.8828]],\n", + "\n", + " [[-36352.9805]],\n", + "\n", + " [[-36477.4336]],\n", + "\n", + " [[-36367.8125]],\n", + "\n", + " [[-36418.4961]],\n", + "\n", + " [[-36517.6445]],\n", + "\n", + " [[-36475.2383]],\n", + "\n", + " [[-36414.0430]],\n", + "\n", + " [[-36402.5234]],\n", + "\n", + " [[-36371.7188]],\n", + "\n", + " [[-36565.6484]],\n", + "\n", + " [[-36464.0156]],\n", + "\n", + " [[-36531.0312]],\n", + "\n", + " [[-36357.3086]],\n", + "\n", + " [[-36501.3164]],\n", + "\n", + " [[-36344.3984]],\n", + "\n", + " [[-36402.6562]],\n", + "\n", + " [[-36611.0859]],\n", + "\n", + " [[-36404.4961]],\n", + "\n", + " [[-36407.2695]],\n", + "\n", + " [[-36394.6133]],\n", + "\n", + " [[-36406.3750]],\n", + "\n", + " [[-36316.3086]],\n", + "\n", + " [[-36295.4688]],\n", + "\n", + " [[-36430.1797]],\n", + "\n", + " [[-36453.8008]],\n", + "\n", + " [[-36362.6875]],\n", + "\n", + " [[-36454.3008]],\n", + "\n", + " [[-36256.9727]],\n", + "\n", + " [[-36558.4609]],\n", + "\n", + " [[-36337.3867]],\n", + "\n", + " [[-36352.4844]],\n", + "\n", + " [[-36463.8516]],\n", + "\n", + " [[-36370.6992]],\n", + "\n", + " [[-36398.2305]],\n", + "\n", + " [[-36339.9062]],\n", + "\n", + " [[-36348.5625]],\n", + "\n", + " [[-36318.9766]],\n", + "\n", + " [[-36325.6055]],\n", + "\n", + " [[-36312.9062]],\n", + "\n", + " [[-36254.8008]],\n", + "\n", + " [[-36552.0547]],\n", + "\n", + " [[-36444.0312]],\n", + "\n", + " [[-36494.0859]],\n", + "\n", + " [[-36562.9141]],\n", + "\n", + " [[-36492.9570]],\n", + "\n", + " [[-36428.1289]],\n", + "\n", + " [[-36280.9766]],\n", + "\n", + " [[-36352.6953]],\n", + "\n", + " [[-36363.0508]],\n", + "\n", + " [[-36425.3867]],\n", + "\n", + " [[-36364.7109]],\n", + "\n", + " [[-36451.9609]],\n", + "\n", + " [[-36241.4023]],\n", + "\n", + " [[-36272.9414]],\n", + "\n", + " [[-36470.3555]],\n", + "\n", + " [[-36492.8828]],\n", + "\n", + " [[-36380.4375]],\n", + "\n", + " [[-36318.6680]],\n", + "\n", + " [[-36405.8867]],\n", + "\n", + " [[-36381.6602]],\n", + "\n", + " [[-36302.0469]],\n", + "\n", + " [[-36449.7188]],\n", + "\n", + " [[-36276.4375]],\n", + "\n", + " [[-36531.6914]],\n", + "\n", + " [[-36359.3633]],\n", + "\n", + " [[-36346.0234]],\n", + "\n", + " [[-36446.4648]],\n", + "\n", + " [[-36530.7109]],\n", + "\n", + " [[-36344.3672]],\n", + "\n", + " [[-36243.6289]],\n", + "\n", + " [[-36420.1094]],\n", + "\n", + " [[-36380.0117]],\n", + "\n", + " [[-36403.5742]],\n", + "\n", + " [[-36284.9922]],\n", + "\n", + " [[-36390.4531]],\n", + "\n", + " [[-36349.3789]],\n", + "\n", + " [[-36349.6953]],\n", + "\n", + " [[-36430.8867]],\n", + "\n", + " [[-36435.2578]],\n", + "\n", + " [[-36512.3906]],\n", + "\n", + " [[-36535.4844]],\n", + "\n", + " [[-36435.7578]],\n", + "\n", + " [[-36515.5195]],\n", + "\n", + " [[-36611.9062]],\n", + "\n", + " [[-36319.2695]],\n", + "\n", + " [[-36418.8516]],\n", + "\n", + " [[-36347.2461]],\n", + "\n", + " [[-36553.5938]],\n", + "\n", + " [[-36483.2500]],\n", + "\n", + " [[-36370.9805]],\n", + "\n", + " [[-36511.7422]],\n", + "\n", + " [[-36519.6328]],\n", + "\n", + " [[-36246.7734]],\n", + "\n", + " [[-36525.9570]],\n", + "\n", + " [[-36317.6094]],\n", + "\n", + " [[-36584.0000]],\n", + "\n", + " [[-36365.7070]],\n", + "\n", + " [[-36398.6953]],\n", + "\n", + " [[-36528.7617]],\n", + "\n", + " [[-36310.2461]],\n", + "\n", + " [[-36341.0156]],\n", + "\n", + " [[-36269.2891]],\n", + "\n", + " [[-36451.1406]],\n", + "\n", + " [[-36416.7969]],\n", + "\n", + " [[-36315.1133]],\n", + "\n", + " [[-36475.4531]],\n", + "\n", + " [[-36425.2266]],\n", + "\n", + " [[-36543.0273]],\n", + "\n", + " [[-36356.2500]],\n", + "\n", + " [[-36483.0938]],\n", + "\n", + " [[-36391.2266]],\n", + "\n", + " [[-36356.9258]],\n", + "\n", + " [[-36391.8203]],\n", + "\n", + " [[-36648.0234]],\n", + "\n", + " [[-36532.7422]],\n", + "\n", + " [[-36448.1094]],\n", + "\n", + " [[-36362.0117]],\n", + "\n", + " [[-36340.6875]],\n", + "\n", + " [[-36468.0000]],\n", + "\n", + " [[-36395.8086]],\n", + "\n", + " [[-36328.8281]],\n", + "\n", + " [[-36352.6875]],\n", + "\n", + " [[-36404.3008]],\n", + "\n", + " [[-36383.8555]],\n", + "\n", + " [[-36424.9062]],\n", + "\n", + " [[-36231.7227]],\n", + "\n", + " [[-36418.8789]],\n", + "\n", + " [[-36470.3906]],\n", + "\n", + " [[-36322.8047]],\n", + "\n", + " [[-36322.2773]],\n", + "\n", + " [[-36420.2148]],\n", + "\n", + " [[-36452.8320]],\n", + "\n", + " [[-36317.6172]],\n", + "\n", + " [[-36397.9727]],\n", + "\n", + " [[-36273.7266]],\n", + "\n", + " [[-36540.0547]],\n", + "\n", + " [[-36474.8320]],\n", + "\n", + " [[-36293.0938]],\n", + "\n", + " [[-36398.0234]],\n", + "\n", + " [[-36505.6367]],\n", + "\n", + " [[-36361.4102]],\n", + "\n", + " [[-36503.0469]],\n", + "\n", + " [[-36379.8750]],\n", + "\n", + " [[-36385.0156]],\n", + "\n", + " [[-36354.8047]],\n", + "\n", + " [[-36425.4570]],\n", + "\n", + " [[-36568.7188]],\n", + "\n", + " [[-36556.2852]],\n", + "\n", + " [[-36593.3320]],\n", + "\n", + " [[-36392.3242]],\n", + "\n", + " [[-36378.0078]],\n", + "\n", + " [[-36372.9492]],\n", + "\n", + " [[-36457.9492]],\n", + "\n", + " [[-36278.3711]],\n", + "\n", + " [[-36440.0977]],\n", + "\n", + " [[-36600.0078]],\n", + "\n", + " [[-36449.6758]],\n", + "\n", + " [[-36502.4492]],\n", + "\n", + " [[-36450.5039]],\n", + "\n", + " [[-36363.4688]],\n", + "\n", + " [[-36247.7227]],\n", + "\n", + " [[-36550.6250]],\n", + "\n", + " [[-36465.6523]],\n", + "\n", + " [[-36391.3984]],\n", + "\n", + " [[-36509.9219]],\n", + "\n", + " [[-36369.2656]],\n", + "\n", + " [[-36326.0117]],\n", + "\n", + " [[-36479.6055]],\n", + "\n", + " [[-36452.9219]],\n", + "\n", + " [[-36483.1992]],\n", + "\n", + " [[-36348.7852]],\n", + "\n", + " [[-36543.1250]],\n", + "\n", + " [[-36361.3438]],\n", + "\n", + " [[-36442.0938]],\n", + "\n", + " [[-36456.6641]],\n", + "\n", + " [[-36453.2070]],\n", + "\n", + " [[-36235.1680]],\n", + "\n", + " [[-36427.6797]],\n", + "\n", + " [[-36425.0742]],\n", + "\n", + " [[-36536.4141]],\n", + "\n", + " [[-36520.5781]],\n", + "\n", + " [[-36360.0234]],\n", + "\n", + " [[-36290.7539]],\n", + "\n", + " [[-36345.2109]],\n", + "\n", + " [[-36390.6758]],\n", + "\n", + " [[-36388.3516]],\n", + "\n", + " [[-36401.9648]],\n", + "\n", + " [[-36391.8477]],\n", + "\n", + " [[-36343.6289]],\n", + "\n", + " [[-36389.7148]],\n", + "\n", + " [[-36355.4531]],\n", + "\n", + " [[-36453.4492]],\n", + "\n", + " [[-36446.4844]],\n", + "\n", + " [[-36516.0469]],\n", + "\n", + " [[-36423.5391]],\n", + "\n", + " [[-36528.1875]],\n", + "\n", + " [[-36458.1367]],\n", + "\n", + " [[-36409.9531]],\n", + "\n", + " [[-36320.5664]],\n", + "\n", + " [[-36551.6562]],\n", + "\n", + " [[-36430.5742]],\n", + "\n", + " [[-36404.3906]],\n", + "\n", + " [[-36391.3086]],\n", + "\n", + " [[-36335.8164]],\n", + "\n", + " [[-36357.9805]],\n", + "\n", + " [[-36387.1680]],\n", + "\n", + " [[-36326.3906]],\n", + "\n", + " [[-36373.3984]],\n", + "\n", + " [[-36598.9688]],\n", + "\n", + " [[-36256.4727]],\n", + "\n", + " [[-36464.0781]],\n", + "\n", + " [[-36320.6484]],\n", + "\n", + " [[-36418.8125]],\n", + "\n", + " [[-36344.5469]],\n", + "\n", + " [[-36466.1680]],\n", + "\n", + " [[-36405.9258]],\n", + "\n", + " [[-36509.8398]],\n", + "\n", + " [[-36546.3555]],\n", + "\n", + " [[-36336.3945]],\n", + "\n", + " [[-36478.8477]],\n", + "\n", + " [[-36303.6602]],\n", + "\n", + " [[-36344.2969]],\n", + "\n", + " [[-36484.7969]],\n", + "\n", + " [[-36387.6523]],\n", + "\n", + " [[-36399.8555]],\n", + "\n", + " [[-36379.0234]],\n", + "\n", + " [[-36497.1445]],\n", + "\n", + " [[-36348.5859]],\n", + "\n", + " [[-36518.3945]],\n", + "\n", + " [[-36342.1836]],\n", + "\n", + " [[-36394.4805]],\n", + "\n", + " [[-36308.5078]],\n", + "\n", + " [[-36420.3008]],\n", + "\n", + " [[-36312.6445]],\n", + "\n", + " [[-36345.8242]],\n", + "\n", + " [[-36429.8008]],\n", + "\n", + " [[-36574.4766]]], grad_fn=)\n", + "tensor([[[-35252.2422]],\n", + "\n", + " [[-35195.9336]],\n", + "\n", + " [[-35246.6328]],\n", + "\n", + " [[-35202.2852]],\n", + "\n", + " [[-35231.2930]],\n", + "\n", + " [[-35142.2969]],\n", + "\n", + " [[-35188.7266]],\n", + "\n", + " [[-35345.8945]],\n", + "\n", + " [[-35185.8398]],\n", + "\n", + " [[-35268.7852]],\n", + "\n", + " [[-35191.1523]],\n", + "\n", + " [[-35284.8867]],\n", + "\n", + " [[-35243.7969]],\n", + "\n", + " [[-35284.5820]],\n", + "\n", + " [[-35164.5078]],\n", + "\n", + " [[-35215.3867]],\n", + "\n", + " [[-35087.5312]],\n", + "\n", + " [[-35187.2266]],\n", + "\n", + " [[-35159.5430]],\n", + "\n", + " [[-35170.9141]],\n", + "\n", + " [[-35224.9531]],\n", + "\n", + " [[-35091.2031]],\n", + "\n", + " [[-35226.5898]],\n", + "\n", + " [[-35242.6328]],\n", + "\n", + " [[-35273.9375]],\n", + "\n", + " [[-35130.0625]],\n", + "\n", + " [[-35400.4570]],\n", + "\n", + " [[-35325.2852]],\n", + "\n", + " [[-35204.3867]],\n", + "\n", + " [[-35131.2383]],\n", + "\n", + " [[-35284.7539]],\n", + "\n", + " [[-35200.7344]],\n", + "\n", + " [[-35097.8359]],\n", + "\n", + " [[-35234.5547]],\n", + "\n", + " [[-35205.7188]],\n", + "\n", + " [[-35359.5352]],\n", + "\n", + " [[-35342.3672]],\n", + "\n", + " [[-35284.5820]],\n", + "\n", + " [[-35182.8438]],\n", + "\n", + " [[-35075.5742]],\n", + "\n", + " [[-35116.7734]],\n", + "\n", + " [[-35234.4375]],\n", + "\n", + " [[-35066.2734]],\n", + "\n", + " [[-35235.1602]],\n", + "\n", + " [[-35344.7422]],\n", + "\n", + " [[-35231.9492]],\n", + "\n", + " [[-35181.8828]],\n", + "\n", + " [[-35352.3633]],\n", + "\n", + " [[-35303.3359]],\n", + "\n", + " [[-35109.2266]],\n", + "\n", + " [[-35276.9219]],\n", + "\n", + " [[-35134.9219]],\n", + "\n", + " [[-35242.8594]],\n", + "\n", + " [[-35286.3008]],\n", + "\n", + " [[-35162.1719]],\n", + "\n", + " [[-35424.0898]],\n", + "\n", + " [[-35209.3984]],\n", + "\n", + " [[-35265.9453]],\n", + "\n", + " [[-35390.4883]],\n", + "\n", + " [[-35192.5430]],\n", + "\n", + " [[-35219.2266]],\n", + "\n", + " [[-35135.6758]],\n", + "\n", + " [[-35289.3789]],\n", + "\n", + " [[-35193.6406]],\n", + "\n", + " [[-35266.9961]],\n", + "\n", + " [[-35182.3633]],\n", + "\n", + " [[-35287.1328]],\n", + "\n", + " [[-35184.0352]],\n", + "\n", + " [[-35280.3711]],\n", + "\n", + " [[-35232.4258]],\n", + "\n", + " [[-35193.5156]],\n", + "\n", + " [[-35130.7695]],\n", + "\n", + " [[-35265.0938]],\n", + "\n", + " [[-35309.1953]],\n", + "\n", + " [[-35166.1484]],\n", + "\n", + " [[-35200.9883]],\n", + "\n", + " [[-35321.5781]],\n", + "\n", + " [[-35098.9922]],\n", + "\n", + " [[-35188.2812]],\n", + "\n", + " [[-35208.6484]],\n", + "\n", + " [[-35200.9062]],\n", + "\n", + " [[-35189.1641]],\n", + "\n", + " [[-35070.7500]],\n", + "\n", + " [[-35266.2344]],\n", + "\n", + " [[-35213.1562]],\n", + "\n", + " [[-35259.3906]],\n", + "\n", + " [[-35162.8750]],\n", + "\n", + " [[-35249.8906]],\n", + "\n", + " [[-35224.2539]],\n", + "\n", + " [[-35245.9805]],\n", + "\n", + " [[-35212.7266]],\n", + "\n", + " [[-35341.7344]],\n", + "\n", + " [[-35365.5078]],\n", + "\n", + " [[-35259.1875]],\n", + "\n", + " [[-35201.5234]],\n", + "\n", + " [[-35157.5117]],\n", + "\n", + " [[-35270.2578]],\n", + "\n", + " [[-35239.6562]],\n", + "\n", + " [[-35238.3047]],\n", + "\n", + " [[-35318.3672]],\n", + "\n", + " [[-35150.5039]],\n", + "\n", + " [[-35225.6211]],\n", + "\n", + " [[-35235.4258]],\n", + "\n", + " [[-35270.0156]],\n", + "\n", + " [[-35218.0430]],\n", + "\n", + " [[-35243.7461]],\n", + "\n", + " [[-35209.4766]],\n", + "\n", + " [[-35151.5078]],\n", + "\n", + " [[-35248.3281]],\n", + "\n", + " [[-35298.3125]],\n", + "\n", + " [[-35292.7031]],\n", + "\n", + " [[-35272.4102]],\n", + "\n", + " [[-35250.4766]],\n", + "\n", + " [[-35368.0820]],\n", + "\n", + " [[-35263.5391]],\n", + "\n", + " [[-35277.6992]],\n", + "\n", + " [[-35248.8203]],\n", + "\n", + " [[-35272.7852]],\n", + "\n", + " [[-35227.1250]],\n", + "\n", + " [[-35400.0586]],\n", + "\n", + " [[-35403.3281]],\n", + "\n", + " [[-35161.8047]],\n", + "\n", + " [[-35243.4492]],\n", + "\n", + " [[-35260.8359]],\n", + "\n", + " [[-35260.6250]],\n", + "\n", + " [[-35272.6797]],\n", + "\n", + " [[-35320.2188]],\n", + "\n", + " [[-35193.0508]],\n", + "\n", + " [[-35187.4922]],\n", + "\n", + " [[-35280.6289]],\n", + "\n", + " [[-35252.0508]],\n", + "\n", + " [[-35154.2773]],\n", + "\n", + " [[-35265.2891]],\n", + "\n", + " [[-35130.8555]],\n", + "\n", + " [[-35127.5742]],\n", + "\n", + " [[-35192.8203]],\n", + "\n", + " [[-35238.8203]],\n", + "\n", + " [[-35359.5820]],\n", + "\n", + " [[-35136.0820]],\n", + "\n", + " [[-35338.2500]],\n", + "\n", + " [[-35149.6484]],\n", + "\n", + " [[-35361.9102]],\n", + "\n", + " [[-35293.6523]],\n", + "\n", + " [[-35275.0273]],\n", + "\n", + " [[-35298.4453]],\n", + "\n", + " [[-35136.3633]],\n", + "\n", + " [[-35373.5117]],\n", + "\n", + " [[-35199.3398]],\n", + "\n", + " [[-35188.8203]],\n", + "\n", + " [[-35262.6172]],\n", + "\n", + " [[-35268.4961]],\n", + "\n", + " [[-35298.8867]],\n", + "\n", + " [[-35288.5742]],\n", + "\n", + " [[-35239.6953]],\n", + "\n", + " [[-35254.4180]],\n", + "\n", + " [[-35171.4258]],\n", + "\n", + " [[-35284.1289]],\n", + "\n", + " [[-35268.6055]],\n", + "\n", + " [[-35265.7461]],\n", + "\n", + " [[-35187.2539]],\n", + "\n", + " [[-35055.2109]],\n", + "\n", + " [[-35263.0898]],\n", + "\n", + " [[-35166.0586]],\n", + "\n", + " [[-35216.6641]],\n", + "\n", + " [[-35171.1562]],\n", + "\n", + " [[-35223.7461]],\n", + "\n", + " [[-35096.9141]],\n", + "\n", + " [[-35195.2852]],\n", + "\n", + " [[-35178.0508]],\n", + "\n", + " [[-35183.6055]],\n", + "\n", + " [[-35295.9766]],\n", + "\n", + " [[-35228.3008]],\n", + "\n", + " [[-35205.0625]],\n", + "\n", + " [[-35063.3203]],\n", + "\n", + " [[-35361.5938]],\n", + "\n", + " [[-35266.8789]],\n", + "\n", + " [[-35268.2656]],\n", + "\n", + " [[-35223.3516]],\n", + "\n", + " [[-35242.7891]],\n", + "\n", + " [[-35125.3828]],\n", + "\n", + " [[-35174.7422]],\n", + "\n", + " [[-35216.6250]],\n", + "\n", + " [[-35115.6797]],\n", + "\n", + " [[-35246.3203]],\n", + "\n", + " [[-35095.9844]],\n", + "\n", + " [[-35083.3750]],\n", + "\n", + " [[-35252.5273]],\n", + "\n", + " [[-35215.9102]],\n", + "\n", + " [[-35294.4062]],\n", + "\n", + " [[-35281.0664]],\n", + "\n", + " [[-35202.5625]],\n", + "\n", + " [[-35185.0625]],\n", + "\n", + " [[-35240.1953]],\n", + "\n", + " [[-35274.3633]],\n", + "\n", + " [[-35109.2227]],\n", + "\n", + " [[-35308.1094]],\n", + "\n", + " [[-35092.9766]],\n", + "\n", + " [[-35334.8789]],\n", + "\n", + " [[-35237.2422]],\n", + "\n", + " [[-35140.5039]],\n", + "\n", + " [[-35242.1094]],\n", + "\n", + " [[-35150.6992]],\n", + "\n", + " [[-35336.8086]],\n", + "\n", + " [[-35134.5273]],\n", + "\n", + " [[-35232.7539]],\n", + "\n", + " [[-35202.3516]],\n", + "\n", + " [[-35374.0820]],\n", + "\n", + " [[-35291.4414]],\n", + "\n", + " [[-35260.6953]],\n", + "\n", + " [[-35325.0430]],\n", + "\n", + " [[-35171.7422]],\n", + "\n", + " [[-35136.0547]],\n", + "\n", + " [[-35289.8242]],\n", + "\n", + " [[-35044.9219]],\n", + "\n", + " [[-35232.5156]],\n", + "\n", + " [[-35057.7109]],\n", + "\n", + " [[-35271.9219]],\n", + "\n", + " [[-35271.0508]],\n", + "\n", + " [[-35197.4102]],\n", + "\n", + " [[-35255.3789]],\n", + "\n", + " [[-35281.1641]],\n", + "\n", + " [[-35229.9453]],\n", + "\n", + " [[-35086.4766]],\n", + "\n", + " [[-35099.5859]],\n", + "\n", + " [[-35067.7578]],\n", + "\n", + " [[-35370.8125]],\n", + "\n", + " [[-35136.3398]],\n", + "\n", + " [[-35213.6680]],\n", + "\n", + " [[-35312.7070]],\n", + "\n", + " [[-35290.5938]],\n", + "\n", + " [[-35447.1562]],\n", + "\n", + " [[-35131.7070]],\n", + "\n", + " [[-35276.3594]],\n", + "\n", + " [[-35232.2734]],\n", + "\n", + " [[-35079.2500]],\n", + "\n", + " [[-35251.3086]],\n", + "\n", + " [[-35093.6797]],\n", + "\n", + " [[-35139.8242]],\n", + "\n", + " [[-35061.6562]],\n", + "\n", + " [[-35260.0781]],\n", + "\n", + " [[-35359.6836]],\n", + "\n", + " [[-35281.3789]],\n", + "\n", + " [[-35222.7578]],\n", + "\n", + " [[-35319.8906]],\n", + "\n", + " [[-35194.2227]],\n", + "\n", + " [[-35285.2969]],\n", + "\n", + " [[-35273.0430]],\n", + "\n", + " [[-35175.9297]],\n", + "\n", + " [[-35322.9102]],\n", + "\n", + " [[-35243.3828]],\n", + "\n", + " [[-35226.8750]],\n", + "\n", + " [[-35264.2070]],\n", + "\n", + " [[-35311.0352]],\n", + "\n", + " [[-35066.8828]],\n", + "\n", + " [[-35298.3633]],\n", + "\n", + " [[-35179.2930]]], grad_fn=)\n", + "tensor([[[-34091.0977]],\n", + "\n", + " [[-33999.2578]],\n", + "\n", + " [[-34106.1562]],\n", + "\n", + " [[-33913.9648]],\n", + "\n", + " [[-34083.7891]],\n", + "\n", + " [[-34147.4258]],\n", + "\n", + " [[-34169.0820]],\n", + "\n", + " [[-33905.7812]],\n", + "\n", + " [[-34172.6680]],\n", + "\n", + " [[-34296.4727]],\n", + "\n", + " [[-34136.9062]],\n", + "\n", + " [[-34081.0000]],\n", + "\n", + " [[-34164.8477]],\n", + "\n", + " [[-34049.1680]],\n", + "\n", + " [[-34112.2070]],\n", + "\n", + " [[-34096.7227]],\n", + "\n", + " [[-34087.5430]],\n", + "\n", + " [[-34209.2578]],\n", + "\n", + " [[-34256.0820]],\n", + "\n", + " [[-34092.5469]],\n", + "\n", + " [[-34126.8203]],\n", + "\n", + " [[-34039.4844]],\n", + "\n", + " [[-34118.9609]],\n", + "\n", + " [[-34202.7852]],\n", + "\n", + " [[-34154.7188]],\n", + "\n", + " [[-34126.2617]],\n", + "\n", + " [[-34098.4922]],\n", + "\n", + " [[-33938.9688]],\n", + "\n", + " [[-33979.0273]],\n", + "\n", + " [[-34196.7852]],\n", + "\n", + " [[-34157.6875]],\n", + "\n", + " [[-33999.3086]],\n", + "\n", + " [[-33946.1562]],\n", + "\n", + " [[-34152.2344]],\n", + "\n", + " [[-33993.8906]],\n", + "\n", + " [[-34049.5781]],\n", + "\n", + " [[-33998.9648]],\n", + "\n", + " [[-33999.8828]],\n", + "\n", + " [[-34076.5664]],\n", + "\n", + " [[-34121.8828]],\n", + "\n", + " [[-33978.6836]],\n", + "\n", + " [[-34100.6797]],\n", + "\n", + " [[-34116.8555]],\n", + "\n", + " [[-34139.3594]],\n", + "\n", + " [[-34171.4883]],\n", + "\n", + " [[-34028.0898]],\n", + "\n", + " [[-34158.2812]],\n", + "\n", + " [[-34169.3008]],\n", + "\n", + " [[-34239.2070]],\n", + "\n", + " [[-34057.5820]],\n", + "\n", + " [[-34059.5430]],\n", + "\n", + " [[-34267.6602]],\n", + "\n", + " [[-34222.4844]],\n", + "\n", + " [[-34088.0586]],\n", + "\n", + " [[-34011.0039]],\n", + "\n", + " [[-34073.7617]],\n", + "\n", + " [[-34218.5078]],\n", + "\n", + " [[-34193.3867]],\n", + "\n", + " [[-34149.8672]],\n", + "\n", + " [[-33984.6016]],\n", + "\n", + " [[-33996.7227]],\n", + "\n", + " [[-34020.1797]],\n", + "\n", + " [[-33944.0742]],\n", + "\n", + " [[-34052.6055]],\n", + "\n", + " [[-33920.2500]],\n", + "\n", + " [[-34274.8867]],\n", + "\n", + " [[-34013.2734]],\n", + "\n", + " [[-34076.8281]],\n", + "\n", + " [[-34177.8945]],\n", + "\n", + " [[-34159.5156]],\n", + "\n", + " [[-34106.7500]],\n", + "\n", + " [[-34169.8242]],\n", + "\n", + " [[-33938.6719]],\n", + "\n", + " [[-34175.6758]],\n", + "\n", + " [[-34272.5234]],\n", + "\n", + " [[-34127.1367]],\n", + "\n", + " [[-34139.1172]],\n", + "\n", + " [[-34155.7422]],\n", + "\n", + " [[-34053.9297]],\n", + "\n", + " [[-34066.6367]],\n", + "\n", + " [[-33913.1133]],\n", + "\n", + " [[-33967.5352]],\n", + "\n", + " [[-34078.2148]],\n", + "\n", + " [[-34086.2344]],\n", + "\n", + " [[-34043.8281]],\n", + "\n", + " [[-34169.9766]],\n", + "\n", + " [[-34077.8203]],\n", + "\n", + " [[-34161.7422]],\n", + "\n", + " [[-34083.7773]],\n", + "\n", + " [[-34063.0977]],\n", + "\n", + " [[-34188.4102]],\n", + "\n", + " [[-33919.6680]],\n", + "\n", + " [[-34069.5000]],\n", + "\n", + " [[-34247.8984]],\n", + "\n", + " [[-34073.6602]],\n", + "\n", + " [[-34011.6719]],\n", + "\n", + " [[-34172.8477]],\n", + "\n", + " [[-34082.8516]],\n", + "\n", + " [[-34185.6875]],\n", + "\n", + " [[-34225.8086]],\n", + "\n", + " [[-34200.0352]],\n", + "\n", + " [[-34224.6484]],\n", + "\n", + " [[-34184.1719]],\n", + "\n", + " [[-34113.3984]],\n", + "\n", + " [[-33921.1523]],\n", + "\n", + " [[-34118.6914]],\n", + "\n", + " [[-34040.5000]],\n", + "\n", + " [[-34027.6992]],\n", + "\n", + " [[-34127.2539]],\n", + "\n", + " [[-33971.6719]],\n", + "\n", + " [[-34208.3086]],\n", + "\n", + " [[-34052.3008]],\n", + "\n", + " [[-34083.0703]],\n", + "\n", + " [[-34132.1680]],\n", + "\n", + " [[-34002.8281]],\n", + "\n", + " [[-34200.5391]],\n", + "\n", + " [[-34036.2109]],\n", + "\n", + " [[-34153.7188]],\n", + "\n", + " [[-34106.4648]],\n", + "\n", + " [[-34072.6992]],\n", + "\n", + " [[-34135.4023]],\n", + "\n", + " [[-33966.8945]],\n", + "\n", + " [[-34164.9375]],\n", + "\n", + " [[-34193.1680]],\n", + "\n", + " [[-33990.7305]],\n", + "\n", + " [[-34098.6367]],\n", + "\n", + " [[-34179.2891]],\n", + "\n", + " [[-34142.7969]],\n", + "\n", + " [[-34092.1367]],\n", + "\n", + " [[-33949.8359]],\n", + "\n", + " [[-34240.6836]],\n", + "\n", + " [[-34235.6523]],\n", + "\n", + " [[-34231.6641]],\n", + "\n", + " [[-34090.5703]],\n", + "\n", + " [[-34106.9492]],\n", + "\n", + " [[-34153.1445]],\n", + "\n", + " [[-34210.6992]],\n", + "\n", + " [[-33916.4180]],\n", + "\n", + " [[-34295.9609]],\n", + "\n", + " [[-34242.5898]],\n", + "\n", + " [[-34064.5312]],\n", + "\n", + " [[-34132.0039]],\n", + "\n", + " [[-34001.3672]],\n", + "\n", + " [[-34254.6133]],\n", + "\n", + " [[-34063.9961]],\n", + "\n", + " [[-33925.1406]],\n", + "\n", + " [[-33958.1836]],\n", + "\n", + " [[-34258.8125]],\n", + "\n", + " [[-33945.5312]],\n", + "\n", + " [[-34067.8750]],\n", + "\n", + " [[-34049.6289]],\n", + "\n", + " [[-34123.2578]],\n", + "\n", + " [[-34093.0938]],\n", + "\n", + " [[-34158.4609]],\n", + "\n", + " [[-34127.3203]],\n", + "\n", + " [[-34264.4492]],\n", + "\n", + " [[-34130.4219]],\n", + "\n", + " [[-34001.8398]],\n", + "\n", + " [[-34173.1133]],\n", + "\n", + " [[-34182.4961]],\n", + "\n", + " [[-34083.2578]],\n", + "\n", + " [[-34118.2812]],\n", + "\n", + " [[-33939.2305]],\n", + "\n", + " [[-34146.3711]],\n", + "\n", + " [[-34128.7500]],\n", + "\n", + " [[-34285.4336]],\n", + "\n", + " [[-33990.5703]],\n", + "\n", + " [[-34163.2656]],\n", + "\n", + " [[-34151.8438]],\n", + "\n", + " [[-34074.0195]],\n", + "\n", + " [[-34033.5977]],\n", + "\n", + " [[-34022.4141]],\n", + "\n", + " [[-34344.3086]],\n", + "\n", + " [[-34125.4336]],\n", + "\n", + " [[-34182.3945]],\n", + "\n", + " [[-34137.4141]],\n", + "\n", + " [[-34203.2578]],\n", + "\n", + " [[-34148.1094]],\n", + "\n", + " [[-34006.3203]],\n", + "\n", + " [[-34062.5547]],\n", + "\n", + " [[-33989.2812]],\n", + "\n", + " [[-34032.9609]],\n", + "\n", + " [[-34009.9688]],\n", + "\n", + " [[-34195.8086]],\n", + "\n", + " [[-34032.7109]],\n", + "\n", + " [[-34051.6016]],\n", + "\n", + " [[-34153.7305]],\n", + "\n", + " [[-34163.5078]],\n", + "\n", + " [[-34146.0273]],\n", + "\n", + " [[-34026.3242]],\n", + "\n", + " [[-34097.0000]],\n", + "\n", + " [[-34192.3828]],\n", + "\n", + " [[-34115.8320]],\n", + "\n", + " [[-34232.3750]],\n", + "\n", + " [[-34087.5508]],\n", + "\n", + " [[-34064.6523]],\n", + "\n", + " [[-33983.1719]],\n", + "\n", + " [[-34191.4023]],\n", + "\n", + " [[-34159.5586]],\n", + "\n", + " [[-34116.9023]],\n", + "\n", + " [[-34071.0898]],\n", + "\n", + " [[-34006.4727]],\n", + "\n", + " [[-34026.3945]],\n", + "\n", + " [[-34107.3711]],\n", + "\n", + " [[-34057.7617]],\n", + "\n", + " [[-34215.4219]],\n", + "\n", + " [[-34094.5859]],\n", + "\n", + " [[-33985.7695]],\n", + "\n", + " [[-34096.8398]],\n", + "\n", + " [[-34147.5078]],\n", + "\n", + " [[-34142.5586]],\n", + "\n", + " [[-34138.1562]],\n", + "\n", + " [[-34146.0625]],\n", + "\n", + " [[-34166.0195]],\n", + "\n", + " [[-34095.4727]],\n", + "\n", + " [[-34090.3555]],\n", + "\n", + " [[-34065.7109]],\n", + "\n", + " [[-34038.4453]],\n", + "\n", + " [[-33954.7188]],\n", + "\n", + " [[-33913.2695]],\n", + "\n", + " [[-34184.2695]],\n", + "\n", + " [[-34106.4453]],\n", + "\n", + " [[-34064.3164]],\n", + "\n", + " [[-33947.9180]],\n", + "\n", + " [[-34358.5625]],\n", + "\n", + " [[-34393.1719]],\n", + "\n", + " [[-34061.3359]],\n", + "\n", + " [[-34062.3438]],\n", + "\n", + " [[-34195.1797]],\n", + "\n", + " [[-34062.2656]],\n", + "\n", + " [[-34144.6602]],\n", + "\n", + " [[-34089.5781]],\n", + "\n", + " [[-34133.8125]],\n", + "\n", + " [[-33898.5078]],\n", + "\n", + " [[-33984.8438]],\n", + "\n", + " [[-34250.5312]],\n", + "\n", + " [[-33923.3477]],\n", + "\n", + " [[-34152.7617]],\n", + "\n", + " [[-34085.1992]],\n", + "\n", + " [[-34198.6289]],\n", + "\n", + " [[-34233.3203]],\n", + "\n", + " [[-34039.5312]],\n", + "\n", + " [[-34156.1445]],\n", + "\n", + " [[-34129.9180]],\n", + "\n", + " [[-34093.1602]],\n", + "\n", + " [[-34005.7500]],\n", + "\n", + " [[-34025.0117]],\n", + "\n", + " [[-34170.7695]],\n", + "\n", + " [[-34224.4766]],\n", + "\n", + " [[-34058.2695]],\n", + "\n", + " [[-34102.3867]],\n", + "\n", + " [[-34063.1094]],\n", + "\n", + " [[-34093.5664]],\n", + "\n", + " [[-34090.9219]],\n", + "\n", + " [[-34203.3906]],\n", + "\n", + " [[-34054.3711]]], grad_fn=)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n", + "KeyboardInterrupt\n", + "\n" ] } ], From 4c9389140a220f6d317e26ddcfa480f729f87bae Mon Sep 17 00:00:00 2001 From: loreloc Date: Fri, 11 Oct 2024 15:19:46 +0100 Subject: [PATCH 4/9] added sos circuits notebook --- notebooks/sum-of-squares-circuits.ipynb | 713 ++ notebooks/sum-of-squares.ipynb | 13606 ---------------------- 2 files changed, 713 insertions(+), 13606 deletions(-) create mode 100644 notebooks/sum-of-squares-circuits.ipynb delete mode 100644 notebooks/sum-of-squares.ipynb diff --git a/notebooks/sum-of-squares-circuits.ipynb b/notebooks/sum-of-squares-circuits.ipynb new file mode 100644 index 00000000..081b9c55 --- /dev/null +++ b/notebooks/sum-of-squares-circuits.ipynb @@ -0,0 +1,713 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "7369e801-4318-4dee-b77c-5564cc99a6c4", + "metadata": {}, + "source": [ + "# Building and Learning Sum of Squares Circuits" + ] + }, + { + "cell_type": "markdown", + "id": "5d98126c-27da-4e2b-aff8-b2e966a495ed", + "metadata": {}, + "source": [ + "## Goal\n", + "\n", + "By the end of this notebook, you will know how to compose symbolic **circuit operators** as to build and learn a Probabilistic Circuit (PC). In particular, you will know how to build and learn Sum-of-Squares (SOS) circuits for distribution estimation tasks, as introduced in the paper [Sum of Squares Circuits](https://arxiv.org/abs/2408.11778). We start by introducing complex squared circuits." + ] + }, + { + "cell_type": "markdown", + "id": "a93c0e47-0c31-47ed-8893-b0a29d797b30", + "metadata": {}, + "source": [ + "## Complex Squared Circuits" + ] + }, + { + "cell_type": "markdown", + "id": "08609db7-439a-48fa-9969-a4b2813c35bc", + "metadata": {}, + "source": [ + "PCs are typically learned by assuming their parameters to be non-negative, i.e., they are _monotonic_. For example, the PC learned in the notebook [learning-a-circuit.ipynb](learning-a-circuit.ipynb) is monotonic, as it consists of input layers encoding Categorical likelihoods and the parameters are obtained by applying a softmax activation. To build a more expressive distribution estimator, one can instead use a circuit with complex parameters, i.e., a complex circuit.\n", + "\n", + "Similarly to the [learning-a-circuit.ipynb](learning-a-circuit.ipynb) notebook, we aim at building a circuit that estimates the probability distribution of MNIST images. For this reason, we will construct a complex circuit using the ```cirkit_templates.image_data``` utility, as shown in the following function." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "667f60ee-5f58-4146-93cf-7675d222bd82", + "metadata": {}, + "outputs": [], + "source": [ + "from cirkit.templates import circuit_templates\n", + "from cirkit.symbolic.circuit import Circuit\n", + "\n", + "def build_symbolic_complex_circuit(region_graph: str) -> Circuit:\n", + " return circuit_templates.image_data(\n", + " (1, 28, 28), # The shape of MNIST image, i.e., (num_channels, image_height, image_width)\n", + " region_graph=region_graph,\n", + " # ----------- Input layers hyperparameters ----------- #\n", + " input_layer='embedding', # Use Embedding maps for the pixel values (0-255) as input layers\n", + " num_input_units=32, # Each input layer consists of 32 input units that output Embedding entries\n", + " input_params={ # Set how to parameterize the input layers parameters\n", + " # In this case we parameterize the 'weight' parameter of Embedding layers,\n", + " # by choosing them to be complex-valued whose real and imaginary part are sampled uniformly in [0, 1)\n", + " 'weight': circuit_templates.Parameterization(dtype='complex', initialization='uniform'),\n", + " },\n", + " # -------- Sum-product layers hyperparameters -------- #\n", + " sum_product_layer='cp-t', # Use CP-T sum-product layers, i.e., alternate hadamard product layers and dense layers\n", + " num_sum_units=32, # Each dense sum layer consists of 32 sum units\n", + " # Set how to parameterize the sum layers parameters\n", + " # We paramterize them to be complex-valued whose real and imaginary part are sampled uniformly in [0, 1)\n", + " sum_weight_param=circuit_templates.Parameterization(dtype='complex', initialization='uniform')\n", + " )" + ] + }, + { + "cell_type": "markdown", + "id": "a5ae740c-0939-4b8e-8437-1d8e82df6f20", + "metadata": {}, + "source": [ + "In the above, we choose input layers encoding complex embeddings, i.e., each input unit maps a pixel value in $\\{0,1,\\ldots,255\\}$ to the corresponding entry of an embedding in $\\mathbb{C}^{256}$. In addition, we make use of CP-T as sum-product layers, where sum layers are parameterized with complex weights. For more details about this and other layers, see the [region-graph-and-parameterisations.ipynb](region-graph-and-parameterisations.ipynb) notebook." + ] + }, + { + "cell_type": "markdown", + "id": "a296e080-6ec8-4fcc-99c6-3d9662813d4e", + "metadata": {}, + "source": [ + "To encode a probability distribution, we must at least encode a non-negative real function. To do so with a complex circuit, we take the modulus square of its output. Formally, let $c$ be a complex circuit over variables $\\mathbf{X}$, i.e., $c(\\mathbf{X})\\in\\mathbb{C}$, we can encode a probability distribution $p(\\mathbf{X})$ such that $p(\\mathbf{X})=Z^{-1} |c(\\mathbf{X})|^2 = Z^{-1} c(\\mathbf{X}) c(\\mathbf{X})^*$, where $(\\ \\cdot\\ )^*$ denotes the complex conjugation operation and $Z = \\int_{\\mathrm{dom}(\\mathbf{X})} |c(\\mathbf{x})|^2 \\mathrm{d}\\mathbf{x}$ denotes the partition function. Equivalently, we can write $p(\\mathbf{X})$ as proportional to the **sum of two squares**, i.e., $p(\\mathbf{X}) \\propto \\Re(c(\\mathbf{X}))^2 + \\Im(c(\\mathbf{X}))^2$, where $\\Re,\\Im$ denote real and imaginary part, respectively, thus guaranteeing it is non-negative." + ] + }, + { + "cell_type": "markdown", + "id": "38dfbb3c-3bcf-4499-9953-aa67897c63a2", + "metadata": {}, + "source": [ + "## Composing Circuit Operators" + ] + }, + { + "cell_type": "markdown", + "id": "f104fd1c-522c-46c2-bb75-0d57c1aded2a", + "metadata": {}, + "source": [ + "To enable the exact and efficient computation of probabilities, we need to renormalize $p$, i.e., compute the renormalization constant $Z$. To do so, we can use the **circuit operators** in the ```cirkit.symbolic.functional``` module as to automatically construct the circuit computing $Z$. All we need is to _compose the operators_ as to encode the formula $Z = \\int_{\\mathrm{dom}(\\mathbf{X})} |c(\\mathbf{x})|^2 \\mathrm{d}\\mathbf{x}$ as yet another circuit.\n", + "\n", + "More specifically, each of the operators we will use has **pre-conditions** on the structural properties of the input circuits, and **post-conditions** on the properties and semantics of the output circuit:\n", + "- ```c' = multiply(c1, c2)```:\n", + " - Pre-condition: ```c1``` and ```c2``` are _compatible_, i.e., they share the same partitionings of variables at the products.\n", + " - Post-condtion: ```c'``` is _smooth_ and _decomposable_ and encodes the product of ```c1``` and ```c2```.\n", + "- ```c' = conjugate(c)```:\n", + " - Pre-condition: ```c``` is a circuit with possibly complex parameters.\n", + " - Post-condition: ```c'``` is a circuit of the same structure of ```c``` and computing the complex conjugation of ```c```.\n", + "- ```c' = integrate(c)```:\n", + " - Pre-condition: ```c``` is a _smooth_ and _decomposable_ circuit.\n", + " - Post-condition: ```c'``` is a circuit exactly encoding the integral of ```c``` over the whole variables domain.\n", + "\n", + "In order to satisfy these pre-conditions, we construct a complex circuit from a region graph that is structured-decomposable. This will yield a circuit that is compatible with itself, and therefore we apply the ```multiply``` operator as to square it." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "e0358fb3-989a-4aff-8ab0-a013684eaf64", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Structural properties:\n", + " - Smoothness: True\n", + " - Decomposability: True\n", + " - Structured-decomposability: True\n" + ] + } + ], + "source": [ + "# Build a symbolic complex circuit by overparameterizing a Quad-Tree (4) region graph, which is structured-decomposable\n", + "symbolic_circuit = build_symbolic_complex_circuit('quad-tree-4')\n", + "\n", + "# Print which structural properties the circuit satisfies\n", + "print(f'Structural properties:')\n", + "print(f' - Smoothness: {symbolic_circuit.is_smooth}')\n", + "print(f' - Decomposability: {symbolic_circuit.is_decomposable}')\n", + "print(f' - Structured-decomposability: {symbolic_circuit.is_structured_decomposable}')" + ] + }, + { + "cell_type": "markdown", + "id": "1f4eec54-961f-449f-9562-b6183f916498", + "metadata": {}, + "source": [ + "Next, we compose the circuit operators mentioned above as to construct the circuit computing $Z$." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "3222cff6-4423-4c30-8964-6685be991798", + "metadata": {}, + "outputs": [], + "source": [ + "import cirkit.symbolic.functional as SF\n", + "\n", + "# Construct the circuit computing |c(X)|^2 = c(X) c(X)^*\n", + "symbolic_squared_circuit = SF.multiply(symbolic_circuit, SF.conjugate(symbolic_circuit))\n", + "\n", + "# Construct the circuit computing Z, i.e., the integral of |c(X)|^2 over the complete domain of X\n", + "symbolic_circuit_partition_func = SF.integrate(symbolic_squared_circuit)" + ] + }, + { + "cell_type": "markdown", + "id": "392528b4-76cc-42c2-b743-3d3de369e673", + "metadata": {}, + "source": [ + "### Compiling and Learning Complex Squared Circuits\n", + "\n", + "Since we want to estimate the distribution of MNIST images, here we learn complex squared circuits by maximizing the log-likelihoods of observed images. Formally, given a complex circuit $c$, we can write the log-likelihood of a data point $\\mathbf{x}$ modeled by the complex squared circuit as $\\log p(\\mathbf{x}) = -\\log Z + 2 \\log |c(\\mathbf{x})|$. Therefore, we need to compile two circuits for this purpose: (1) the circuit $c$, and (2) the circuit computing $Z$.\n", + "\n", + "We choose PyTorch as the compilation backend, and set random seeds and the device below." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "fffd27f7-b18d-4c47-853f-15e62cac7e64", + "metadata": {}, + "outputs": [], + "source": [ + "import random\n", + "import numpy as np\n", + "import torch\n", + "\n", + "# Set some seeds\n", + "random.seed(42)\n", + "np.random.seed(42)\n", + "torch.manual_seed(42)\n", + "torch.cuda.manual_seed(42)\n", + "\n", + "# Set the torch device to use\n", + "device = torch.device('cuda')" + ] + }, + { + "cell_type": "markdown", + "id": "caaf6fd2-af42-4fdb-a52f-5dbf7e0fc70e", + "metadata": {}, + "source": [ + "To compile the circuits, we instantiate a ```PipelineContext``` object and refer the reader to the [compilation-options.ipynb](compilation-options.ipynb) notebook for a tutorial on compiling circuits and on the meaning of the different flags. Here, one important flag is the evaluation semiring. That is, to ensure numerical stability, we evaluate circuits by computing sum and products as they were operations of a semiring where the addition is the LogSumExp and the multiplication is the addition. More specifically, since our complex circuit can have negative real or complex parameter, we choose a generalization of the mentioned semiring over the complex plane." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "f46dc6a2-bf46-49a8-9dc9-d9b3c12411cd", + "metadata": {}, + "outputs": [], + "source": [ + "from cirkit.pipeline import PipelineContext, compile\n", + "\n", + "# Instantiate the pipeline context\n", + "ctx = PipelineContext(\n", + " backend='torch', # Choose PyTorch as compilation backend\n", + " # ---- Use the evaluation semiring (C, +, x), where + is the numerically stable LogSumExp and x is the sum ---- #\n", + " semiring='complex-lse-sum',\n", + " # ------------------------------------------------------------------------------------------------------------- #\n", + " fold=True, # Fold the circuit to better exploit GPU parallelism\n", + " optimize=True # Optimize the layers of the circuit\n", + ")\n", + "\n", + "with ctx: # Compile the circuits computing log |c(X)| and log |Z|\n", + " circuit = compile(symbolic_circuit)\n", + " circuit_partition_func = compile(symbolic_circuit_partition_func)" + ] + }, + { + "cell_type": "markdown", + "id": "ebdd0103-80a0-4626-9e14-e994eb115521", + "metadata": {}, + "source": [ + "In the above code, since we have chosen the ```complex-lse-sum``` semiring, then ```circuit``` is the complex circuit computing $\\log |c(\\mathbf{x})|$, while ```circuit_partition_func``` is the circuit computing $\\log Z$, and both are PyTorch modules.\n", + "\n", + "Next, we load the MNIST dataset using ```torchvision```." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "db0dfff6-a526-4a80-a5b8-6f89e911deee", + "metadata": {}, + "outputs": [], + "source": [ + "from torch import optim\n", + "from torch.utils.data import DataLoader\n", + "from torchvision import transforms, datasets\n", + "\n", + "# Load the MNIST data set and data loaders\n", + "transform = transforms.Compose([\n", + " transforms.ToTensor(),\n", + " # Flatten the images and set pixel values in the [0-255] range\n", + " transforms.Lambda(lambda x: (255 * x.view(-1)).long())\n", + "])\n", + "data_train = datasets.MNIST('datasets', train=True, download=True, transform=transform)\n", + "data_test = datasets.MNIST('datasets', train=False, download=True, transform=transform)\n", + "\n", + "# Instantiate the training and testing data loaders\n", + "train_dataloader = DataLoader(data_train, shuffle=True, batch_size=256)\n", + "test_dataloader = DataLoader(data_test, shuffle=False, batch_size=256)\n", + "\n", + "# Initialize a torch optimizer of your choice,\n", + "# e.g., Adam, by passing the parameters of the circuit\n", + "optimizer = optim.Adam(circuit.parameters(), lr=0.01)" + ] + }, + { + "cell_type": "markdown", + "id": "24176b6e-a495-4ce3-b627-d893507e2c35", + "metadata": {}, + "source": [ + "In the following training loop, we move the circuit parameters to the chosen device, and then learn the parameters of the complex squared circuit by minimizing the negative log-likelihood computed on MNIST images." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "d02c0673-a16f-4d7f-b7a0-7f8a6507fac1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Step 100: Average NLL: 2127.237\n", + "Step 200: Average NLL: 895.312\n", + "Step 300: Average NLL: 811.160\n", + "Step 400: Average NLL: 784.650\n", + "Step 500: Average NLL: 759.404\n", + "Step 600: Average NLL: 733.968\n", + "Step 700: Average NLL: 729.767\n", + "Step 800: Average NLL: 699.855\n", + "Step 900: Average NLL: 703.793\n", + "Step 1000: Average NLL: 687.243\n", + "Step 1100: Average NLL: 684.919\n", + "Step 1200: Average NLL: 677.487\n", + "Step 1300: Average NLL: 672.656\n", + "Step 1400: Average NLL: 674.011\n", + "Step 1500: Average NLL: 657.926\n", + "Step 1600: Average NLL: 665.834\n", + "Step 1700: Average NLL: 654.318\n", + "Step 1800: Average NLL: 657.123\n", + "Step 1900: Average NLL: 653.287\n", + "Step 2000: Average NLL: 650.353\n", + "Step 2100: Average NLL: 655.398\n", + "Step 2200: Average NLL: 641.939\n", + "Step 2300: Average NLL: 648.654\n" + ] + } + ], + "source": [ + "num_epochs = 10\n", + "step_idx = 0\n", + "running_loss = 0.0\n", + "\n", + "# Move the circuit to chosen device\n", + "circuit = circuit.to(device)\n", + "\n", + "for epoch_idx in range(num_epochs):\n", + " for i, (batch, _) in enumerate(train_dataloader):\n", + " # The circuit expects an input of shape (batch_dim, num_channels, num_variables),\n", + " # so we unsqueeze a dimension for the channel.\n", + " batch = batch.to(device).unsqueeze(dim=1)\n", + "\n", + " # -------- Computation of the negative log-likelihoods loss -------- #\n", + " # Compute the logarithm of the squared scores of the batch, by evaluating the circuit\n", + " log_scores = circuit(batch) # log |c(x)|\n", + " log_squared_scores = 2.0 * log_scores.real # 2 * log |c(x)|, i.e., equivalent to log |c(x)|^2\n", + " # Compute the log-partition function\n", + " log_partition_func = circuit_partition_func().real # log Z\n", + " # Compute the log-likelihoods, log p(x) = 2 * log |c(X)| - log Z\n", + " log_likelihoods = log_squared_scores - log_partition_func\n", + " # We take the negated average log-likelihood as loss\n", + " loss = -torch.mean(log_likelihoods)\n", + " # ------------------------------------------------------------------ #\n", + "\n", + " # Update the parameters of the circuits, as any other model in PyTorch\n", + " loss.backward()\n", + " optimizer.step()\n", + " optimizer.zero_grad()\n", + "\n", + " running_loss += loss.detach() * len(batch)\n", + " step_idx += 1\n", + " if step_idx % 100 == 0:\n", + " print(f\"Step {step_idx}: Average NLL: {running_loss / (100 * len(batch)):.3f}\")\n", + " running_loss = 0.0" + ] + }, + { + "cell_type": "markdown", + "id": "916638d9-6176-487d-8ac9-b048c81680a9", + "metadata": {}, + "source": [ + "Next, we evaluate the model on the test MNIST images, and show the bits-per-dimension metric." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "5148696f-7721-4cae-8027-7faa0dc33515", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Average test LL: -684.520\n", + "Bits per dimension: 1.260\n" + ] + } + ], + "source": [ + "with torch.no_grad():\n", + " # -------- Compute the log-partition function -------- #\n", + " # Note that we need to do it just one, since we are not updating the parameters here\n", + " log_partition_func = circuit_partition_func().real\n", + " # ---------------------------------------------------- #\n", + "\n", + " test_lls = 0.0\n", + " for batch, _ in test_dataloader:\n", + " batch = batch.to(device).unsqueeze(dim=1)\n", + "\n", + " # -------- Compute the log-likelihoods of hte unseen samples -------- #\n", + " # Compute the logarithm of the squared scores of the batch, by evaluating the circuit\n", + " log_scores = circuit(batch)\n", + " log_squared_scores = 2.0 * log_scores.real\n", + " # Compute the log-likelihoods\n", + " log_likelihoods = log_squared_scores - log_partition_func\n", + " # ------------------------------------------------------------------- #\n", + "\n", + " test_lls += log_likelihoods.sum().item()\n", + "\n", + " # Compute average test log-likelihood and bits per dimension\n", + " average_ll = test_lls / len(data_test)\n", + " bpd = -average_ll / (28 * 28 * np.log(2.0))\n", + " print(f\"Average test LL: {average_ll:.3f}\")\n", + " print(f\"Bits per dimension: {bpd:.3f}\")" + ] + }, + { + "cell_type": "markdown", + "id": "833c3761-31ed-4601-8fda-45416b598c1c", + "metadata": {}, + "source": [ + "The learned complex squared circuit achieved a lower bits-per-dimension than the monotonic PC learned in the [learning-a-circuit.ipynb](learning-a-circuit.ipynb) notebook, with about the same number of learnable parameters." + ] + }, + { + "cell_type": "markdown", + "id": "0cfa4b21-69c5-4293-80b1-a2ca66e0e9e1", + "metadata": {}, + "source": [ + "## Learning a Sum of Exponentially many Squared Circuits" + ] + }, + { + "cell_type": "markdown", + "id": "0a0433a0-bded-4481-bc2a-b02757154177", + "metadata": {}, + "source": [ + "TODO: write" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "be8c730e-933c-4dd6-9cf9-f529dcf9a075", + "metadata": {}, + "outputs": [], + "source": [ + "def build_symbolic_monotonic_circuit(region_graph: str) -> Circuit:\n", + " return circuit_templates.image_data(\n", + " (1, 28, 28), # The shape of MNIST image, i.e., (num_channels, image_height, image_width)\n", + " region_graph=region_graph,\n", + " # ----------- Input layers hyperparameters ----------- #\n", + " input_layer='embedding', # Use Embedding maps for the pixel values (0-255) as input layers\n", + " num_input_units=4, # Each input layer consists of 4 input units that output Embedding entries\n", + " input_params={ # Set how to parameterize the input layers parameters\n", + " # In this case we parameterize the 'weight' parameter of Embedding layers,\n", + " # by choosing them to be paramerized with a softmax, and initialized by sampling from a standard normal distribution\n", + " 'weight': circuit_templates.Parameterization(activation='softmax', initialization='normal'),\n", + " },\n", + " # -------- Sum-product layers hyperparameters -------- #\n", + " sum_product_layer='cp-t', # Use CP-T sum-product layers, i.e., alternate hadamard product layers and dense layers\n", + " num_sum_units=4, # Each dense sum layer consists of 4 sum units\n", + " # Set how to parameterize the sum layers parameters\n", + " # We paramterize them with a softmax, and initialize them by sampling from a standard normal distribution\n", + " sum_weight_param=circuit_templates.Parameterization(activation='softmax', initialization='normal')\n", + " )" + ] + }, + { + "cell_type": "markdown", + "id": "681c7b8f-a43f-4fd1-a03e-a7e115942ae9", + "metadata": {}, + "source": [ + "TODO: write" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "e66e5094-cf4c-445d-9cb7-a1b2b935289c", + "metadata": {}, + "outputs": [], + "source": [ + "# Build a symbolic complex circuit by overparameterizing a Quad-Tree (4) region graph, which is structured-decomposable\n", + "symbolic_complex_circuit = build_symbolic_complex_circuit('quad-tree-4')\n", + "\n", + "# Build a symbolic monotonic circuit, with the same region graph\n", + "symbolic_monotonic_circuit = build_symbolic_monotonic_circuit('quad-tree-4')" + ] + }, + { + "cell_type": "markdown", + "id": "33f99834-9b1c-4408-b36f-c0b1e9544e53", + "metadata": {}, + "source": [ + "TODO: write" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "150b9612-9341-41bc-bd44-fa7c9be729c9", + "metadata": {}, + "outputs": [], + "source": [ + "# Construct the circuit computing c_+(X) |c(X)|^2 = c_+(X) c(X) c(X)^*\n", + "symbolic_expsos_circuit = SF.multiply(\n", + " symbolic_monotonic_circuit,\n", + " SF.multiply(symbolic_complex_circuit, SF.conjugate(symbolic_complex_circuit))\n", + ")\n", + "\n", + "# Construct the circuit computing Z, i.e., the integral of c_+(X) |c(X)|^2 over the complete domain of X\n", + "symbolic_circuit_partition_func = SF.integrate(symbolic_expsos_circuit)" + ] + }, + { + "cell_type": "markdown", + "id": "3143823e-5d2f-4e09-b107-ad70f89b4263", + "metadata": {}, + "source": [ + "TODO: write" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "454efc3f-df9c-4b10-bee6-f496829b4027", + "metadata": {}, + "outputs": [], + "source": [ + "# Free-up some memory\n", + "del circuit, circuit_partition_func, ctx\n", + "\n", + "# Instantiate the pipeline context\n", + "ctx = PipelineContext(\n", + " backend='torch', # Choose PyTorch as compilation backend\n", + " semiring='complex-lse-sum',\n", + " fold=True, # Fold the circuit to better exploit GPU parallelism\n", + " optimize=True # Optimize the layers of the circuit\n", + ")\n", + "\n", + "with ctx: # Compile the circuits computing log c_+(X), log |c(X)|, and log |Z|\n", + " monotonic_circuit = compile(symbolic_monotonic_circuit)\n", + " complex_circuit = compile(symbolic_complex_circuit)\n", + " circuit_partition_func = compile(symbolic_circuit_partition_func)" + ] + }, + { + "cell_type": "markdown", + "id": "fddab9ad-4d72-4c8a-9657-dbc552c311cb", + "metadata": {}, + "source": [ + "TODO: write" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "7775ac5b-b9c4-48d4-baae-fa8da5770530", + "metadata": {}, + "outputs": [], + "source": [ + "import itertools\n", + "\n", + "# Initialize a torch optimizer of your choice,\n", + "# e.g., Adam, by passing the parameters of the circuits\n", + "optimizer = optim.Adam(itertools.chain(monotonic_circuit.parameters(), complex_circuit.parameters()), lr=0.01)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "24b05a77-4063-4c5d-a725-376ff35d7a6d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Step 100: Average NLL: 1970.952\n", + "Step 200: Average NLL: 835.667\n", + "Step 300: Average NLL: 773.546\n", + "Step 400: Average NLL: 754.928\n", + "Step 500: Average NLL: 731.176\n", + "Step 600: Average NLL: 710.194\n", + "Step 700: Average NLL: 707.972\n", + "Step 800: Average NLL: 680.812\n", + "Step 900: Average NLL: 683.363\n", + "Step 1000: Average NLL: 666.073\n", + "Step 1100: Average NLL: 665.810\n", + "Step 1200: Average NLL: 658.401\n", + "Step 1300: Average NLL: 655.889\n", + "Step 1400: Average NLL: 654.304\n", + "Step 1500: Average NLL: 639.108\n", + "Step 1600: Average NLL: 645.786\n", + "Step 1700: Average NLL: 637.203\n", + "Step 1800: Average NLL: 637.141\n", + "Step 1900: Average NLL: 635.162\n", + "Step 2000: Average NLL: 631.744\n", + "Step 2100: Average NLL: 635.326\n", + "Step 2200: Average NLL: 622.690\n", + "Step 2300: Average NLL: 630.649\n" + ] + } + ], + "source": [ + "num_epochs = 10\n", + "step_idx = 0\n", + "running_loss = 0.0\n", + "\n", + "# Move the circuits to chosen device\n", + "monotonic_circuit = monotonic_circuit.to(device)\n", + "complex_circuit = complex_circuit.to(device)\n", + "\n", + "for epoch_idx in range(num_epochs):\n", + " for i, (batch, _) in enumerate(train_dataloader):\n", + " # The circuit expects an input of shape (batch_dim, num_channels, num_variables),\n", + " # so we unsqueeze a dimension for the channel.\n", + " batch = batch.to(device).unsqueeze(dim=1)\n", + "\n", + " # -------- Computation of the negative log-likelihoods loss -------- #\n", + " # Compute the logarithm of the scores of the batch, by evaluating the circuits\n", + " log_monotonic_scores = monotonic_circuit(batch).real # log c_+(x)\n", + " log_squared_scores = 2.0 * complex_circuit(batch).real # 2 * log |c(x)|\n", + " # Compute the log-partition function\n", + " log_partition_func = circuit_partition_func().real # log Z\n", + " # Compute the log-likelihoods, log p(x) = log c_+(x) + 2 * log |c(X)| - log Z\n", + " log_likelihoods = log_monotonic_scores + log_squared_scores - log_partition_func\n", + " # We take the negated average log-likelihood as loss\n", + " loss = -torch.mean(log_likelihoods)\n", + " # ------------------------------------------------------------------ #\n", + "\n", + " # Update the parameters of the circuits, as any other model in PyTorch\n", + " loss.backward()\n", + " optimizer.step()\n", + " optimizer.zero_grad()\n", + "\n", + " running_loss += loss.detach() * len(batch)\n", + " step_idx += 1\n", + " if step_idx % 100 == 0:\n", + " print(f\"Step {step_idx}: Average NLL: {running_loss / (100 * len(batch)):.3f}\")\n", + " running_loss = 0.0" + ] + }, + { + "cell_type": "markdown", + "id": "69680885-e0bb-4fc0-8079-1a3d905160d3", + "metadata": {}, + "source": [ + "TODO: write" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "6edb6c7e-a07e-4a14-954c-f2593e2772cb", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Average test LL: -666.170\n", + "Bits per dimension: 1.226\n" + ] + } + ], + "source": [ + "with torch.no_grad():\n", + " # -------- Compute the log-partition function -------- #\n", + " # Note that we need to do it just one, since we are not updating the parameters here\n", + " log_partition_func = circuit_partition_func().real\n", + " # ---------------------------------------------------- #\n", + "\n", + " test_lls = 0.0\n", + " for batch, _ in test_dataloader:\n", + " batch = batch.to(device).unsqueeze(dim=1)\n", + "\n", + " # -------- Compute the log-likelihoods of hte unseen samples -------- #\n", + " # Compute the logarithm of the cores of the batch, by evaluating the circuits\n", + " log_monotonic_scores = monotonic_circuit(batch).real # log c_+(x)\n", + " log_squared_scores = 2.0 * complex_circuit(batch).real # 2 * log |c(x)|\n", + " # Compute the log-likelihoods\n", + " log_likelihoods = log_monotonic_scores + log_squared_scores - log_partition_func\n", + " # ------------------------------------------------------------------- #\n", + "\n", + " test_lls += log_likelihoods.sum().item()\n", + "\n", + " # Compute average test log-likelihood and bits per dimension\n", + " average_ll = test_lls / len(data_test)\n", + " bpd = -average_ll / (28 * 28 * np.log(2.0))\n", + " print(f\"Average test LL: {average_ll:.3f}\")\n", + " print(f\"Bits per dimension: {bpd:.3f}\")" + ] + }, + { + "cell_type": "markdown", + "id": "62af142a-e055-4915-9a4f-3512660d4790", + "metadata": {}, + "source": [ + "TODO: write" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/sum-of-squares.ipynb b/notebooks/sum-of-squares.ipynb deleted file mode 100644 index 9fbd91ca..00000000 --- a/notebooks/sum-of-squares.ipynb +++ /dev/null @@ -1,13606 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "7369e801-4318-4dee-b77c-5564cc99a6c4", - "metadata": {}, - "source": [ - "# Sum of Squares Circuits" - ] - }, - { - "cell_type": "markdown", - "id": "06696904-6240-4406-862e-eadad41e476b", - "metadata": {}, - "source": [ - "## Complex Squared Circuits" - ] - }, - { - "cell_type": "markdown", - "id": "08609db7-439a-48fa-9969-a4b2813c35bc", - "metadata": {}, - "source": [ - "TODO: write" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "667f60ee-5f58-4146-93cf-7675d222bd82", - "metadata": {}, - "outputs": [], - "source": [ - "from cirkit.templates import circuit_templates\n", - "from cirkit.symbolic.circuit import Circuit\n", - "\n", - "def build_symbolic_complex_circuit(region_graph: str) -> Circuit:\n", - " return circuit_templates.image_data(\n", - " (1, 28, 28), # The shape of MNIST image, i.e., (num_channels, image_height, image_width)\n", - " region_graph=region_graph,\n", - " # ----------- Input layers hyperparameters ----------- #\n", - " input_layer='embedding', # Use Embedding maps for the pixel values (0-255) as input layers\n", - " num_input_units=2, # Each input layer consists of 64 input units that output Embedding entries\n", - " input_params={ # Set how to parameterize the input layers parameters\n", - " # In this case we parameterize the 'weight' parameter of Embedding layers,\n", - " # by choosing them to be complex-valued whose real and imaginary part are sampled uniformly in [0, 1)\n", - " 'weight': circuit_templates.Parameterization(dtype='complex', initialization='uniform'),\n", - " },\n", - " # -------- Sum-product layers hyperparameters -------- #\n", - " sum_product_layer='cp-t', # Use CP-T sum-product layers, i.e., alternate hadamard product layers and dense layers\n", - " num_sum_units=2, # Each dense sum layer consists of 64 sum units\n", - " # Set how to parameterize the sum layers parameters\n", - " # We paramterize them to be complex-valued whose real and imaginary part are sampled uniformly in [0, 1)\n", - " sum_weight_param = circuit_templates.Parameterization(dtype='complex', initialization='uniform')\n", - " )" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "8ce05897-5107-4c6a-88d9-11146ee53a36", - "metadata": {}, - "outputs": [], - "source": [ - "symbolic_circuit = build_symbolic_complex_circuit('quad-tree-4')" - ] - }, - { - "cell_type": "markdown", - "id": "a296e080-6ec8-4fcc-99c6-3d9662813d4e", - "metadata": {}, - "source": [ - "TODO: write" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "3222cff6-4423-4c30-8964-6685be991798", - "metadata": {}, - "outputs": [], - "source": [ - "import cirkit.symbolic.functional as SF\n", - "\n", - "symbolic_circuit_partition_func = SF.integrate(\n", - " SF.multiply(symbolic_circuit, SF.conjugate(symbolic_circuit))\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "392528b4-76cc-42c2-b743-3d3de369e673", - "metadata": {}, - "source": [] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "fffd27f7-b18d-4c47-853f-15e62cac7e64", - "metadata": {}, - "outputs": [], - "source": [ - "import random\n", - "import numpy as np\n", - "import torch\n", - "\n", - "# Set some seeds\n", - "random.seed(42)\n", - "np.random.seed(42)\n", - "torch.manual_seed(42)\n", - "torch.cuda.manual_seed(42)\n", - "\n", - "# Set the torch device to use\n", - "device = torch.device('cpu')" - ] - }, - { - "cell_type": "markdown", - "id": "629a58ed-bcab-473f-9d14-3d7768103af3", - "metadata": {}, - "source": [ - "TODO: write" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "f46dc6a2-bf46-49a8-9dc9-d9b3c12411cd", - "metadata": {}, - "outputs": [], - "source": [ - "from cirkit.pipeline import PipelineContext, compile\n", - "\n", - "# Instantiate the pipeline context\n", - "ctx = PipelineContext(backend='torch', semiring='complex-lse-sum', fold=True, optimize=True)\n", - "\n", - "with ctx:\n", - " circuit = compile(symbolic_circuit)\n", - " circuit_partition_func = compile(symbolic_circuit_partition_func)" - ] - }, - { - "cell_type": "markdown", - "id": "2926a18a-ce50-4787-859f-22d2f4398fa5", - "metadata": {}, - "source": [ - "TODO: write" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "db0dfff6-a526-4a80-a5b8-6f89e911deee", - "metadata": {}, - "outputs": [], - "source": [ - "from torch import optim\n", - "from torch.utils.data import DataLoader\n", - "from torchvision import transforms, datasets\n", - "\n", - "# Load the MNIST data set and data loaders\n", - "transform = transforms.Compose([\n", - " transforms.ToTensor(),\n", - " # Flatten the images and set pixel values in the [0-255] range\n", - " transforms.Lambda(lambda x: (255 * x.view(-1)).long())\n", - "])\n", - "data_train = datasets.MNIST('datasets', train=True, download=True, transform=transform)\n", - "data_test = datasets.MNIST('datasets', train=False, download=True, transform=transform)\n", - "\n", - "# Instantiate the training and testing data loaders\n", - "train_dataloader = DataLoader(data_train, shuffle=True, batch_size=256)\n", - "test_dataloader = DataLoader(data_test, shuffle=False, batch_size=256)\n", - "\n", - "# Initialize a torch optimizer of your choice,\n", - "# e.g., Adam, by passing the parameters of the circuit\n", - "optimizer = optim.Adam(circuit.parameters(), lr=0.01)" - ] - }, - { - "cell_type": "markdown", - "id": "24176b6e-a495-4ce3-b627-d893507e2c35", - "metadata": {}, - "source": [ - "TODO: write" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "d02c0673-a16f-4d7f-b7a0-7f8a6507fac1", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "tensor([[[-73717.8203]],\n", - "\n", - " [[-73582.3203]],\n", - "\n", - " [[-73627.6094]],\n", - "\n", - " [[-73607.5312]],\n", - "\n", - " [[-73650.4453]],\n", - "\n", - " [[-73630.0312]],\n", - "\n", - " [[-73629.4219]],\n", - "\n", - " [[-73594.5000]],\n", - "\n", - " [[-73567.5234]],\n", - "\n", - " [[-73640.0234]],\n", - "\n", - " [[-73636.7812]],\n", - "\n", - " [[-73722.1875]],\n", - "\n", - " [[-73558.0000]],\n", - "\n", - " [[-73684.7656]],\n", - "\n", - " [[-73573.3281]],\n", - "\n", - " [[-73673.7734]],\n", - "\n", - " [[-73554.6094]],\n", - "\n", - " [[-73558.1016]],\n", - "\n", - " [[-73643.1562]],\n", - "\n", - " [[-73553.6641]],\n", - "\n", - " [[-73594.0547]],\n", - "\n", - " [[-73608.0156]],\n", - "\n", - " [[-73536.2188]],\n", - "\n", - " [[-73706.6562]],\n", - "\n", - " [[-73593.8906]],\n", - "\n", - " [[-73678.9141]],\n", - "\n", - " [[-73605.1406]],\n", - "\n", - " [[-73644.1484]],\n", - "\n", - " [[-73650.2109]],\n", - "\n", - " [[-73608.1953]],\n", - "\n", - " [[-73662.1250]],\n", - "\n", - " [[-73690.5938]],\n", - "\n", - " [[-73661.0469]],\n", - "\n", - " [[-73691.4531]],\n", - "\n", - " [[-73666.9297]],\n", - "\n", - " [[-73616.0547]],\n", - "\n", - " [[-73576.1328]],\n", - "\n", - " [[-73614.5625]],\n", - "\n", - " [[-73570.0859]],\n", - "\n", - " [[-73646.8672]],\n", - "\n", - " [[-73550.5391]],\n", - "\n", - " [[-73548.8125]],\n", - "\n", - " [[-73635.8516]],\n", - "\n", - " [[-73560.3047]],\n", - "\n", - " [[-73641.8281]],\n", - "\n", - " [[-73617.5078]],\n", - "\n", - " [[-73529.6484]],\n", - "\n", - " [[-73636.2344]],\n", - "\n", - " [[-73523.8594]],\n", - "\n", - " [[-73650.2500]],\n", - "\n", - " [[-73608.6172]],\n", - "\n", - " [[-73590.9844]],\n", - "\n", - " [[-73601.3594]],\n", - "\n", - " [[-73565.2344]],\n", - "\n", - " [[-73570.7734]],\n", - "\n", - " [[-73700.5078]],\n", - "\n", - " [[-73592.3359]],\n", - "\n", - " [[-73619.0469]],\n", - "\n", - " [[-73656.9688]],\n", - "\n", - " [[-73627.7422]],\n", - "\n", - " [[-73608.3125]],\n", - "\n", - " [[-73519.1797]],\n", - "\n", - " [[-73581.0078]],\n", - "\n", - " [[-73619.9609]],\n", - "\n", - " [[-73656.9844]],\n", - "\n", - " [[-73571.1406]],\n", - "\n", - " [[-73626.6484]],\n", - "\n", - " [[-73607.6562]],\n", - "\n", - " [[-73683.6172]],\n", - "\n", - " [[-73591.4609]],\n", - "\n", - " [[-73714.6484]],\n", - "\n", - " [[-73607.0234]],\n", - "\n", - " [[-73655.7266]],\n", - "\n", - " [[-73561.7656]],\n", - "\n", - " [[-73660.4141]],\n", - "\n", - " [[-73584.0859]],\n", - "\n", - " [[-73609.3125]],\n", - "\n", - " [[-73594.8828]],\n", - "\n", - " [[-73633.3047]],\n", - "\n", - " [[-73613.4922]],\n", - "\n", - " [[-73565.4062]],\n", - "\n", - " [[-73632.4844]],\n", - "\n", - " [[-73642.8125]],\n", - "\n", - " [[-73633.3672]],\n", - "\n", - " [[-73647.8047]],\n", - "\n", - " [[-73646.2344]],\n", - "\n", - " [[-73547.4062]],\n", - "\n", - " [[-73567.0781]],\n", - "\n", - " [[-73632.9453]],\n", - "\n", - " [[-73582.6797]],\n", - "\n", - " [[-73562.5547]],\n", - "\n", - " [[-73615.4375]],\n", - "\n", - " [[-73624.1562]],\n", - "\n", - " [[-73688.3203]],\n", - "\n", - " [[-73542.9219]],\n", - "\n", - " [[-73580.5234]],\n", - "\n", - " [[-73562.4219]],\n", - "\n", - " [[-73552.7812]],\n", - "\n", - " [[-73643.4453]],\n", - "\n", - " [[-73568.8906]],\n", - "\n", - " [[-73634.8359]],\n", - "\n", - " [[-73672.5469]],\n", - "\n", - " [[-73627.4688]],\n", - "\n", - " [[-73648.0625]],\n", - "\n", - " [[-73669.2969]],\n", - "\n", - " [[-73665.8672]],\n", - "\n", - " [[-73600.5859]],\n", - "\n", - " [[-73631.5078]],\n", - "\n", - " [[-73670.7031]],\n", - "\n", - " [[-73625.7188]],\n", - "\n", - " [[-73669.8438]],\n", - "\n", - " [[-73571.8672]],\n", - "\n", - " [[-73654.7656]],\n", - "\n", - " [[-73669.8594]],\n", - "\n", - " [[-73572.6250]],\n", - "\n", - " [[-73678.3438]],\n", - "\n", - " [[-73593.9297]],\n", - "\n", - " [[-73568.4062]],\n", - "\n", - " [[-73635.3672]],\n", - "\n", - " [[-73573.0000]],\n", - "\n", - " [[-73605.7891]],\n", - "\n", - " [[-73522.1953]],\n", - "\n", - " [[-73623.1094]],\n", - "\n", - " [[-73602.8672]],\n", - "\n", - " [[-73586.9219]],\n", - "\n", - " [[-73577.4297]],\n", - "\n", - " [[-73635.3906]],\n", - "\n", - " [[-73667.2344]],\n", - "\n", - " [[-73589.5625]],\n", - "\n", - " [[-73642.0391]],\n", - "\n", - " [[-73602.0938]],\n", - "\n", - " [[-73585.1953]],\n", - "\n", - " [[-73640.5625]],\n", - "\n", - " [[-73574.4766]],\n", - "\n", - " [[-73611.8047]],\n", - "\n", - " [[-73592.0391]],\n", - "\n", - " [[-73568.4922]],\n", - "\n", - " [[-73596.9141]],\n", - "\n", - " [[-73630.2422]],\n", - "\n", - " [[-73585.6094]],\n", - "\n", - " [[-73672.3281]],\n", - "\n", - " [[-73562.8828]],\n", - "\n", - " [[-73669.2734]],\n", - "\n", - " [[-73562.2656]],\n", - "\n", - " [[-73588.2500]],\n", - "\n", - " [[-73640.7578]],\n", - "\n", - " [[-73559.2734]],\n", - "\n", - " [[-73583.1094]],\n", - "\n", - " [[-73552.0000]],\n", - "\n", - " [[-73578.5781]],\n", - "\n", - " [[-73563.7188]],\n", - "\n", - " [[-73530.2422]],\n", - "\n", - " [[-73599.2344]],\n", - "\n", - " [[-73573.9219]],\n", - "\n", - " [[-73590.3828]],\n", - "\n", - " [[-73662.5781]],\n", - "\n", - " [[-73573.6562]],\n", - "\n", - " [[-73650.5078]],\n", - "\n", - " [[-73610.0469]],\n", - "\n", - " [[-73609.3047]],\n", - "\n", - " [[-73659.5000]],\n", - "\n", - " [[-73517.4922]],\n", - "\n", - " [[-73699.2500]],\n", - "\n", - " [[-73638.4531]],\n", - "\n", - " [[-73658.4141]],\n", - "\n", - " [[-73644.7891]],\n", - "\n", - " [[-73602.6016]],\n", - "\n", - " [[-73644.1797]],\n", - "\n", - " [[-73569.9297]],\n", - "\n", - " [[-73645.1406]],\n", - "\n", - " [[-73662.1094]],\n", - "\n", - " [[-73612.9453]],\n", - "\n", - " [[-73629.9766]],\n", - "\n", - " [[-73657.3203]],\n", - "\n", - " [[-73691.0234]],\n", - "\n", - " [[-73655.9922]],\n", - "\n", - " [[-73622.0781]],\n", - "\n", - " [[-73648.6875]],\n", - "\n", - " [[-73584.0859]],\n", - "\n", - " [[-73692.2344]],\n", - "\n", - " [[-73619.1250]],\n", - "\n", - " [[-73596.6719]],\n", - "\n", - " [[-73608.5078]],\n", - "\n", - " [[-73667.5859]],\n", - "\n", - " [[-73596.0625]],\n", - "\n", - " [[-73633.9297]],\n", - "\n", - " [[-73604.0391]],\n", - "\n", - " [[-73715.1641]],\n", - "\n", - " [[-73627.3984]],\n", - "\n", - " [[-73620.9766]],\n", - "\n", - " [[-73586.5859]],\n", - "\n", - " [[-73713.0000]],\n", - "\n", - " [[-73581.9062]],\n", - "\n", - " [[-73618.8203]],\n", - "\n", - " [[-73631.5469]],\n", - "\n", - " [[-73597.0000]],\n", - "\n", - " [[-73664.7812]],\n", - "\n", - " [[-73613.1719]],\n", - "\n", - " [[-73533.6250]],\n", - "\n", - " [[-73615.3672]],\n", - "\n", - " [[-73553.5781]],\n", - "\n", - " [[-73591.0703]],\n", - "\n", - " [[-73634.1953]],\n", - "\n", - " [[-73635.4141]],\n", - "\n", - " [[-73617.2500]],\n", - "\n", - " [[-73619.0078]],\n", - "\n", - " [[-73600.6094]],\n", - "\n", - " [[-73621.6328]],\n", - "\n", - " [[-73604.4297]],\n", - "\n", - " [[-73623.8984]],\n", - "\n", - " [[-73558.1797]],\n", - "\n", - " [[-73544.0312]],\n", - "\n", - " [[-73634.7969]],\n", - "\n", - " [[-73588.7500]],\n", - "\n", - " [[-73686.7578]],\n", - "\n", - " [[-73556.3359]],\n", - "\n", - " [[-73696.4375]],\n", - "\n", - " [[-73577.1641]],\n", - "\n", - " [[-73694.9844]],\n", - "\n", - " [[-73563.0938]],\n", - "\n", - " [[-73593.8203]],\n", - "\n", - " [[-73615.4453]],\n", - "\n", - " [[-73646.7656]],\n", - "\n", - " [[-73553.2891]],\n", - "\n", - " [[-73604.1250]],\n", - "\n", - " [[-73615.3203]],\n", - "\n", - " [[-73661.2266]],\n", - "\n", - " [[-73605.5469]],\n", - "\n", - " [[-73619.9766]],\n", - "\n", - " [[-73588.3516]],\n", - "\n", - " [[-73642.5078]],\n", - "\n", - " [[-73561.7422]],\n", - "\n", - " [[-73587.8984]],\n", - "\n", - " [[-73667.7969]],\n", - "\n", - " [[-73571.1016]],\n", - "\n", - " [[-73616.2422]],\n", - "\n", - " [[-73601.3672]],\n", - "\n", - " [[-73687.5391]],\n", - "\n", - " [[-73618.6641]],\n", - "\n", - " [[-73617.4531]],\n", - "\n", - " [[-73648.5234]],\n", - "\n", - " [[-73602.2812]],\n", - "\n", - " [[-73591.7031]],\n", - "\n", - " [[-73683.4062]],\n", - "\n", - " [[-73559.3828]],\n", - "\n", - " [[-73548.0078]],\n", - "\n", - " [[-73613.9297]],\n", - "\n", - " [[-73580.2266]],\n", - "\n", - " [[-73627.9453]],\n", - "\n", - " [[-73564.0938]],\n", - "\n", - " [[-73606.6094]],\n", - "\n", - " [[-73593.7656]],\n", - "\n", - " [[-73635.4219]],\n", - "\n", - " [[-73597.3750]],\n", - "\n", - " [[-73616.0391]],\n", - "\n", - " [[-73605.7344]]], grad_fn=)\n", - "tensor([[[-71475.5625]],\n", - "\n", - " [[-71520.2422]],\n", - "\n", - " [[-71526.9844]],\n", - "\n", - " [[-71518.6172]],\n", - "\n", - " [[-71588.0469]],\n", - "\n", - " [[-71541.4375]],\n", - "\n", - " [[-71434.0000]],\n", - "\n", - " [[-71475.3281]],\n", - "\n", - " [[-71497.8359]],\n", - "\n", - " [[-71607.6562]],\n", - "\n", - " [[-71601.3047]],\n", - "\n", - " [[-71540.8516]],\n", - "\n", - " [[-71590.0391]],\n", - "\n", - " [[-71614.6016]],\n", - "\n", - " [[-71489.9688]],\n", - "\n", - " [[-71594.1641]],\n", - "\n", - " [[-71544.6250]],\n", - "\n", - " [[-71470.6094]],\n", - "\n", - " [[-71596.5469]],\n", - "\n", - " [[-71624.4531]],\n", - "\n", - " [[-71575.2500]],\n", - "\n", - " [[-71586.1406]],\n", - "\n", - " [[-71584.6250]],\n", - "\n", - " [[-71536.1094]],\n", - "\n", - " [[-71614.5938]],\n", - "\n", - " [[-71499.2656]],\n", - "\n", - " [[-71508.6484]],\n", - "\n", - " [[-71464.5938]],\n", - "\n", - " [[-71468.1953]],\n", - "\n", - " [[-71594.5625]],\n", - "\n", - " [[-71565.5938]],\n", - "\n", - " [[-71555.2500]],\n", - "\n", - " [[-71597.2734]],\n", - "\n", - " [[-71525.5000]],\n", - "\n", - " [[-71625.2969]],\n", - "\n", - " [[-71609.3750]],\n", - "\n", - " [[-71460.0156]],\n", - "\n", - " [[-71535.3359]],\n", - "\n", - " [[-71515.4609]],\n", - "\n", - " [[-71486.3828]],\n", - "\n", - " [[-71544.8906]],\n", - "\n", - " [[-71519.1953]],\n", - "\n", - " [[-71556.0781]],\n", - "\n", - " [[-71586.7031]],\n", - "\n", - " [[-71467.3438]],\n", - "\n", - " [[-71607.7031]],\n", - "\n", - " [[-71623.5000]],\n", - "\n", - " [[-71471.7578]],\n", - "\n", - " [[-71627.9766]],\n", - "\n", - " [[-71556.9609]],\n", - "\n", - " [[-71624.5469]],\n", - "\n", - " [[-71488.8516]],\n", - "\n", - " [[-71596.7578]],\n", - "\n", - " [[-71474.2344]],\n", - "\n", - " [[-71505.5859]],\n", - "\n", - " [[-71557.6875]],\n", - "\n", - " [[-71454.7578]],\n", - "\n", - " [[-71533.8828]],\n", - "\n", - " [[-71520.1797]],\n", - "\n", - " [[-71530.6562]],\n", - "\n", - " [[-71658.3906]],\n", - "\n", - " [[-71571.1328]],\n", - "\n", - " [[-71520.8359]],\n", - "\n", - " [[-71540.7578]],\n", - "\n", - " [[-71523.6484]],\n", - "\n", - " [[-71477.0156]],\n", - "\n", - " [[-71458.5859]],\n", - "\n", - " [[-71529.3438]],\n", - "\n", - " [[-71484.5547]],\n", - "\n", - " [[-71576.5469]],\n", - "\n", - " [[-71501.7422]],\n", - "\n", - " [[-71533.8828]],\n", - "\n", - " [[-71594.2422]],\n", - "\n", - " [[-71565.0781]],\n", - "\n", - " [[-71520.1875]],\n", - "\n", - " [[-71510.9766]],\n", - "\n", - " [[-71558.7031]],\n", - "\n", - " [[-71535.1406]],\n", - "\n", - " [[-71554.5312]],\n", - "\n", - " [[-71533.5000]],\n", - "\n", - " [[-71580.1953]],\n", - "\n", - " [[-71577.3047]],\n", - "\n", - " [[-71524.9141]],\n", - "\n", - " [[-71483.5547]],\n", - "\n", - " [[-71548.5234]],\n", - "\n", - " [[-71598.9922]],\n", - "\n", - " [[-71590.4062]],\n", - "\n", - " [[-71484.1250]],\n", - "\n", - " [[-71532.4219]],\n", - "\n", - " [[-71597.8281]],\n", - "\n", - " [[-71519.5781]],\n", - "\n", - " [[-71538.1562]],\n", - "\n", - " [[-71603.0000]],\n", - "\n", - " [[-71470.4375]],\n", - "\n", - " [[-71525.1641]],\n", - "\n", - " [[-71533.2422]],\n", - "\n", - " [[-71533.6250]],\n", - "\n", - " [[-71517.0469]],\n", - "\n", - " [[-71637.8125]],\n", - "\n", - " [[-71550.5703]],\n", - "\n", - " [[-71557.8828]],\n", - "\n", - " [[-71596.5469]],\n", - "\n", - " [[-71543.3359]],\n", - "\n", - " [[-71605.5703]],\n", - "\n", - " [[-71565.8594]],\n", - "\n", - " [[-71534.0469]],\n", - "\n", - " [[-71541.9141]],\n", - "\n", - " [[-71514.4375]],\n", - "\n", - " [[-71525.3828]],\n", - "\n", - " [[-71613.6719]],\n", - "\n", - " [[-71547.3750]],\n", - "\n", - " [[-71487.8438]],\n", - "\n", - " [[-71536.8906]],\n", - "\n", - " [[-71502.1562]],\n", - "\n", - " [[-71477.2109]],\n", - "\n", - " [[-71549.4844]],\n", - "\n", - " [[-71590.7422]],\n", - "\n", - " [[-71502.8359]],\n", - "\n", - " [[-71505.5469]],\n", - "\n", - " [[-71500.8906]],\n", - "\n", - " [[-71611.4453]],\n", - "\n", - " [[-71544.7891]],\n", - "\n", - " [[-71544.8281]],\n", - "\n", - " [[-71540.5156]],\n", - "\n", - " [[-71600.0312]],\n", - "\n", - " [[-71572.2109]],\n", - "\n", - " [[-71516.9297]],\n", - "\n", - " [[-71494.3594]],\n", - "\n", - " [[-71586.8828]],\n", - "\n", - " [[-71497.6953]],\n", - "\n", - " [[-71553.8359]],\n", - "\n", - " [[-71539.3203]],\n", - "\n", - " [[-71652.0391]],\n", - "\n", - " [[-71565.1094]],\n", - "\n", - " [[-71510.4297]],\n", - "\n", - " [[-71594.3750]],\n", - "\n", - " [[-71633.1875]],\n", - "\n", - " [[-71501.4531]],\n", - "\n", - " [[-71500.6172]],\n", - "\n", - " [[-71523.5000]],\n", - "\n", - " [[-71521.3750]],\n", - "\n", - " [[-71553.0625]],\n", - "\n", - " [[-71563.3359]],\n", - "\n", - " [[-71501.1953]],\n", - "\n", - " [[-71580.2109]],\n", - "\n", - " [[-71554.4766]],\n", - "\n", - " [[-71575.0469]],\n", - "\n", - " [[-71506.6172]],\n", - "\n", - " [[-71526.1094]],\n", - "\n", - " [[-71530.9219]],\n", - "\n", - " [[-71591.0234]],\n", - "\n", - " [[-71598.4297]],\n", - "\n", - " [[-71508.6562]],\n", - "\n", - " [[-71475.0625]],\n", - "\n", - " [[-71539.0469]],\n", - "\n", - " [[-71441.1562]],\n", - "\n", - " [[-71543.6016]],\n", - "\n", - " [[-71494.5859]],\n", - "\n", - " [[-71566.2891]],\n", - "\n", - " [[-71514.8516]],\n", - "\n", - " [[-71553.8047]],\n", - "\n", - " [[-71526.7969]],\n", - "\n", - " [[-71498.5781]],\n", - "\n", - " [[-71533.7422]],\n", - "\n", - " [[-71584.6172]],\n", - "\n", - " [[-71531.6172]],\n", - "\n", - " [[-71449.2578]],\n", - "\n", - " [[-71620.1484]],\n", - "\n", - " [[-71562.4297]],\n", - "\n", - " [[-71561.0938]],\n", - "\n", - " [[-71539.5781]],\n", - "\n", - " [[-71566.4375]],\n", - "\n", - " [[-71531.4688]],\n", - "\n", - " [[-71541.4766]],\n", - "\n", - " [[-71521.3906]],\n", - "\n", - " [[-71540.0703]],\n", - "\n", - " [[-71474.3828]],\n", - "\n", - " [[-71625.0312]],\n", - "\n", - " [[-71509.3906]],\n", - "\n", - " [[-71547.4531]],\n", - "\n", - " [[-71514.8281]],\n", - "\n", - " [[-71529.6641]],\n", - "\n", - " [[-71666.4375]],\n", - "\n", - " [[-71574.4766]],\n", - "\n", - " [[-71460.5391]],\n", - "\n", - " [[-71660.2891]],\n", - "\n", - " [[-71584.3594]],\n", - "\n", - " [[-71489.2266]],\n", - "\n", - " [[-71540.9609]],\n", - "\n", - " [[-71614.6875]],\n", - "\n", - " [[-71496.4141]],\n", - "\n", - " [[-71539.8906]],\n", - "\n", - " [[-71604.1250]],\n", - "\n", - " [[-71626.6406]],\n", - "\n", - " [[-71524.1094]],\n", - "\n", - " [[-71551.5234]],\n", - "\n", - " [[-71433.5547]],\n", - "\n", - " [[-71561.3359]],\n", - "\n", - " [[-71438.0156]],\n", - "\n", - " [[-71614.0938]],\n", - "\n", - " [[-71537.7969]],\n", - "\n", - " [[-71579.2891]],\n", - "\n", - " [[-71560.7969]],\n", - "\n", - " [[-71456.8438]],\n", - "\n", - " [[-71578.6719]],\n", - "\n", - " [[-71588.4062]],\n", - "\n", - " [[-71582.9219]],\n", - "\n", - " [[-71545.9688]],\n", - "\n", - " [[-71547.4688]],\n", - "\n", - " [[-71572.2031]],\n", - "\n", - " [[-71541.7734]],\n", - "\n", - " [[-71527.0000]],\n", - "\n", - " [[-71561.9297]],\n", - "\n", - " [[-71558.0703]],\n", - "\n", - " [[-71624.6328]],\n", - "\n", - " [[-71466.9453]],\n", - "\n", - " [[-71539.8906]],\n", - "\n", - " [[-71581.4141]],\n", - "\n", - " [[-71517.0078]],\n", - "\n", - " [[-71490.0391]],\n", - "\n", - " [[-71590.8828]],\n", - "\n", - " [[-71498.6172]],\n", - "\n", - " [[-71540.0078]],\n", - "\n", - " [[-71509.9922]],\n", - "\n", - " [[-71539.2891]],\n", - "\n", - " [[-71466.6016]],\n", - "\n", - " [[-71551.9141]],\n", - "\n", - " [[-71490.2891]],\n", - "\n", - " [[-71545.5703]],\n", - "\n", - " [[-71528.5625]],\n", - "\n", - " [[-71459.3281]],\n", - "\n", - " [[-71511.1250]],\n", - "\n", - " [[-71582.3906]],\n", - "\n", - " [[-71526.2188]],\n", - "\n", - " [[-71511.5312]],\n", - "\n", - " [[-71501.3359]],\n", - "\n", - " [[-71543.6797]],\n", - "\n", - " [[-71520.1562]],\n", - "\n", - " [[-71561.3906]],\n", - "\n", - " [[-71474.3594]],\n", - "\n", - " [[-71510.6953]],\n", - "\n", - " [[-71511.0078]],\n", - "\n", - " [[-71534.2578]],\n", - "\n", - " [[-71594.6250]],\n", - "\n", - " [[-71574.7344]],\n", - "\n", - " [[-71591.6250]],\n", - "\n", - " [[-71650.8438]],\n", - "\n", - " [[-71656.5938]],\n", - "\n", - " [[-71465.3828]],\n", - "\n", - " [[-71458.1875]],\n", - "\n", - " [[-71510.3594]],\n", - "\n", - " [[-71540.1250]],\n", - "\n", - " [[-71591.6250]],\n", - "\n", - " [[-71568.7109]],\n", - "\n", - " [[-71499.4375]],\n", - "\n", - " [[-71575.7188]]], grad_fn=)\n", - "tensor([[[-69468.0312]],\n", - "\n", - " [[-69530.8359]],\n", - "\n", - " [[-69421.2266]],\n", - "\n", - " [[-69483.4766]],\n", - "\n", - " [[-69499.1875]],\n", - "\n", - " [[-69537.6953]],\n", - "\n", - " [[-69502.3125]],\n", - "\n", - " [[-69540.7266]],\n", - "\n", - " [[-69515.1797]],\n", - "\n", - " [[-69498.0078]],\n", - "\n", - " [[-69544.2500]],\n", - "\n", - " [[-69526.1797]],\n", - "\n", - " [[-69576.9453]],\n", - "\n", - " [[-69525.2109]],\n", - "\n", - " [[-69491.4844]],\n", - "\n", - " [[-69528.9141]],\n", - "\n", - " [[-69509.8828]],\n", - "\n", - " [[-69537.9141]],\n", - "\n", - " [[-69496.8203]],\n", - "\n", - " [[-69518.2812]],\n", - "\n", - " [[-69577.9922]],\n", - "\n", - " [[-69527.5859]],\n", - "\n", - " [[-69524.8125]],\n", - "\n", - " [[-69526.5078]],\n", - "\n", - " [[-69524.4297]],\n", - "\n", - " [[-69483.7812]],\n", - "\n", - " [[-69493.4844]],\n", - "\n", - " [[-69475.2734]],\n", - "\n", - " [[-69444.3828]],\n", - "\n", - " [[-69506.9297]],\n", - "\n", - " [[-69546.9453]],\n", - "\n", - " [[-69515.4609]],\n", - "\n", - " [[-69539.6562]],\n", - "\n", - " [[-69490.2578]],\n", - "\n", - " [[-69468.4922]],\n", - "\n", - " [[-69510.6016]],\n", - "\n", - " [[-69557.3281]],\n", - "\n", - " [[-69473.9922]],\n", - "\n", - " [[-69416.5781]],\n", - "\n", - " [[-69593.2578]],\n", - "\n", - " [[-69448.1172]],\n", - "\n", - " [[-69486.8828]],\n", - "\n", - " [[-69522.7734]],\n", - "\n", - " [[-69514.7422]],\n", - "\n", - " [[-69585.4141]],\n", - "\n", - " [[-69529.3984]],\n", - "\n", - " [[-69557.3438]],\n", - "\n", - " [[-69461.9922]],\n", - "\n", - " [[-69622.1328]],\n", - "\n", - " [[-69568.8594]],\n", - "\n", - " [[-69556.9453]],\n", - "\n", - " [[-69517.5078]],\n", - "\n", - " [[-69595.5078]],\n", - "\n", - " [[-69446.1641]],\n", - "\n", - " [[-69544.0234]],\n", - "\n", - " [[-69559.1328]],\n", - "\n", - " [[-69501.7969]],\n", - "\n", - " [[-69506.3047]],\n", - "\n", - " [[-69467.7656]],\n", - "\n", - " [[-69475.5391]],\n", - "\n", - " [[-69502.0625]],\n", - "\n", - " [[-69440.0938]],\n", - "\n", - " [[-69530.7188]],\n", - "\n", - " [[-69514.5938]],\n", - "\n", - " [[-69517.0156]],\n", - "\n", - " [[-69518.3516]],\n", - "\n", - " [[-69499.5859]],\n", - "\n", - " [[-69565.1016]],\n", - "\n", - " [[-69484.2891]],\n", - "\n", - " [[-69486.5703]],\n", - "\n", - " [[-69606.1641]],\n", - "\n", - " [[-69460.7969]],\n", - "\n", - " [[-69509.5078]],\n", - "\n", - " [[-69407.3125]],\n", - "\n", - " [[-69545.4844]],\n", - "\n", - " [[-69516.6641]],\n", - "\n", - " [[-69495.7656]],\n", - "\n", - " [[-69528.7891]],\n", - "\n", - " [[-69596.8828]],\n", - "\n", - " [[-69492.2109]],\n", - "\n", - " [[-69452.9922]],\n", - "\n", - " [[-69594.8828]],\n", - "\n", - " [[-69510.1250]],\n", - "\n", - " [[-69610.8594]],\n", - "\n", - " [[-69480.1094]],\n", - "\n", - " [[-69450.9844]],\n", - "\n", - " [[-69545.0312]],\n", - "\n", - " [[-69563.8828]],\n", - "\n", - " [[-69502.5938]],\n", - "\n", - " [[-69502.7891]],\n", - "\n", - " [[-69482.8906]],\n", - "\n", - " [[-69532.0000]],\n", - "\n", - " [[-69452.6016]],\n", - "\n", - " [[-69447.4688]],\n", - "\n", - " [[-69536.5938]],\n", - "\n", - " [[-69491.4297]],\n", - "\n", - " [[-69496.4844]],\n", - "\n", - " [[-69543.1484]],\n", - "\n", - " [[-69559.3203]],\n", - "\n", - " [[-69513.7656]],\n", - "\n", - " [[-69581.7578]],\n", - "\n", - " [[-69515.6875]],\n", - "\n", - " [[-69454.7734]],\n", - "\n", - " [[-69535.9219]],\n", - "\n", - " [[-69511.5469]],\n", - "\n", - " [[-69508.6875]],\n", - "\n", - " [[-69478.9688]],\n", - "\n", - " [[-69513.0703]],\n", - "\n", - " [[-69405.0859]],\n", - "\n", - " [[-69509.1797]],\n", - "\n", - " [[-69519.5547]],\n", - "\n", - " [[-69505.2344]],\n", - "\n", - " [[-69605.0859]],\n", - "\n", - " [[-69494.4531]],\n", - "\n", - " [[-69517.4219]],\n", - "\n", - " [[-69577.0234]],\n", - "\n", - " [[-69469.7344]],\n", - "\n", - " [[-69469.4062]],\n", - "\n", - " [[-69418.7031]],\n", - "\n", - " [[-69466.6172]],\n", - "\n", - " [[-69542.1641]],\n", - "\n", - " [[-69528.8984]],\n", - "\n", - " [[-69512.6719]],\n", - "\n", - " [[-69542.7500]],\n", - "\n", - " [[-69495.2656]],\n", - "\n", - " [[-69528.0547]],\n", - "\n", - " [[-69509.2031]],\n", - "\n", - " [[-69477.7188]],\n", - "\n", - " [[-69459.3125]],\n", - "\n", - " [[-69591.5938]],\n", - "\n", - " [[-69533.5156]],\n", - "\n", - " [[-69436.2969]],\n", - "\n", - " [[-69530.1094]],\n", - "\n", - " [[-69454.8750]],\n", - "\n", - " [[-69531.3125]],\n", - "\n", - " [[-69517.2891]],\n", - "\n", - " [[-69444.8594]],\n", - "\n", - " [[-69571.7422]],\n", - "\n", - " [[-69536.8906]],\n", - "\n", - " [[-69533.8047]],\n", - "\n", - " [[-69479.6953]],\n", - "\n", - " [[-69527.5312]],\n", - "\n", - " [[-69475.1328]],\n", - "\n", - " [[-69500.6250]],\n", - "\n", - " [[-69616.9844]],\n", - "\n", - " [[-69487.4531]],\n", - "\n", - " [[-69515.0391]],\n", - "\n", - " [[-69494.2812]],\n", - "\n", - " [[-69436.5391]],\n", - "\n", - " [[-69511.9531]],\n", - "\n", - " [[-69539.4688]],\n", - "\n", - " [[-69569.7891]],\n", - "\n", - " [[-69638.0391]],\n", - "\n", - " [[-69409.1484]],\n", - "\n", - " [[-69435.6719]],\n", - "\n", - " [[-69504.3750]],\n", - "\n", - " [[-69473.2578]],\n", - "\n", - " [[-69441.4375]],\n", - "\n", - " [[-69493.7031]],\n", - "\n", - " [[-69501.5625]],\n", - "\n", - " [[-69492.8359]],\n", - "\n", - " [[-69491.6016]],\n", - "\n", - " [[-69449.9453]],\n", - "\n", - " [[-69621.4688]],\n", - "\n", - " [[-69564.7031]],\n", - "\n", - " [[-69521.4609]],\n", - "\n", - " [[-69463.2031]],\n", - "\n", - " [[-69473.5547]],\n", - "\n", - " [[-69517.9844]],\n", - "\n", - " [[-69417.7031]],\n", - "\n", - " [[-69484.0859]],\n", - "\n", - " [[-69454.5234]],\n", - "\n", - " [[-69543.5938]],\n", - "\n", - " [[-69484.4141]],\n", - "\n", - " [[-69603.3047]],\n", - "\n", - " [[-69561.1953]],\n", - "\n", - " [[-69542.9609]],\n", - "\n", - " [[-69569.3750]],\n", - "\n", - " [[-69451.5156]],\n", - "\n", - " [[-69597.0938]],\n", - "\n", - " [[-69540.5703]],\n", - "\n", - " [[-69497.8594]],\n", - "\n", - " [[-69502.1562]],\n", - "\n", - " [[-69564.0156]],\n", - "\n", - " [[-69505.1172]],\n", - "\n", - " [[-69474.9062]],\n", - "\n", - " [[-69530.9531]],\n", - "\n", - " [[-69406.3281]],\n", - "\n", - " [[-69505.7969]],\n", - "\n", - " [[-69434.4531]],\n", - "\n", - " [[-69445.1250]],\n", - "\n", - " [[-69566.2891]],\n", - "\n", - " [[-69628.6719]],\n", - "\n", - " [[-69611.0938]],\n", - "\n", - " [[-69440.5078]],\n", - "\n", - " [[-69522.1016]],\n", - "\n", - " [[-69520.8828]],\n", - "\n", - " [[-69446.1562]],\n", - "\n", - " [[-69502.7734]],\n", - "\n", - " [[-69538.1484]],\n", - "\n", - " [[-69479.0312]],\n", - "\n", - " [[-69488.4844]],\n", - "\n", - " [[-69632.1641]],\n", - "\n", - " [[-69431.1719]],\n", - "\n", - " [[-69562.8438]],\n", - "\n", - " [[-69561.6172]],\n", - "\n", - " [[-69569.1484]],\n", - "\n", - " [[-69557.9219]],\n", - "\n", - " [[-69575.2656]],\n", - "\n", - " [[-69452.7734]],\n", - "\n", - " [[-69497.0547]],\n", - "\n", - " [[-69517.3047]],\n", - "\n", - " [[-69566.0625]],\n", - "\n", - " [[-69524.3203]],\n", - "\n", - " [[-69504.5312]],\n", - "\n", - " [[-69508.8125]],\n", - "\n", - " [[-69476.5703]],\n", - "\n", - " [[-69518.6406]],\n", - "\n", - " [[-69511.6797]],\n", - "\n", - " [[-69477.6641]],\n", - "\n", - " [[-69488.4297]],\n", - "\n", - " [[-69519.1016]],\n", - "\n", - " [[-69512.6016]],\n", - "\n", - " [[-69425.9141]],\n", - "\n", - " [[-69477.9453]],\n", - "\n", - " [[-69500.9141]],\n", - "\n", - " [[-69599.0938]],\n", - "\n", - " [[-69448.5938]],\n", - "\n", - " [[-69539.0703]],\n", - "\n", - " [[-69449.2812]],\n", - "\n", - " [[-69534.5156]],\n", - "\n", - " [[-69480.8906]],\n", - "\n", - " [[-69434.7500]],\n", - "\n", - " [[-69476.1016]],\n", - "\n", - " [[-69502.3125]],\n", - "\n", - " [[-69552.6797]],\n", - "\n", - " [[-69562.1250]],\n", - "\n", - " [[-69565.8516]],\n", - "\n", - " [[-69550.6328]],\n", - "\n", - " [[-69444.1797]],\n", - "\n", - " [[-69471.9688]],\n", - "\n", - " [[-69407.5938]],\n", - "\n", - " [[-69553.0234]],\n", - "\n", - " [[-69435.6172]],\n", - "\n", - " [[-69557.3750]],\n", - "\n", - " [[-69492.8750]],\n", - "\n", - " [[-69436.7266]],\n", - "\n", - " [[-69474.9141]],\n", - "\n", - " [[-69490.2969]],\n", - "\n", - " [[-69576.5312]],\n", - "\n", - " [[-69411.8203]],\n", - "\n", - " [[-69520.8047]],\n", - "\n", - " [[-69583.5469]],\n", - "\n", - " [[-69483.5078]],\n", - "\n", - " [[-69535.6719]],\n", - "\n", - " [[-69467.8672]]], grad_fn=)\n", - "tensor([[[-67495.2266]],\n", - "\n", - " [[-67532.0625]],\n", - "\n", - " [[-67436.7266]],\n", - "\n", - " [[-67619.5781]],\n", - "\n", - " [[-67481.5234]],\n", - "\n", - " [[-67515.4922]],\n", - "\n", - " [[-67536.7969]],\n", - "\n", - " [[-67418.4609]],\n", - "\n", - " [[-67524.3750]],\n", - "\n", - " [[-67464.1719]],\n", - "\n", - " [[-67446.1172]],\n", - "\n", - " [[-67504.5938]],\n", - "\n", - " [[-67529.6250]],\n", - "\n", - " [[-67589.3281]],\n", - "\n", - " [[-67523.1797]],\n", - "\n", - " [[-67550.6953]],\n", - "\n", - " [[-67514.6562]],\n", - "\n", - " [[-67530.0859]],\n", - "\n", - " [[-67459.0078]],\n", - "\n", - " [[-67522.9531]],\n", - "\n", - " [[-67551.3125]],\n", - "\n", - " [[-67495.0312]],\n", - "\n", - " [[-67573.9141]],\n", - "\n", - " [[-67521.2812]],\n", - "\n", - " [[-67562.1172]],\n", - "\n", - " [[-67576.8125]],\n", - "\n", - " [[-67546.8672]],\n", - "\n", - " [[-67510.5078]],\n", - "\n", - " [[-67503.2891]],\n", - "\n", - " [[-67528.8906]],\n", - "\n", - " [[-67475.4219]],\n", - "\n", - " [[-67500.3516]],\n", - "\n", - " [[-67477.6172]],\n", - "\n", - " [[-67484.8438]],\n", - "\n", - " [[-67502.4141]],\n", - "\n", - " [[-67483.6094]],\n", - "\n", - " [[-67430.9219]],\n", - "\n", - " [[-67504.1484]],\n", - "\n", - " [[-67502.2734]],\n", - "\n", - " [[-67514.8672]],\n", - "\n", - " [[-67449.6797]],\n", - "\n", - " [[-67537.3594]],\n", - "\n", - " [[-67589.0625]],\n", - "\n", - " [[-67529.3438]],\n", - "\n", - " [[-67498.1875]],\n", - "\n", - " [[-67592.4688]],\n", - "\n", - " [[-67446.6797]],\n", - "\n", - " [[-67459.7500]],\n", - "\n", - " [[-67588.5312]],\n", - "\n", - " [[-67610.2891]],\n", - "\n", - " [[-67506.5781]],\n", - "\n", - " [[-67469.0547]],\n", - "\n", - " [[-67583.2266]],\n", - "\n", - " [[-67582.6719]],\n", - "\n", - " [[-67557.6484]],\n", - "\n", - " [[-67568.3047]],\n", - "\n", - " [[-67608.5547]],\n", - "\n", - " [[-67543.2500]],\n", - "\n", - " [[-67532.1094]],\n", - "\n", - " [[-67547.0078]],\n", - "\n", - " [[-67446.1719]],\n", - "\n", - " [[-67554.3906]],\n", - "\n", - " [[-67476.8828]],\n", - "\n", - " [[-67583.9062]],\n", - "\n", - " [[-67483.6719]],\n", - "\n", - " [[-67511.7812]],\n", - "\n", - " [[-67464.2969]],\n", - "\n", - " [[-67615.2500]],\n", - "\n", - " [[-67505.6719]],\n", - "\n", - " [[-67555.7500]],\n", - "\n", - " [[-67620.6094]],\n", - "\n", - " [[-67636.9844]],\n", - "\n", - " [[-67475.0625]],\n", - "\n", - " [[-67513.2969]],\n", - "\n", - " [[-67582.5469]],\n", - "\n", - " [[-67513.3672]],\n", - "\n", - " [[-67592.1641]],\n", - "\n", - " [[-67511.9531]],\n", - "\n", - " [[-67490.5859]],\n", - "\n", - " [[-67536.3906]],\n", - "\n", - " [[-67578.0000]],\n", - "\n", - " [[-67561.7188]],\n", - "\n", - " [[-67555.0859]],\n", - "\n", - " [[-67532.8750]],\n", - "\n", - " [[-67431.3828]],\n", - "\n", - " [[-67591.3125]],\n", - "\n", - " [[-67422.6328]],\n", - "\n", - " [[-67615.0156]],\n", - "\n", - " [[-67493.8047]],\n", - "\n", - " [[-67554.4453]],\n", - "\n", - " [[-67561.5469]],\n", - "\n", - " [[-67552.6797]],\n", - "\n", - " [[-67507.7188]],\n", - "\n", - " [[-67581.8125]],\n", - "\n", - " [[-67515.1094]],\n", - "\n", - " [[-67510.6875]],\n", - "\n", - " [[-67579.6484]],\n", - "\n", - " [[-67557.2422]],\n", - "\n", - " [[-67574.9062]],\n", - "\n", - " [[-67597.8672]],\n", - "\n", - " [[-67529.9844]],\n", - "\n", - " [[-67530.1484]],\n", - "\n", - " [[-67570.2578]],\n", - "\n", - " [[-67586.0078]],\n", - "\n", - " [[-67605.4531]],\n", - "\n", - " [[-67521.3047]],\n", - "\n", - " [[-67550.0703]],\n", - "\n", - " [[-67519.1641]],\n", - "\n", - " [[-67529.8906]],\n", - "\n", - " [[-67469.0859]],\n", - "\n", - " [[-67427.7188]],\n", - "\n", - " [[-67472.1328]],\n", - "\n", - " [[-67555.7969]],\n", - "\n", - " [[-67516.8359]],\n", - "\n", - " [[-67585.5625]],\n", - "\n", - " [[-67607.2344]],\n", - "\n", - " [[-67556.2266]],\n", - "\n", - " [[-67607.6484]],\n", - "\n", - " [[-67543.1016]],\n", - "\n", - " [[-67533.2969]],\n", - "\n", - " [[-67507.0000]],\n", - "\n", - " [[-67531.7500]],\n", - "\n", - " [[-67584.7891]],\n", - "\n", - " [[-67564.0781]],\n", - "\n", - " [[-67488.6016]],\n", - "\n", - " [[-67464.7188]],\n", - "\n", - " [[-67513.3750]],\n", - "\n", - " [[-67514.2266]],\n", - "\n", - " [[-67559.3438]],\n", - "\n", - " [[-67501.5156]],\n", - "\n", - " [[-67502.4844]],\n", - "\n", - " [[-67575.9609]],\n", - "\n", - " [[-67525.0781]],\n", - "\n", - " [[-67417.6875]],\n", - "\n", - " [[-67466.3828]],\n", - "\n", - " [[-67518.6875]],\n", - "\n", - " [[-67425.0469]],\n", - "\n", - " [[-67562.6484]],\n", - "\n", - " [[-67491.4922]],\n", - "\n", - " [[-67561.4297]],\n", - "\n", - " [[-67419.6016]],\n", - "\n", - " [[-67542.2812]],\n", - "\n", - " [[-67476.3047]],\n", - "\n", - " [[-67555.7734]],\n", - "\n", - " [[-67490.2812]],\n", - "\n", - " [[-67592.7188]],\n", - "\n", - " [[-67473.3906]],\n", - "\n", - " [[-67529.6641]],\n", - "\n", - " [[-67527.4453]],\n", - "\n", - " [[-67480.2344]],\n", - "\n", - " [[-67483.7812]],\n", - "\n", - " [[-67530.7578]],\n", - "\n", - " [[-67541.8750]],\n", - "\n", - " [[-67478.1953]],\n", - "\n", - " [[-67505.6094]],\n", - "\n", - " [[-67490.9141]],\n", - "\n", - " [[-67522.4062]],\n", - "\n", - " [[-67517.4766]],\n", - "\n", - " [[-67587.5781]],\n", - "\n", - " [[-67559.9922]],\n", - "\n", - " [[-67597.9062]],\n", - "\n", - " [[-67531.1328]],\n", - "\n", - " [[-67531.8906]],\n", - "\n", - " [[-67614.4922]],\n", - "\n", - " [[-67436.7656]],\n", - "\n", - " [[-67616.6875]],\n", - "\n", - " [[-67448.1016]],\n", - "\n", - " [[-67482.6797]],\n", - "\n", - " [[-67489.0391]],\n", - "\n", - " [[-67525.6797]],\n", - "\n", - " [[-67578.9688]],\n", - "\n", - " [[-67457.0781]],\n", - "\n", - " [[-67518.2656]],\n", - "\n", - " [[-67466.4609]],\n", - "\n", - " [[-67542.9922]],\n", - "\n", - " [[-67585.3281]],\n", - "\n", - " [[-67566.1562]],\n", - "\n", - " [[-67601.9609]],\n", - "\n", - " [[-67558.6719]],\n", - "\n", - " [[-67500.8906]],\n", - "\n", - " [[-67464.7656]],\n", - "\n", - " [[-67503.3125]],\n", - "\n", - " [[-67524.2422]],\n", - "\n", - " [[-67548.8359]],\n", - "\n", - " [[-67516.1562]],\n", - "\n", - " [[-67541.9219]],\n", - "\n", - " [[-67541.7266]],\n", - "\n", - " [[-67550.7500]],\n", - "\n", - " [[-67607.5938]],\n", - "\n", - " [[-67560.4844]],\n", - "\n", - " [[-67436.8047]],\n", - "\n", - " [[-67533.2500]],\n", - "\n", - " [[-67422.6328]],\n", - "\n", - " [[-67543.7891]],\n", - "\n", - " [[-67441.6719]],\n", - "\n", - " [[-67681.5547]],\n", - "\n", - " [[-67624.2969]],\n", - "\n", - " [[-67537.7891]],\n", - "\n", - " [[-67498.8984]],\n", - "\n", - " [[-67460.3516]],\n", - "\n", - " [[-67493.6562]],\n", - "\n", - " [[-67475.1562]],\n", - "\n", - " [[-67539.4766]],\n", - "\n", - " [[-67450.7344]],\n", - "\n", - " [[-67521.1016]],\n", - "\n", - " [[-67558.5781]],\n", - "\n", - " [[-67532.1797]],\n", - "\n", - " [[-67516.8672]],\n", - "\n", - " [[-67507.1719]],\n", - "\n", - " [[-67572.5703]],\n", - "\n", - " [[-67574.2656]],\n", - "\n", - " [[-67440.3594]],\n", - "\n", - " [[-67544.5391]],\n", - "\n", - " [[-67439.3438]],\n", - "\n", - " [[-67684.2188]],\n", - "\n", - " [[-67509.0859]],\n", - "\n", - " [[-67514.6562]],\n", - "\n", - " [[-67566.5781]],\n", - "\n", - " [[-67548.4531]],\n", - "\n", - " [[-67498.0000]],\n", - "\n", - " [[-67459.5938]],\n", - "\n", - " [[-67545.9766]],\n", - "\n", - " [[-67547.4922]],\n", - "\n", - " [[-67585.5547]],\n", - "\n", - " [[-67546.7891]],\n", - "\n", - " [[-67483.5938]],\n", - "\n", - " [[-67470.6328]],\n", - "\n", - " [[-67434.1016]],\n", - "\n", - " [[-67516.7891]],\n", - "\n", - " [[-67568.2188]],\n", - "\n", - " [[-67545.9219]],\n", - "\n", - " [[-67620.7969]],\n", - "\n", - " [[-67524.1094]],\n", - "\n", - " [[-67502.8672]],\n", - "\n", - " [[-67442.5391]],\n", - "\n", - " [[-67484.0703]],\n", - "\n", - " [[-67514.4531]],\n", - "\n", - " [[-67557.3594]],\n", - "\n", - " [[-67563.5938]],\n", - "\n", - " [[-67535.6094]],\n", - "\n", - " [[-67438.4453]],\n", - "\n", - " [[-67497.1719]],\n", - "\n", - " [[-67495.7812]],\n", - "\n", - " [[-67650.5859]],\n", - "\n", - " [[-67514.4219]],\n", - "\n", - " [[-67507.5156]],\n", - "\n", - " [[-67549.8438]],\n", - "\n", - " [[-67518.5781]],\n", - "\n", - " [[-67419.5938]],\n", - "\n", - " [[-67432.6250]],\n", - "\n", - " [[-67417.3984]],\n", - "\n", - " [[-67613.6250]],\n", - "\n", - " [[-67573.4531]],\n", - "\n", - " [[-67584.7734]],\n", - "\n", - " [[-67530.2656]],\n", - "\n", - " [[-67480.0625]]], grad_fn=)\n", - "tensor([[[-65580.7031]],\n", - "\n", - " [[-65574.4766]],\n", - "\n", - " [[-65662.0703]],\n", - "\n", - " [[-65480.6016]],\n", - "\n", - " [[-65514.9727]],\n", - "\n", - " [[-65594.6328]],\n", - "\n", - " [[-65540.2344]],\n", - "\n", - " [[-65519.7773]],\n", - "\n", - " [[-65569.9531]],\n", - "\n", - " [[-65545.4766]],\n", - "\n", - " [[-65546.3906]],\n", - "\n", - " [[-65562.9922]],\n", - "\n", - " [[-65677.4453]],\n", - "\n", - " [[-65615.6016]],\n", - "\n", - " [[-65487.2461]],\n", - "\n", - " [[-65568.6406]],\n", - "\n", - " [[-65615.3281]],\n", - "\n", - " [[-65586.5234]],\n", - "\n", - " [[-65721.0859]],\n", - "\n", - " [[-65623.8906]],\n", - "\n", - " [[-65528.3320]],\n", - "\n", - " [[-65524.0781]],\n", - "\n", - " [[-65527.1680]],\n", - "\n", - " [[-65540.8906]],\n", - "\n", - " [[-65558.6562]],\n", - "\n", - " [[-65613.2344]],\n", - "\n", - " [[-65587.4219]],\n", - "\n", - " [[-65635.4688]],\n", - "\n", - " [[-65630.2656]],\n", - "\n", - " [[-65505.8789]],\n", - "\n", - " [[-65495.1914]],\n", - "\n", - " [[-65624.0781]],\n", - "\n", - " [[-65491.5586]],\n", - "\n", - " [[-65531.1992]],\n", - "\n", - " [[-65586.2344]],\n", - "\n", - " [[-65464.0625]],\n", - "\n", - " [[-65592.0703]],\n", - "\n", - " [[-65553.6250]],\n", - "\n", - " [[-65591.1328]],\n", - "\n", - " [[-65553.9141]],\n", - "\n", - " [[-65707.7578]],\n", - "\n", - " [[-65617.2969]],\n", - "\n", - " [[-65476.0000]],\n", - "\n", - " [[-65487.6758]],\n", - "\n", - " [[-65511.9180]],\n", - "\n", - " [[-65674.2656]],\n", - "\n", - " [[-65505.1055]],\n", - "\n", - " [[-65606.0078]],\n", - "\n", - " [[-65516.9727]],\n", - "\n", - " [[-65534.1523]],\n", - "\n", - " [[-65559.6094]],\n", - "\n", - " [[-65535.6055]],\n", - "\n", - " [[-65565.7969]],\n", - "\n", - " [[-65557.7031]],\n", - "\n", - " [[-65585.1172]],\n", - "\n", - " [[-65562.9609]],\n", - "\n", - " [[-65558.0625]],\n", - "\n", - " [[-65621.4688]],\n", - "\n", - " [[-65535.0781]],\n", - "\n", - " [[-65607.0781]],\n", - "\n", - " [[-65483.6328]],\n", - "\n", - " [[-65520.0586]],\n", - "\n", - " [[-65543.8594]],\n", - "\n", - " [[-65609.4922]],\n", - "\n", - " [[-65528.0039]],\n", - "\n", - " [[-65687.0312]],\n", - "\n", - " [[-65499.6719]],\n", - "\n", - " [[-65589.5547]],\n", - "\n", - " [[-65541.1719]],\n", - "\n", - " [[-65494.6562]],\n", - "\n", - " [[-65505.8203]],\n", - "\n", - " [[-65542.2812]],\n", - "\n", - " [[-65616.1641]],\n", - "\n", - " [[-65561.0391]],\n", - "\n", - " [[-65622.7109]],\n", - "\n", - " [[-65538.9688]],\n", - "\n", - " [[-65597.6484]],\n", - "\n", - " [[-65636.2188]],\n", - "\n", - " [[-65660.6484]],\n", - "\n", - " [[-65638.3672]],\n", - "\n", - " [[-65589.5703]],\n", - "\n", - " [[-65522.6406]],\n", - "\n", - " [[-65499.6953]],\n", - "\n", - " [[-65588.3125]],\n", - "\n", - " [[-65596.4766]],\n", - "\n", - " [[-65623.7266]],\n", - "\n", - " [[-65576.1641]],\n", - "\n", - " [[-65642.2812]],\n", - "\n", - " [[-65636.2188]],\n", - "\n", - " [[-65468.5352]],\n", - "\n", - " [[-65624.2812]],\n", - "\n", - " [[-65589.8047]],\n", - "\n", - " [[-65526.8672]],\n", - "\n", - " [[-65571.9062]],\n", - "\n", - " [[-65536.2188]],\n", - "\n", - " [[-65550.2891]],\n", - "\n", - " [[-65664.9062]],\n", - "\n", - " [[-65580.7422]],\n", - "\n", - " [[-65716.0547]],\n", - "\n", - " [[-65522.1367]],\n", - "\n", - " [[-65564.9922]],\n", - "\n", - " [[-65587.1562]],\n", - "\n", - " [[-65626.2812]],\n", - "\n", - " [[-65623.6094]],\n", - "\n", - " [[-65552.9609]],\n", - "\n", - " [[-65588.0078]],\n", - "\n", - " [[-65641.1719]],\n", - "\n", - " [[-65575.1953]],\n", - "\n", - " [[-65673.4297]],\n", - "\n", - " [[-65689.1406]],\n", - "\n", - " [[-65612.5156]],\n", - "\n", - " [[-65627.5234]],\n", - "\n", - " [[-65565.0781]],\n", - "\n", - " [[-65576.1016]],\n", - "\n", - " [[-65555.2656]],\n", - "\n", - " [[-65535.4648]],\n", - "\n", - " [[-65562.2422]],\n", - "\n", - " [[-65613.2266]],\n", - "\n", - " [[-65607.0859]],\n", - "\n", - " [[-65578.4453]],\n", - "\n", - " [[-65658.2578]],\n", - "\n", - " [[-65519.4414]],\n", - "\n", - " [[-65606.6641]],\n", - "\n", - " [[-65549.9375]],\n", - "\n", - " [[-65571.3750]],\n", - "\n", - " [[-65591.8984]],\n", - "\n", - " [[-65590.8906]],\n", - "\n", - " [[-65580.9453]],\n", - "\n", - " [[-65709.3359]],\n", - "\n", - " [[-65567.3281]],\n", - "\n", - " [[-65561.7500]],\n", - "\n", - " [[-65558.6172]],\n", - "\n", - " [[-65574.9141]],\n", - "\n", - " [[-65613.9141]],\n", - "\n", - " [[-65522.8086]],\n", - "\n", - " [[-65596.5625]],\n", - "\n", - " [[-65517.6680]],\n", - "\n", - " [[-65618.3281]],\n", - "\n", - " [[-65570.8359]],\n", - "\n", - " [[-65607.5234]],\n", - "\n", - " [[-65610.7969]],\n", - "\n", - " [[-65559.0078]],\n", - "\n", - " [[-65516.0586]],\n", - "\n", - " [[-65567.5859]],\n", - "\n", - " [[-65578.1094]],\n", - "\n", - " [[-65579.6406]],\n", - "\n", - " [[-65588.0078]],\n", - "\n", - " [[-65633.8750]],\n", - "\n", - " [[-65559.8906]],\n", - "\n", - " [[-65495.1875]],\n", - "\n", - " [[-65614.7734]],\n", - "\n", - " [[-65591.8984]],\n", - "\n", - " [[-65549.6016]],\n", - "\n", - " [[-65603.6484]],\n", - "\n", - " [[-65574.5547]],\n", - "\n", - " [[-65563.5000]],\n", - "\n", - " [[-65545.8672]],\n", - "\n", - " [[-65518.7656]],\n", - "\n", - " [[-65588.8047]],\n", - "\n", - " [[-65668.4141]],\n", - "\n", - " [[-65626.1016]],\n", - "\n", - " [[-65648.2891]],\n", - "\n", - " [[-65523.2930]],\n", - "\n", - " [[-65506.9922]],\n", - "\n", - " [[-65676.7656]],\n", - "\n", - " [[-65541.0625]],\n", - "\n", - " [[-65565.5000]],\n", - "\n", - " [[-65631.0703]],\n", - "\n", - " [[-65599.7422]],\n", - "\n", - " [[-65581.5312]],\n", - "\n", - " [[-65595.5938]],\n", - "\n", - " [[-65577.3203]],\n", - "\n", - " [[-65530.6602]],\n", - "\n", - " [[-65619.4609]],\n", - "\n", - " [[-65542.2734]],\n", - "\n", - " [[-65502.8242]],\n", - "\n", - " [[-65553.2812]],\n", - "\n", - " [[-65600.4297]],\n", - "\n", - " [[-65557.4609]],\n", - "\n", - " [[-65559.8750]],\n", - "\n", - " [[-65552.4688]],\n", - "\n", - " [[-65571.2578]],\n", - "\n", - " [[-65499.8086]],\n", - "\n", - " [[-65574.0547]],\n", - "\n", - " [[-65652.7969]],\n", - "\n", - " [[-65581.5312]],\n", - "\n", - " [[-65524.6367]],\n", - "\n", - " [[-65552.9297]],\n", - "\n", - " [[-65566.7891]],\n", - "\n", - " [[-65550.2500]],\n", - "\n", - " [[-65565.4219]],\n", - "\n", - " [[-65553.4766]],\n", - "\n", - " [[-65602.5469]],\n", - "\n", - " [[-65498.4688]],\n", - "\n", - " [[-65566.7578]],\n", - "\n", - " [[-65523.8125]],\n", - "\n", - " [[-65490.4062]],\n", - "\n", - " [[-65542.8438]],\n", - "\n", - " [[-65650.7188]],\n", - "\n", - " [[-65556.3672]],\n", - "\n", - " [[-65569.1953]],\n", - "\n", - " [[-65643.9609]],\n", - "\n", - " [[-65556.5781]],\n", - "\n", - " [[-65719.3281]],\n", - "\n", - " [[-65566.4062]],\n", - "\n", - " [[-65635.2109]],\n", - "\n", - " [[-65463.0156]],\n", - "\n", - " [[-65599.2812]],\n", - "\n", - " [[-65512.1250]],\n", - "\n", - " [[-65568.7812]],\n", - "\n", - " [[-65594.3125]],\n", - "\n", - " [[-65533.6367]],\n", - "\n", - " [[-65578.9844]],\n", - "\n", - " [[-65602.1016]],\n", - "\n", - " [[-65546.9297]],\n", - "\n", - " [[-65658.5938]],\n", - "\n", - " [[-65550.1328]],\n", - "\n", - " [[-65486.2422]],\n", - "\n", - " [[-65618.8203]],\n", - "\n", - " [[-65649.1328]],\n", - "\n", - " [[-65515.7656]],\n", - "\n", - " [[-65521.0352]],\n", - "\n", - " [[-65605.9531]],\n", - "\n", - " [[-65694.6484]],\n", - "\n", - " [[-65605.4531]],\n", - "\n", - " [[-65591.6094]],\n", - "\n", - " [[-65639.0391]],\n", - "\n", - " [[-65480.4023]],\n", - "\n", - " [[-65492.9961]],\n", - "\n", - " [[-65585.7109]],\n", - "\n", - " [[-65518.8477]],\n", - "\n", - " [[-65613.4766]],\n", - "\n", - " [[-65580.9062]],\n", - "\n", - " [[-65490.0859]],\n", - "\n", - " [[-65541.7188]],\n", - "\n", - " [[-65603.3281]],\n", - "\n", - " [[-65617.7891]],\n", - "\n", - " [[-65537.2422]],\n", - "\n", - " [[-65620.4297]],\n", - "\n", - " [[-65496.8945]],\n", - "\n", - " [[-65541.3828]],\n", - "\n", - " [[-65550.0859]],\n", - "\n", - " [[-65550.2500]],\n", - "\n", - " [[-65579.6875]],\n", - "\n", - " [[-65555.9844]],\n", - "\n", - " [[-65466.9336]],\n", - "\n", - " [[-65590.1953]],\n", - "\n", - " [[-65572.0391]],\n", - "\n", - " [[-65704.2266]],\n", - "\n", - " [[-65675.0312]],\n", - "\n", - " [[-65654.9219]],\n", - "\n", - " [[-65534.8672]],\n", - "\n", - " [[-65506.6992]],\n", - "\n", - " [[-65567.6328]],\n", - "\n", - " [[-65501.7461]],\n", - "\n", - " [[-65545.9219]]], grad_fn=)\n", - "tensor([[[-63663.4219]],\n", - "\n", - " [[-63627.9688]],\n", - "\n", - " [[-63736.2227]],\n", - "\n", - " [[-63648.6523]],\n", - "\n", - " [[-63584.5234]],\n", - "\n", - " [[-63712.2734]],\n", - "\n", - " [[-63645.5977]],\n", - "\n", - " [[-63684.5234]],\n", - "\n", - " [[-63610.5820]],\n", - "\n", - " [[-63698.1875]],\n", - "\n", - " [[-63652.6836]],\n", - "\n", - " [[-63737.7578]],\n", - "\n", - " [[-63630.6445]],\n", - "\n", - " [[-63662.4883]],\n", - "\n", - " [[-63784.9766]],\n", - "\n", - " [[-63658.8672]],\n", - "\n", - " [[-63789.1875]],\n", - "\n", - " [[-63684.2461]],\n", - "\n", - " [[-63649.4922]],\n", - "\n", - " [[-63617.6055]],\n", - "\n", - " [[-63746.8906]],\n", - "\n", - " [[-63713.1172]],\n", - "\n", - " [[-63764.2734]],\n", - "\n", - " [[-63619.1133]],\n", - "\n", - " [[-63668.5000]],\n", - "\n", - " [[-63750.5391]],\n", - "\n", - " [[-63677.6992]],\n", - "\n", - " [[-63708.9961]],\n", - "\n", - " [[-63649.7930]],\n", - "\n", - " [[-63697.2930]],\n", - "\n", - " [[-63707.1953]],\n", - "\n", - " [[-63676.6250]],\n", - "\n", - " [[-63714.9102]],\n", - "\n", - " [[-63700.3164]],\n", - "\n", - " [[-63590.9102]],\n", - "\n", - " [[-63688.4258]],\n", - "\n", - " [[-63609.5703]],\n", - "\n", - " [[-63552.2344]],\n", - "\n", - " [[-63638.1758]],\n", - "\n", - " [[-63617.7500]],\n", - "\n", - " [[-63723.8750]],\n", - "\n", - " [[-63696.1953]],\n", - "\n", - " [[-63673.4336]],\n", - "\n", - " [[-63690.0586]],\n", - "\n", - " [[-63649.4297]],\n", - "\n", - " [[-63777.4805]],\n", - "\n", - " [[-63727.4883]],\n", - "\n", - " [[-63634.4492]],\n", - "\n", - " [[-63601.5898]],\n", - "\n", - " [[-63736.0391]],\n", - "\n", - " [[-63596.8281]],\n", - "\n", - " [[-63679.4805]],\n", - "\n", - " [[-63578.8945]],\n", - "\n", - " [[-63596.0000]],\n", - "\n", - " [[-63774.6680]],\n", - "\n", - " [[-63658.3398]],\n", - "\n", - " [[-63722.5000]],\n", - "\n", - " [[-63666.3711]],\n", - "\n", - " [[-63704.4531]],\n", - "\n", - " [[-63600.1914]],\n", - "\n", - " [[-63668.6523]],\n", - "\n", - " [[-63717.9023]],\n", - "\n", - " [[-63670.2227]],\n", - "\n", - " [[-63660.5859]],\n", - "\n", - " [[-63702.4727]],\n", - "\n", - " [[-63646.3359]],\n", - "\n", - " [[-63660.5547]],\n", - "\n", - " [[-63615.2773]],\n", - "\n", - " [[-63736.9414]],\n", - "\n", - " [[-63706.0742]],\n", - "\n", - " [[-63712.5508]],\n", - "\n", - " [[-63756.4727]],\n", - "\n", - " [[-63695.3516]],\n", - "\n", - " [[-63738.6094]],\n", - "\n", - " [[-63625.6016]],\n", - "\n", - " [[-63711.8438]],\n", - "\n", - " [[-63682.7930]],\n", - "\n", - " [[-63652.4414]],\n", - "\n", - " [[-63751.8906]],\n", - "\n", - " [[-63678.5430]],\n", - "\n", - " [[-63722.8828]],\n", - "\n", - " [[-63687.5078]],\n", - "\n", - " [[-63790.6602]],\n", - "\n", - " [[-63697.4648]],\n", - "\n", - " [[-63784.2383]],\n", - "\n", - " [[-63616.4648]],\n", - "\n", - " [[-63785.2266]],\n", - "\n", - " [[-63682.6367]],\n", - "\n", - " [[-63717.8086]],\n", - "\n", - " [[-63679.3125]],\n", - "\n", - " [[-63848.2422]],\n", - "\n", - " [[-63754.7695]],\n", - "\n", - " [[-63729.5273]],\n", - "\n", - " [[-63687.1641]],\n", - "\n", - " [[-63728.5273]],\n", - "\n", - " [[-63695.5156]],\n", - "\n", - " [[-63710.2969]],\n", - "\n", - " [[-63666.5742]],\n", - "\n", - " [[-63748.0039]],\n", - "\n", - " [[-63719.2266]],\n", - "\n", - " [[-63688.5117]],\n", - "\n", - " [[-63631.1875]],\n", - "\n", - " [[-63655.0508]],\n", - "\n", - " [[-63590.5703]],\n", - "\n", - " [[-63750.6875]],\n", - "\n", - " [[-63666.3398]],\n", - "\n", - " [[-63703.5352]],\n", - "\n", - " [[-63681.7031]],\n", - "\n", - " [[-63612.6914]],\n", - "\n", - " [[-63645.5508]],\n", - "\n", - " [[-63807.9141]],\n", - "\n", - " [[-63814.4805]],\n", - "\n", - " [[-63661.8359]],\n", - "\n", - " [[-63671.1758]],\n", - "\n", - " [[-63677.6094]],\n", - "\n", - " [[-63690.6914]],\n", - "\n", - " [[-63653.4609]],\n", - "\n", - " [[-63806.0078]],\n", - "\n", - " [[-63774.4883]],\n", - "\n", - " [[-63669.8867]],\n", - "\n", - " [[-63715.5430]],\n", - "\n", - " [[-63707.1289]],\n", - "\n", - " [[-63693.4023]],\n", - "\n", - " [[-63694.4141]],\n", - "\n", - " [[-63694.1055]],\n", - "\n", - " [[-63751.5625]],\n", - "\n", - " [[-63736.3477]],\n", - "\n", - " [[-63646.5977]],\n", - "\n", - " [[-63751.2266]],\n", - "\n", - " [[-63660.5977]],\n", - "\n", - " [[-63569.6602]],\n", - "\n", - " [[-63664.5078]],\n", - "\n", - " [[-63667.5859]],\n", - "\n", - " [[-63707.8203]],\n", - "\n", - " [[-63643.4727]],\n", - "\n", - " [[-63676.4688]],\n", - "\n", - " [[-63694.7852]],\n", - "\n", - " [[-63581.5820]],\n", - "\n", - " [[-63654.2734]],\n", - "\n", - " [[-63681.7812]],\n", - "\n", - " [[-63612.9727]],\n", - "\n", - " [[-63624.6641]],\n", - "\n", - " [[-63680.7383]],\n", - "\n", - " [[-63663.4961]],\n", - "\n", - " [[-63656.9883]],\n", - "\n", - " [[-63709.7266]],\n", - "\n", - " [[-63732.4883]],\n", - "\n", - " [[-63738.1094]],\n", - "\n", - " [[-63733.0742]],\n", - "\n", - " [[-63701.4961]],\n", - "\n", - " [[-63655.3945]],\n", - "\n", - " [[-63766.7266]],\n", - "\n", - " [[-63647.4336]],\n", - "\n", - " [[-63626.3398]],\n", - "\n", - " [[-63694.2188]],\n", - "\n", - " [[-63710.9609]],\n", - "\n", - " [[-63685.8672]],\n", - "\n", - " [[-63619.4062]],\n", - "\n", - " [[-63661.3477]],\n", - "\n", - " [[-63613.0508]],\n", - "\n", - " [[-63713.7422]],\n", - "\n", - " [[-63746.3047]],\n", - "\n", - " [[-63846.1367]],\n", - "\n", - " [[-63594.2148]],\n", - "\n", - " [[-63647.5703]],\n", - "\n", - " [[-63740.7734]],\n", - "\n", - " [[-63648.8281]],\n", - "\n", - " [[-63780.4180]],\n", - "\n", - " [[-63684.7656]],\n", - "\n", - " [[-63623.2891]],\n", - "\n", - " [[-63709.0859]],\n", - "\n", - " [[-63684.6602]],\n", - "\n", - " [[-63736.1328]],\n", - "\n", - " [[-63747.0312]],\n", - "\n", - " [[-63729.3008]],\n", - "\n", - " [[-63677.4727]],\n", - "\n", - " [[-63585.8750]],\n", - "\n", - " [[-63737.7031]],\n", - "\n", - " [[-63657.7109]],\n", - "\n", - " [[-63700.3438]],\n", - "\n", - " [[-63578.2422]],\n", - "\n", - " [[-63730.1406]],\n", - "\n", - " [[-63676.1094]],\n", - "\n", - " [[-63628.2109]],\n", - "\n", - " [[-63733.8789]],\n", - "\n", - " [[-63595.6797]],\n", - "\n", - " [[-63744.2617]],\n", - "\n", - " [[-63656.5352]],\n", - "\n", - " [[-63595.0312]],\n", - "\n", - " [[-63774.8555]],\n", - "\n", - " [[-63708.0938]],\n", - "\n", - " [[-63700.1133]],\n", - "\n", - " [[-63696.6016]],\n", - "\n", - " [[-63783.7539]],\n", - "\n", - " [[-63690.0156]],\n", - "\n", - " [[-63578.1836]],\n", - "\n", - " [[-63756.1133]],\n", - "\n", - " [[-63603.8008]],\n", - "\n", - " [[-63778.4180]],\n", - "\n", - " [[-63620.5312]],\n", - "\n", - " [[-63653.5312]],\n", - "\n", - " [[-63708.8164]],\n", - "\n", - " [[-63673.7812]],\n", - "\n", - " [[-63727.6914]],\n", - "\n", - " [[-63687.6875]],\n", - "\n", - " [[-63590.8281]],\n", - "\n", - " [[-63693.7461]],\n", - "\n", - " [[-63634.8594]],\n", - "\n", - " [[-63688.6680]],\n", - "\n", - " [[-63653.9258]],\n", - "\n", - " [[-63747.6250]],\n", - "\n", - " [[-63646.5664]],\n", - "\n", - " [[-63670.7656]],\n", - "\n", - " [[-63677.5742]],\n", - "\n", - " [[-63596.4141]],\n", - "\n", - " [[-63636.8047]],\n", - "\n", - " [[-63691.1992]],\n", - "\n", - " [[-63661.9805]],\n", - "\n", - " [[-63712.5859]],\n", - "\n", - " [[-63620.6250]],\n", - "\n", - " [[-63628.2070]],\n", - "\n", - " [[-63655.9102]],\n", - "\n", - " [[-63640.0078]],\n", - "\n", - " [[-63653.3750]],\n", - "\n", - " [[-63670.5820]],\n", - "\n", - " [[-63748.7383]],\n", - "\n", - " [[-63707.1719]],\n", - "\n", - " [[-63677.4688]],\n", - "\n", - " [[-63677.2422]],\n", - "\n", - " [[-63668.5000]],\n", - "\n", - " [[-63722.0352]],\n", - "\n", - " [[-63722.7891]],\n", - "\n", - " [[-63744.0586]],\n", - "\n", - " [[-63771.3828]],\n", - "\n", - " [[-63798.1094]],\n", - "\n", - " [[-63660.8477]],\n", - "\n", - " [[-63722.5625]],\n", - "\n", - " [[-63759.0625]],\n", - "\n", - " [[-63727.9688]],\n", - "\n", - " [[-63613.4922]],\n", - "\n", - " [[-63706.9648]],\n", - "\n", - " [[-63718.7852]],\n", - "\n", - " [[-63769.5625]],\n", - "\n", - " [[-63728.8555]],\n", - "\n", - " [[-63870.9961]],\n", - "\n", - " [[-63722.0430]],\n", - "\n", - " [[-63712.7266]],\n", - "\n", - " [[-63684.7578]],\n", - "\n", - " [[-63584.6562]],\n", - "\n", - " [[-63740.9375]],\n", - "\n", - " [[-63695.5273]],\n", - "\n", - " [[-63676.1133]],\n", - "\n", - " [[-63675.5039]],\n", - "\n", - " [[-63649.0469]],\n", - "\n", - " [[-63854.3203]],\n", - "\n", - " [[-63681.1562]]], grad_fn=)\n", - "tensor([[[-61894.6992]],\n", - "\n", - " [[-61801.3086]],\n", - "\n", - " [[-61845.5586]],\n", - "\n", - " [[-61861.3828]],\n", - "\n", - " [[-61814.8477]],\n", - "\n", - " [[-61717.4141]],\n", - "\n", - " [[-61821.4922]],\n", - "\n", - " [[-61831.6484]],\n", - "\n", - " [[-61831.3555]],\n", - "\n", - " [[-61844.6094]],\n", - "\n", - " [[-61720.5742]],\n", - "\n", - " [[-61806.0000]],\n", - "\n", - " [[-61828.8398]],\n", - "\n", - " [[-61836.9180]],\n", - "\n", - " [[-61872.0977]],\n", - "\n", - " [[-61845.4883]],\n", - "\n", - " [[-61895.4141]],\n", - "\n", - " [[-61792.1289]],\n", - "\n", - " [[-61865.8906]],\n", - "\n", - " [[-61712.2344]],\n", - "\n", - " [[-61722.4688]],\n", - "\n", - " [[-61771.8477]],\n", - "\n", - " [[-61873.1602]],\n", - "\n", - " [[-61728.5352]],\n", - "\n", - " [[-61826.6406]],\n", - "\n", - " [[-61800.8516]],\n", - "\n", - " [[-61891.1289]],\n", - "\n", - " [[-61900.4805]],\n", - "\n", - " [[-61786.6055]],\n", - "\n", - " [[-61804.8828]],\n", - "\n", - " [[-61804.9258]],\n", - "\n", - " [[-61874.1328]],\n", - "\n", - " [[-61727.9023]],\n", - "\n", - " [[-61774.4453]],\n", - "\n", - " [[-61782.9141]],\n", - "\n", - " [[-61910.6250]],\n", - "\n", - " [[-61827.0977]],\n", - "\n", - " [[-61725.2422]],\n", - "\n", - " [[-61845.7539]],\n", - "\n", - " [[-61874.3633]],\n", - "\n", - " [[-61772.1094]],\n", - "\n", - " [[-61761.0977]],\n", - "\n", - " [[-61833.6836]],\n", - "\n", - " [[-61871.8867]],\n", - "\n", - " [[-61859.0352]],\n", - "\n", - " [[-61708.2461]],\n", - "\n", - " [[-61825.0117]],\n", - "\n", - " [[-61878.5898]],\n", - "\n", - " [[-61905.0977]],\n", - "\n", - " [[-61773.4258]],\n", - "\n", - " [[-61703.2734]],\n", - "\n", - " [[-61807.0234]],\n", - "\n", - " [[-61701.6680]],\n", - "\n", - " [[-61819.9219]],\n", - "\n", - " [[-61777.6328]],\n", - "\n", - " [[-61861.0820]],\n", - "\n", - " [[-61880.9336]],\n", - "\n", - " [[-61835.3438]],\n", - "\n", - " [[-61809.8867]],\n", - "\n", - " [[-61837.4219]],\n", - "\n", - " [[-61800.5625]],\n", - "\n", - " [[-61843.7578]],\n", - "\n", - " [[-61886.5977]],\n", - "\n", - " [[-61912.4805]],\n", - "\n", - " [[-61893.1133]],\n", - "\n", - " [[-61956.5312]],\n", - "\n", - " [[-61817.4414]],\n", - "\n", - " [[-61729.1406]],\n", - "\n", - " [[-61832.3438]],\n", - "\n", - " [[-61815.2969]],\n", - "\n", - " [[-61749.6328]],\n", - "\n", - " [[-61829.2500]],\n", - "\n", - " [[-61759.7891]],\n", - "\n", - " [[-61738.3555]],\n", - "\n", - " [[-61817.2031]],\n", - "\n", - " [[-61816.6758]],\n", - "\n", - " [[-61816.0586]],\n", - "\n", - " [[-61789.1992]],\n", - "\n", - " [[-61794.0938]],\n", - "\n", - " [[-61935.9336]],\n", - "\n", - " [[-61866.5703]],\n", - "\n", - " [[-61704.3086]],\n", - "\n", - " [[-61742.9766]],\n", - "\n", - " [[-61877.1133]],\n", - "\n", - " [[-61816.2500]],\n", - "\n", - " [[-61899.5234]],\n", - "\n", - " [[-61886.3438]],\n", - "\n", - " [[-61945.2031]],\n", - "\n", - " [[-61821.7461]],\n", - "\n", - " [[-61761.6445]],\n", - "\n", - " [[-61883.5859]],\n", - "\n", - " [[-61861.0156]],\n", - "\n", - " [[-61823.9727]],\n", - "\n", - " [[-61806.5078]],\n", - "\n", - " [[-61824.4492]],\n", - "\n", - " [[-61827.9180]],\n", - "\n", - " [[-61749.6992]],\n", - "\n", - " [[-61928.0312]],\n", - "\n", - " [[-61872.7500]],\n", - "\n", - " [[-61963.8359]],\n", - "\n", - " [[-61881.8086]],\n", - "\n", - " [[-61853.0352]],\n", - "\n", - " [[-61829.3750]],\n", - "\n", - " [[-61879.2305]],\n", - "\n", - " [[-61707.1836]],\n", - "\n", - " [[-61856.3555]],\n", - "\n", - " [[-61855.3789]],\n", - "\n", - " [[-61832.0781]],\n", - "\n", - " [[-61769.1016]],\n", - "\n", - " [[-61832.9883]],\n", - "\n", - " [[-61851.4336]],\n", - "\n", - " [[-61850.5820]],\n", - "\n", - " [[-61937.1602]],\n", - "\n", - " [[-61764.1602]],\n", - "\n", - " [[-61709.8789]],\n", - "\n", - " [[-61856.5938]],\n", - "\n", - " [[-61900.3008]],\n", - "\n", - " [[-61860.4844]],\n", - "\n", - " [[-61875.9297]],\n", - "\n", - " [[-61829.9258]],\n", - "\n", - " [[-61855.3398]],\n", - "\n", - " [[-61744.5625]],\n", - "\n", - " [[-61802.8828]],\n", - "\n", - " [[-61795.6445]],\n", - "\n", - " [[-61905.5234]],\n", - "\n", - " [[-61883.4180]],\n", - "\n", - " [[-61831.6914]],\n", - "\n", - " [[-61913.9922]],\n", - "\n", - " [[-61824.5352]],\n", - "\n", - " [[-61791.1016]],\n", - "\n", - " [[-61929.7969]],\n", - "\n", - " [[-61857.0273]],\n", - "\n", - " [[-61773.3945]],\n", - "\n", - " [[-61843.8555]],\n", - "\n", - " [[-61829.6953]],\n", - "\n", - " [[-61753.8594]],\n", - "\n", - " [[-61811.1328]],\n", - "\n", - " [[-61761.1992]],\n", - "\n", - " [[-61960.2109]],\n", - "\n", - " [[-61859.9570]],\n", - "\n", - " [[-61789.6328]],\n", - "\n", - " [[-61846.9023]],\n", - "\n", - " [[-61916.7148]],\n", - "\n", - " [[-61843.3047]],\n", - "\n", - " [[-61863.2930]],\n", - "\n", - " [[-61881.8789]],\n", - "\n", - " [[-61848.0391]],\n", - "\n", - " [[-61789.3203]],\n", - "\n", - " [[-61852.9688]],\n", - "\n", - " [[-61746.6836]],\n", - "\n", - " [[-61835.8359]],\n", - "\n", - " [[-61870.6211]],\n", - "\n", - " [[-61893.9492]],\n", - "\n", - " [[-61847.9141]],\n", - "\n", - " [[-61765.0859]],\n", - "\n", - " [[-61759.1289]],\n", - "\n", - " [[-61798.9844]],\n", - "\n", - " [[-61821.2852]],\n", - "\n", - " [[-61813.5547]],\n", - "\n", - " [[-61913.8047]],\n", - "\n", - " [[-61906.4492]],\n", - "\n", - " [[-61752.2773]],\n", - "\n", - " [[-61815.8008]],\n", - "\n", - " [[-61867.2734]],\n", - "\n", - " [[-61820.8711]],\n", - "\n", - " [[-61818.8477]],\n", - "\n", - " [[-61716.9414]],\n", - "\n", - " [[-61840.4648]],\n", - "\n", - " [[-61739.1406]],\n", - "\n", - " [[-61858.3672]],\n", - "\n", - " [[-61808.3242]],\n", - "\n", - " [[-61803.6758]],\n", - "\n", - " [[-61794.9023]],\n", - "\n", - " [[-61851.3438]],\n", - "\n", - " [[-61871.2695]],\n", - "\n", - " [[-61787.9961]],\n", - "\n", - " [[-61842.4492]],\n", - "\n", - " [[-61814.8242]],\n", - "\n", - " [[-61733.5547]],\n", - "\n", - " [[-61839.3438]],\n", - "\n", - " [[-61809.5234]],\n", - "\n", - " [[-61799.8789]],\n", - "\n", - " [[-61868.7734]],\n", - "\n", - " [[-61816.2891]],\n", - "\n", - " [[-61732.8398]],\n", - "\n", - " [[-61952.5234]],\n", - "\n", - " [[-61780.7695]],\n", - "\n", - " [[-61884.1719]],\n", - "\n", - " [[-61813.5234]],\n", - "\n", - " [[-61806.1094]],\n", - "\n", - " [[-61838.5469]],\n", - "\n", - " [[-61962.8984]],\n", - "\n", - " [[-61799.5078]],\n", - "\n", - " [[-61854.1172]],\n", - "\n", - " [[-61787.8164]],\n", - "\n", - " [[-61825.9844]],\n", - "\n", - " [[-61727.9844]],\n", - "\n", - " [[-61844.9844]],\n", - "\n", - " [[-61770.6367]],\n", - "\n", - " [[-61812.7578]],\n", - "\n", - " [[-61881.7344]],\n", - "\n", - " [[-61723.5234]],\n", - "\n", - " [[-61927.8359]],\n", - "\n", - " [[-61751.2773]],\n", - "\n", - " [[-61868.4141]],\n", - "\n", - " [[-61827.0938]],\n", - "\n", - " [[-61856.3125]],\n", - "\n", - " [[-61860.8086]],\n", - "\n", - " [[-61881.4062]],\n", - "\n", - " [[-61863.3828]],\n", - "\n", - " [[-61965.4844]],\n", - "\n", - " [[-61873.1211]],\n", - "\n", - " [[-61791.8633]],\n", - "\n", - " [[-61848.9297]],\n", - "\n", - " [[-61831.2148]],\n", - "\n", - " [[-61829.5352]],\n", - "\n", - " [[-61898.4570]],\n", - "\n", - " [[-61824.4609]],\n", - "\n", - " [[-61838.1680]],\n", - "\n", - " [[-61738.1133]],\n", - "\n", - " [[-61866.5547]],\n", - "\n", - " [[-61805.2500]],\n", - "\n", - " [[-61956.5352]],\n", - "\n", - " [[-61848.4883]],\n", - "\n", - " [[-61840.4492]],\n", - "\n", - " [[-61694.2305]],\n", - "\n", - " [[-61793.1289]],\n", - "\n", - " [[-61780.7109]],\n", - "\n", - " [[-61842.0977]],\n", - "\n", - " [[-61729.0430]],\n", - "\n", - " [[-61753.3945]],\n", - "\n", - " [[-61865.6875]],\n", - "\n", - " [[-61852.1523]],\n", - "\n", - " [[-61814.5703]],\n", - "\n", - " [[-61827.1250]],\n", - "\n", - " [[-61822.0625]],\n", - "\n", - " [[-61937.5938]],\n", - "\n", - " [[-61782.3281]],\n", - "\n", - " [[-61773.3984]],\n", - "\n", - " [[-61738.1484]],\n", - "\n", - " [[-61869.5078]],\n", - "\n", - " [[-61753.5234]],\n", - "\n", - " [[-61858.3594]],\n", - "\n", - " [[-61782.6562]],\n", - "\n", - " [[-61827.9570]],\n", - "\n", - " [[-61873.5273]],\n", - "\n", - " [[-61920.5469]],\n", - "\n", - " [[-61949.7812]],\n", - "\n", - " [[-61821.2344]],\n", - "\n", - " [[-61870.0898]],\n", - "\n", - " [[-61807.2539]],\n", - "\n", - " [[-61860.1758]],\n", - "\n", - " [[-61873.5703]],\n", - "\n", - " [[-61711.7812]],\n", - "\n", - " [[-61898.9023]],\n", - "\n", - " [[-61742.9766]]], grad_fn=)\n", - "tensor([[[-60038.2188]],\n", - "\n", - " [[-60048.1562]],\n", - "\n", - " [[-59983.8086]],\n", - "\n", - " [[-60007.6211]],\n", - "\n", - " [[-60028.2344]],\n", - "\n", - " [[-59993.9141]],\n", - "\n", - " [[-60061.9297]],\n", - "\n", - " [[-60053.0000]],\n", - "\n", - " [[-60007.7461]],\n", - "\n", - " [[-60059.1016]],\n", - "\n", - " [[-59980.8242]],\n", - "\n", - " [[-60001.8789]],\n", - "\n", - " [[-60001.8867]],\n", - "\n", - " [[-59958.2031]],\n", - "\n", - " [[-59973.9492]],\n", - "\n", - " [[-59955.2969]],\n", - "\n", - " [[-59997.6523]],\n", - "\n", - " [[-60041.3164]],\n", - "\n", - " [[-59974.9648]],\n", - "\n", - " [[-60111.5547]],\n", - "\n", - " [[-59941.7383]],\n", - "\n", - " [[-59998.2773]],\n", - "\n", - " [[-60025.3984]],\n", - "\n", - " [[-60045.8164]],\n", - "\n", - " [[-60075.3438]],\n", - "\n", - " [[-60089.8672]],\n", - "\n", - " [[-59971.8438]],\n", - "\n", - " [[-60023.1484]],\n", - "\n", - " [[-60036.8555]],\n", - "\n", - " [[-59920.1797]],\n", - "\n", - " [[-60017.7656]],\n", - "\n", - " [[-60052.7109]],\n", - "\n", - " [[-60125.4219]],\n", - "\n", - " [[-59991.1055]],\n", - "\n", - " [[-59923.8086]],\n", - "\n", - " [[-60015.1016]],\n", - "\n", - " [[-59973.0977]],\n", - "\n", - " [[-59933.5664]],\n", - "\n", - " [[-60067.3984]],\n", - "\n", - " [[-60010.2773]],\n", - "\n", - " [[-60107.3086]],\n", - "\n", - " [[-60027.9531]],\n", - "\n", - " [[-60010.1562]],\n", - "\n", - " [[-59962.5742]],\n", - "\n", - " [[-60030.1992]],\n", - "\n", - " [[-59972.6914]],\n", - "\n", - " [[-60038.0586]],\n", - "\n", - " [[-60024.0078]],\n", - "\n", - " [[-59938.8320]],\n", - "\n", - " [[-59920.5859]],\n", - "\n", - " [[-60081.6641]],\n", - "\n", - " [[-60086.3984]],\n", - "\n", - " [[-60152.0977]],\n", - "\n", - " [[-60060.4102]],\n", - "\n", - " [[-60177.3594]],\n", - "\n", - " [[-60035.6016]],\n", - "\n", - " [[-60060.2109]],\n", - "\n", - " [[-59965.9062]],\n", - "\n", - " [[-60031.0625]],\n", - "\n", - " [[-60081.8750]],\n", - "\n", - " [[-60091.1602]],\n", - "\n", - " [[-59884.3398]],\n", - "\n", - " [[-59946.0391]],\n", - "\n", - " [[-60030.6875]],\n", - "\n", - " [[-59960.8906]],\n", - "\n", - " [[-59981.5625]],\n", - "\n", - " [[-60062.8828]],\n", - "\n", - " [[-59969.4375]],\n", - "\n", - " [[-59971.4492]],\n", - "\n", - " [[-60091.9492]],\n", - "\n", - " [[-59893.3633]],\n", - "\n", - " [[-60053.8086]],\n", - "\n", - " [[-60020.5938]],\n", - "\n", - " [[-60053.7344]],\n", - "\n", - " [[-59987.1641]],\n", - "\n", - " [[-59966.5078]],\n", - "\n", - " [[-59915.7930]],\n", - "\n", - " [[-60024.9062]],\n", - "\n", - " [[-60041.5781]],\n", - "\n", - " [[-59908.2969]],\n", - "\n", - " [[-60036.0547]],\n", - "\n", - " [[-59967.0273]],\n", - "\n", - " [[-59992.5938]],\n", - "\n", - " [[-60006.6797]],\n", - "\n", - " [[-60064.2305]],\n", - "\n", - " [[-59928.1133]],\n", - "\n", - " [[-59986.2148]],\n", - "\n", - " [[-60055.6523]],\n", - "\n", - " [[-59978.6211]],\n", - "\n", - " [[-60071.6367]],\n", - "\n", - " [[-59939.0820]],\n", - "\n", - " [[-60015.2812]],\n", - "\n", - " [[-60087.0078]],\n", - "\n", - " [[-60067.2148]],\n", - "\n", - " [[-59915.0898]],\n", - "\n", - " [[-60071.8086]],\n", - "\n", - " [[-59963.0273]],\n", - "\n", - " [[-60035.7539]],\n", - "\n", - " [[-59923.7344]],\n", - "\n", - " [[-59979.7266]],\n", - "\n", - " [[-60024.2539]],\n", - "\n", - " [[-60043.9688]],\n", - "\n", - " [[-59913.2305]],\n", - "\n", - " [[-60055.1328]],\n", - "\n", - " [[-60005.1914]],\n", - "\n", - " [[-60034.8750]],\n", - "\n", - " [[-60010.8164]],\n", - "\n", - " [[-60010.1875]],\n", - "\n", - " [[-60006.5859]],\n", - "\n", - " [[-60035.8008]],\n", - "\n", - " [[-60016.2656]],\n", - "\n", - " [[-59985.0156]],\n", - "\n", - " [[-60054.7305]],\n", - "\n", - " [[-60091.1055]],\n", - "\n", - " [[-60021.3633]],\n", - "\n", - " [[-60042.5195]],\n", - "\n", - " [[-60071.1289]],\n", - "\n", - " [[-60033.9922]],\n", - "\n", - " [[-59977.5781]],\n", - "\n", - " [[-59958.2422]],\n", - "\n", - " [[-59982.6992]],\n", - "\n", - " [[-60017.7734]],\n", - "\n", - " [[-59932.5352]],\n", - "\n", - " [[-60031.5312]],\n", - "\n", - " [[-60023.2344]],\n", - "\n", - " [[-60013.8008]],\n", - "\n", - " [[-59909.2461]],\n", - "\n", - " [[-60039.4492]],\n", - "\n", - " [[-60066.3477]],\n", - "\n", - " [[-59979.2422]],\n", - "\n", - " [[-60093.2148]],\n", - "\n", - " [[-59992.1836]],\n", - "\n", - " [[-59987.9609]],\n", - "\n", - " [[-59951.2617]],\n", - "\n", - " [[-59943.2500]],\n", - "\n", - " [[-59983.4414]],\n", - "\n", - " [[-60028.8633]],\n", - "\n", - " [[-60045.2656]],\n", - "\n", - " [[-59985.8711]],\n", - "\n", - " [[-60133.2773]],\n", - "\n", - " [[-60024.4922]],\n", - "\n", - " [[-59936.8672]],\n", - "\n", - " [[-60035.5430]],\n", - "\n", - " [[-59916.7539]],\n", - "\n", - " [[-60027.4219]],\n", - "\n", - " [[-60131.8789]],\n", - "\n", - " [[-59968.2656]],\n", - "\n", - " [[-60056.2461]],\n", - "\n", - " [[-60013.8906]],\n", - "\n", - " [[-59990.9102]],\n", - "\n", - " [[-60050.1719]],\n", - "\n", - " [[-60077.2305]],\n", - "\n", - " [[-60100.0938]],\n", - "\n", - " [[-60115.8555]],\n", - "\n", - " [[-59896.1094]],\n", - "\n", - " [[-60016.0352]],\n", - "\n", - " [[-59960.6133]],\n", - "\n", - " [[-60046.2578]],\n", - "\n", - " [[-60042.2188]],\n", - "\n", - " [[-60075.8398]],\n", - "\n", - " [[-60054.1445]],\n", - "\n", - " [[-60060.7383]],\n", - "\n", - " [[-60046.1797]],\n", - "\n", - " [[-60032.2695]],\n", - "\n", - " [[-60052.1328]],\n", - "\n", - " [[-60093.9102]],\n", - "\n", - " [[-60011.8516]],\n", - "\n", - " [[-60020.7422]],\n", - "\n", - " [[-59938.4258]],\n", - "\n", - " [[-60048.0781]],\n", - "\n", - " [[-60007.6094]],\n", - "\n", - " [[-60033.4453]],\n", - "\n", - " [[-59947.2031]],\n", - "\n", - " [[-59899.5078]],\n", - "\n", - " [[-60001.9844]],\n", - "\n", - " [[-60024.4219]],\n", - "\n", - " [[-59999.5508]],\n", - "\n", - " [[-60022.5625]],\n", - "\n", - " [[-60015.3633]],\n", - "\n", - " [[-60003.4883]],\n", - "\n", - " [[-59958.7695]],\n", - "\n", - " [[-59914.2070]],\n", - "\n", - " [[-59981.7188]],\n", - "\n", - " [[-60010.2070]],\n", - "\n", - " [[-59997.8867]],\n", - "\n", - " [[-60026.5703]],\n", - "\n", - " [[-60065.3320]],\n", - "\n", - " [[-60004.5938]],\n", - "\n", - " [[-60030.6875]],\n", - "\n", - " [[-60004.2109]],\n", - "\n", - " [[-60113.3125]],\n", - "\n", - " [[-59969.5781]],\n", - "\n", - " [[-60034.7891]],\n", - "\n", - " [[-59889.9961]],\n", - "\n", - " [[-60011.9141]],\n", - "\n", - " [[-60078.5742]],\n", - "\n", - " [[-60016.8984]],\n", - "\n", - " [[-59993.2148]],\n", - "\n", - " [[-60009.8398]],\n", - "\n", - " [[-59953.9180]],\n", - "\n", - " [[-60044.0664]],\n", - "\n", - " [[-60086.2578]],\n", - "\n", - " [[-59949.3242]],\n", - "\n", - " [[-59957.2500]],\n", - "\n", - " [[-60047.4336]],\n", - "\n", - " [[-60001.7969]],\n", - "\n", - " [[-59976.0234]],\n", - "\n", - " [[-60031.9375]],\n", - "\n", - " [[-59970.5742]],\n", - "\n", - " [[-60086.0547]],\n", - "\n", - " [[-59969.5820]],\n", - "\n", - " [[-60060.6602]],\n", - "\n", - " [[-60044.6250]],\n", - "\n", - " [[-60042.8516]],\n", - "\n", - " [[-60102.2812]],\n", - "\n", - " [[-60106.5156]],\n", - "\n", - " [[-60047.8555]],\n", - "\n", - " [[-60064.1875]],\n", - "\n", - " [[-60082.2617]],\n", - "\n", - " [[-60016.6992]],\n", - "\n", - " [[-60000.1797]],\n", - "\n", - " [[-60062.4375]],\n", - "\n", - " [[-60074.8516]],\n", - "\n", - " [[-59992.3516]],\n", - "\n", - " [[-60127.2852]],\n", - "\n", - " [[-59903.8711]],\n", - "\n", - " [[-60030.9766]],\n", - "\n", - " [[-59922.5156]],\n", - "\n", - " [[-60049.8945]],\n", - "\n", - " [[-59973.7070]],\n", - "\n", - " [[-60036.3125]],\n", - "\n", - " [[-60021.2500]],\n", - "\n", - " [[-59949.6992]],\n", - "\n", - " [[-60018.8281]],\n", - "\n", - " [[-60013.2891]],\n", - "\n", - " [[-59995.0547]],\n", - "\n", - " [[-60086.0977]],\n", - "\n", - " [[-59946.0156]],\n", - "\n", - " [[-60076.2852]],\n", - "\n", - " [[-59974.9648]],\n", - "\n", - " [[-60065.1250]],\n", - "\n", - " [[-60095.9648]],\n", - "\n", - " [[-59895.3984]],\n", - "\n", - " [[-60018.5430]],\n", - "\n", - " [[-60001.7656]],\n", - "\n", - " [[-59896.3633]],\n", - "\n", - " [[-60063.6992]],\n", - "\n", - " [[-60038.4648]],\n", - "\n", - " [[-60020.5859]],\n", - "\n", - " [[-60001.5898]],\n", - "\n", - " [[-60131.6172]],\n", - "\n", - " [[-60060.8164]],\n", - "\n", - " [[-59937.9648]],\n", - "\n", - " [[-60068.8398]],\n", - "\n", - " [[-59908.6602]],\n", - "\n", - " [[-60058.9219]]], grad_fn=)\n", - "tensor([[[-58265.7734]],\n", - "\n", - " [[-58265.0195]],\n", - "\n", - " [[-58318.6680]],\n", - "\n", - " [[-58308.4375]],\n", - "\n", - " [[-58385.9023]],\n", - "\n", - " [[-58411.1836]],\n", - "\n", - " [[-58268.1797]],\n", - "\n", - " [[-58168.4180]],\n", - "\n", - " [[-58235.1992]],\n", - "\n", - " [[-58237.3477]],\n", - "\n", - " [[-58341.5508]],\n", - "\n", - " [[-58208.5078]],\n", - "\n", - " [[-58149.8984]],\n", - "\n", - " [[-58280.7969]],\n", - "\n", - " [[-58271.2852]],\n", - "\n", - " [[-58257.6758]],\n", - "\n", - " [[-58319.9141]],\n", - "\n", - " [[-58318.4336]],\n", - "\n", - " [[-58218.8008]],\n", - "\n", - " [[-58112.2422]],\n", - "\n", - " [[-58299.7734]],\n", - "\n", - " [[-58152.0586]],\n", - "\n", - " [[-58151.0000]],\n", - "\n", - " [[-58327.8672]],\n", - "\n", - " [[-58218.1094]],\n", - "\n", - " [[-58310.2266]],\n", - "\n", - " [[-58250.2812]],\n", - "\n", - " [[-58208.1016]],\n", - "\n", - " [[-58267.6797]],\n", - "\n", - " [[-58205.6016]],\n", - "\n", - " [[-58233.0078]],\n", - "\n", - " [[-58163.4297]],\n", - "\n", - " [[-58150.8008]],\n", - "\n", - " [[-58327.9258]],\n", - "\n", - " [[-58206.0977]],\n", - "\n", - " [[-58229.0117]],\n", - "\n", - " [[-58192.2305]],\n", - "\n", - " [[-58139.8867]],\n", - "\n", - " [[-58192.9766]],\n", - "\n", - " [[-58341.5352]],\n", - "\n", - " [[-58316.7227]],\n", - "\n", - " [[-58173.4297]],\n", - "\n", - " [[-58301.7227]],\n", - "\n", - " [[-58263.7773]],\n", - "\n", - " [[-58312.9492]],\n", - "\n", - " [[-58243.7461]],\n", - "\n", - " [[-58255.0469]],\n", - "\n", - " [[-58334.4805]],\n", - "\n", - " [[-58223.7734]],\n", - "\n", - " [[-58211.4688]],\n", - "\n", - " [[-58258.9766]],\n", - "\n", - " [[-58239.5234]],\n", - "\n", - " [[-58271.2812]],\n", - "\n", - " [[-58222.3359]],\n", - "\n", - " [[-58159.5430]],\n", - "\n", - " [[-58145.7031]],\n", - "\n", - " [[-58259.6211]],\n", - "\n", - " [[-58197.6797]],\n", - "\n", - " [[-58260.2734]],\n", - "\n", - " [[-58127.3555]],\n", - "\n", - " [[-58282.4766]],\n", - "\n", - " [[-58166.4531]],\n", - "\n", - " [[-58184.7344]],\n", - "\n", - " [[-58205.1445]],\n", - "\n", - " [[-58224.0195]],\n", - "\n", - " [[-58238.8984]],\n", - "\n", - " [[-58228.6758]],\n", - "\n", - " [[-58229.7031]],\n", - "\n", - " [[-58144.3594]],\n", - "\n", - " [[-58199.9961]],\n", - "\n", - " [[-58218.3789]],\n", - "\n", - " [[-58307.7773]],\n", - "\n", - " [[-58247.2695]],\n", - "\n", - " [[-58291.5508]],\n", - "\n", - " [[-58127.6406]],\n", - "\n", - " [[-58210.5820]],\n", - "\n", - " [[-58309.2930]],\n", - "\n", - " [[-58151.7070]],\n", - "\n", - " [[-58254.7852]],\n", - "\n", - " [[-58334.6289]],\n", - "\n", - " [[-58273.1250]],\n", - "\n", - " [[-58298.7539]],\n", - "\n", - " [[-58179.4258]],\n", - "\n", - " [[-58268.6172]],\n", - "\n", - " [[-58135.2969]],\n", - "\n", - " [[-58295.8008]],\n", - "\n", - " [[-58161.1523]],\n", - "\n", - " [[-58238.7461]],\n", - "\n", - " [[-58136.6016]],\n", - "\n", - " [[-58389.7305]],\n", - "\n", - " [[-58216.8281]],\n", - "\n", - " [[-58188.7461]],\n", - "\n", - " [[-58217.1641]],\n", - "\n", - " [[-58222.1836]],\n", - "\n", - " [[-58285.9258]],\n", - "\n", - " [[-58223.4922]],\n", - "\n", - " [[-58186.9766]],\n", - "\n", - " [[-58202.7969]],\n", - "\n", - " [[-58289.9453]],\n", - "\n", - " [[-58224.6211]],\n", - "\n", - " [[-58174.3242]],\n", - "\n", - " [[-58307.3633]],\n", - "\n", - " [[-58283.9180]],\n", - "\n", - " [[-58248.8828]],\n", - "\n", - " [[-58238.5273]],\n", - "\n", - " [[-58224.5898]],\n", - "\n", - " [[-58252.2305]],\n", - "\n", - " [[-58347.1680]],\n", - "\n", - " [[-58287.8398]],\n", - "\n", - " [[-58252.7188]],\n", - "\n", - " [[-58305.9688]],\n", - "\n", - " [[-58222.7656]],\n", - "\n", - " [[-58146.3281]],\n", - "\n", - " [[-58230.3711]],\n", - "\n", - " [[-58240.1211]],\n", - "\n", - " [[-58271.7891]],\n", - "\n", - " [[-58193.6484]],\n", - "\n", - " [[-58297.8398]],\n", - "\n", - " [[-58194.0234]],\n", - "\n", - " [[-58114.1797]],\n", - "\n", - " [[-58333.0391]],\n", - "\n", - " [[-58169.1680]],\n", - "\n", - " [[-58232.0625]],\n", - "\n", - " [[-58207.0117]],\n", - "\n", - " [[-58127.8242]],\n", - "\n", - " [[-58300.1602]],\n", - "\n", - " [[-58297.2383]],\n", - "\n", - " [[-58257.0664]],\n", - "\n", - " [[-58218.6797]],\n", - "\n", - " [[-58280.0781]],\n", - "\n", - " [[-58225.2695]],\n", - "\n", - " [[-58220.2422]],\n", - "\n", - " [[-58237.0273]],\n", - "\n", - " [[-58152.3047]],\n", - "\n", - " [[-58349.7891]],\n", - "\n", - " [[-58285.8906]],\n", - "\n", - " [[-58239.1172]],\n", - "\n", - " [[-58159.7305]],\n", - "\n", - " [[-58316.9219]],\n", - "\n", - " [[-58236.3125]],\n", - "\n", - " [[-58203.4297]],\n", - "\n", - " [[-58254.3945]],\n", - "\n", - " [[-58343.4648]],\n", - "\n", - " [[-58261.6719]],\n", - "\n", - " [[-58258.4492]],\n", - "\n", - " [[-58185.2773]],\n", - "\n", - " [[-58234.6836]],\n", - "\n", - " [[-58277.9180]],\n", - "\n", - " [[-58272.5664]],\n", - "\n", - " [[-58124.8008]],\n", - "\n", - " [[-58168.0625]],\n", - "\n", - " [[-58174.5508]],\n", - "\n", - " [[-58238.5742]],\n", - "\n", - " [[-58272.3398]],\n", - "\n", - " [[-58353.1719]],\n", - "\n", - " [[-58278.8906]],\n", - "\n", - " [[-58290.4258]],\n", - "\n", - " [[-58212.9102]],\n", - "\n", - " [[-58292.2461]],\n", - "\n", - " [[-58249.7070]],\n", - "\n", - " [[-58301.9844]],\n", - "\n", - " [[-58133.8164]],\n", - "\n", - " [[-58238.6953]],\n", - "\n", - " [[-58209.8555]],\n", - "\n", - " [[-58232.9141]],\n", - "\n", - " [[-58239.3516]],\n", - "\n", - " [[-58280.1211]],\n", - "\n", - " [[-58197.3750]],\n", - "\n", - " [[-58194.8867]],\n", - "\n", - " [[-58329.1406]],\n", - "\n", - " [[-58266.3945]],\n", - "\n", - " [[-58234.1680]],\n", - "\n", - " [[-58162.0977]],\n", - "\n", - " [[-58144.3438]],\n", - "\n", - " [[-58246.4141]],\n", - "\n", - " [[-58327.8125]],\n", - "\n", - " [[-58257.4883]],\n", - "\n", - " [[-58251.8906]],\n", - "\n", - " [[-58243.6836]],\n", - "\n", - " [[-58297.8086]],\n", - "\n", - " [[-58260.9961]],\n", - "\n", - " [[-58249.7109]],\n", - "\n", - " [[-58216.3086]],\n", - "\n", - " [[-58193.1016]],\n", - "\n", - " [[-58204.8984]],\n", - "\n", - " [[-58270.9609]],\n", - "\n", - " [[-58138.8281]],\n", - "\n", - " [[-58290.0977]],\n", - "\n", - " [[-58278.8086]],\n", - "\n", - " [[-58180.1016]],\n", - "\n", - " [[-58278.4336]],\n", - "\n", - " [[-58227.1836]],\n", - "\n", - " [[-58194.6250]],\n", - "\n", - " [[-58230.6250]],\n", - "\n", - " [[-58223.9844]],\n", - "\n", - " [[-58117.7578]],\n", - "\n", - " [[-58243.9297]],\n", - "\n", - " [[-58270.1914]],\n", - "\n", - " [[-58211.8594]],\n", - "\n", - " [[-58245.3906]],\n", - "\n", - " [[-58272.1172]],\n", - "\n", - " [[-58257.3633]],\n", - "\n", - " [[-58283.4180]],\n", - "\n", - " [[-58305.6602]],\n", - "\n", - " [[-58233.1328]],\n", - "\n", - " [[-58247.1250]],\n", - "\n", - " [[-58204.2188]],\n", - "\n", - " [[-58095.2500]],\n", - "\n", - " [[-58302.1914]],\n", - "\n", - " [[-58272.7148]],\n", - "\n", - " [[-58293.6758]],\n", - "\n", - " [[-58230.7930]],\n", - "\n", - " [[-58272.7930]],\n", - "\n", - " [[-58313.3594]],\n", - "\n", - " [[-58343.5391]],\n", - "\n", - " [[-58288.8867]],\n", - "\n", - " [[-58261.4180]],\n", - "\n", - " [[-58281.1406]],\n", - "\n", - " [[-58138.4375]],\n", - "\n", - " [[-58288.9219]],\n", - "\n", - " [[-58188.4805]],\n", - "\n", - " [[-58224.9375]],\n", - "\n", - " [[-58105.5977]],\n", - "\n", - " [[-58239.9219]],\n", - "\n", - " [[-58277.1797]],\n", - "\n", - " [[-58248.1836]],\n", - "\n", - " [[-58296.3750]],\n", - "\n", - " [[-58345.4258]],\n", - "\n", - " [[-58197.7188]],\n", - "\n", - " [[-58299.8633]],\n", - "\n", - " [[-58139.9375]],\n", - "\n", - " [[-58327.6250]],\n", - "\n", - " [[-58181.8984]],\n", - "\n", - " [[-58276.7344]],\n", - "\n", - " [[-58166.8242]],\n", - "\n", - " [[-58133.8242]],\n", - "\n", - " [[-58310.6094]],\n", - "\n", - " [[-58182.1875]],\n", - "\n", - " [[-58315.7031]],\n", - "\n", - " [[-58291.9375]],\n", - "\n", - " [[-58217.2422]],\n", - "\n", - " [[-58282.1992]],\n", - "\n", - " [[-58332.5234]],\n", - "\n", - " [[-58155.5430]],\n", - "\n", - " [[-58319.7969]],\n", - "\n", - " [[-58196.5469]],\n", - "\n", - " [[-58205.2773]],\n", - "\n", - " [[-58226.1016]],\n", - "\n", - " [[-58191.9570]],\n", - "\n", - " [[-58220.2852]],\n", - "\n", - " [[-58292.8086]],\n", - "\n", - " [[-58194.2656]],\n", - "\n", - " [[-58145.6289]],\n", - "\n", - " [[-58273.8281]],\n", - "\n", - " [[-58210.3203]],\n", - "\n", - " [[-58260.5039]]], grad_fn=)\n", - "tensor([[[-56449.8125]],\n", - "\n", - " [[-56509.2930]],\n", - "\n", - " [[-56570.6523]],\n", - "\n", - " [[-56532.6523]],\n", - "\n", - " [[-56634.6289]],\n", - "\n", - " [[-56484.5547]],\n", - "\n", - " [[-56530.2734]],\n", - "\n", - " [[-56474.0664]],\n", - "\n", - " [[-56512.2148]],\n", - "\n", - " [[-56509.0352]],\n", - "\n", - " [[-56508.7930]],\n", - "\n", - " [[-56388.2617]],\n", - "\n", - " [[-56541.0078]],\n", - "\n", - " [[-56541.2930]],\n", - "\n", - " [[-56513.3672]],\n", - "\n", - " [[-56555.2891]],\n", - "\n", - " [[-56491.4961]],\n", - "\n", - " [[-56543.8203]],\n", - "\n", - " [[-56486.1211]],\n", - "\n", - " [[-56514.4414]],\n", - "\n", - " [[-56481.4492]],\n", - "\n", - " [[-56493.7461]],\n", - "\n", - " [[-56491.6914]],\n", - "\n", - " [[-56552.0898]],\n", - "\n", - " [[-56505.4219]],\n", - "\n", - " [[-56575.1484]],\n", - "\n", - " [[-56481.9609]],\n", - "\n", - " [[-56486.4531]],\n", - "\n", - " [[-56511.6562]],\n", - "\n", - " [[-56456.7812]],\n", - "\n", - " [[-56491.5859]],\n", - "\n", - " [[-56452.7656]],\n", - "\n", - " [[-56388.5898]],\n", - "\n", - " [[-56608.2188]],\n", - "\n", - " [[-56597.5781]],\n", - "\n", - " [[-56533.4648]],\n", - "\n", - " [[-56499.6094]],\n", - "\n", - " [[-56542.9766]],\n", - "\n", - " [[-56486.9102]],\n", - "\n", - " [[-56460.6719]],\n", - "\n", - " [[-56579.4141]],\n", - "\n", - " [[-56482.1250]],\n", - "\n", - " [[-56482.8711]],\n", - "\n", - " [[-56543.1055]],\n", - "\n", - " [[-56604.6523]],\n", - "\n", - " [[-56594.4844]],\n", - "\n", - " [[-56548.9453]],\n", - "\n", - " [[-56515.4648]],\n", - "\n", - " [[-56563.3398]],\n", - "\n", - " [[-56440.4297]],\n", - "\n", - " [[-56500.6328]],\n", - "\n", - " [[-56608.5000]],\n", - "\n", - " [[-56562.3750]],\n", - "\n", - " [[-56536.2734]],\n", - "\n", - " [[-56485.9336]],\n", - "\n", - " [[-56501.1289]],\n", - "\n", - " [[-56498.1211]],\n", - "\n", - " [[-56642.6367]],\n", - "\n", - " [[-56506.3867]],\n", - "\n", - " [[-56506.0586]],\n", - "\n", - " [[-56478.4336]],\n", - "\n", - " [[-56434.2344]],\n", - "\n", - " [[-56520.5234]],\n", - "\n", - " [[-56433.8711]],\n", - "\n", - " [[-56531.0781]],\n", - "\n", - " [[-56377.2383]],\n", - "\n", - " [[-56550.6055]],\n", - "\n", - " [[-56576.8477]],\n", - "\n", - " [[-56563.4922]],\n", - "\n", - " [[-56395.1680]],\n", - "\n", - " [[-56520.6680]],\n", - "\n", - " [[-56465.5234]],\n", - "\n", - " [[-56432.0859]],\n", - "\n", - " [[-56492.4727]],\n", - "\n", - " [[-56558.1953]],\n", - "\n", - " [[-56557.9844]],\n", - "\n", - " [[-56597.3281]],\n", - "\n", - " [[-56525.2812]],\n", - "\n", - " [[-56591.3594]],\n", - "\n", - " [[-56514.4336]],\n", - "\n", - " [[-56450.1250]],\n", - "\n", - " [[-56442.7773]],\n", - "\n", - " [[-56456.7617]],\n", - "\n", - " [[-56532.0078]],\n", - "\n", - " [[-56437.2188]],\n", - "\n", - " [[-56480.4258]],\n", - "\n", - " [[-56461.7148]],\n", - "\n", - " [[-56595.7891]],\n", - "\n", - " [[-56562.3711]],\n", - "\n", - " [[-56576.7812]],\n", - "\n", - " [[-56549.6055]],\n", - "\n", - " [[-56535.2617]],\n", - "\n", - " [[-56529.5391]],\n", - "\n", - " [[-56560.2773]],\n", - "\n", - " [[-56495.8125]],\n", - "\n", - " [[-56412.3867]],\n", - "\n", - " [[-56482.2969]],\n", - "\n", - " [[-56534.6641]],\n", - "\n", - " [[-56426.4180]],\n", - "\n", - " [[-56460.2617]],\n", - "\n", - " [[-56489.6406]],\n", - "\n", - " [[-56611.2617]],\n", - "\n", - " [[-56493.6797]],\n", - "\n", - " [[-56534.2500]],\n", - "\n", - " [[-56477.7500]],\n", - "\n", - " [[-56490.9258]],\n", - "\n", - " [[-56571.1016]],\n", - "\n", - " [[-56652.9258]],\n", - "\n", - " [[-56445.5742]],\n", - "\n", - " [[-56467.4883]],\n", - "\n", - " [[-56577.4219]],\n", - "\n", - " [[-56487.5977]],\n", - "\n", - " [[-56385.7109]],\n", - "\n", - " [[-56464.4336]],\n", - "\n", - " [[-56431.0820]],\n", - "\n", - " [[-56397.7383]],\n", - "\n", - " [[-56561.5664]],\n", - "\n", - " [[-56485.5586]],\n", - "\n", - " [[-56412.9297]],\n", - "\n", - " [[-56399.5430]],\n", - "\n", - " [[-56508.4531]],\n", - "\n", - " [[-56553.2227]],\n", - "\n", - " [[-56535.0078]],\n", - "\n", - " [[-56681.5820]],\n", - "\n", - " [[-56516.6289]],\n", - "\n", - " [[-56544.8281]],\n", - "\n", - " [[-56476.2422]],\n", - "\n", - " [[-56519.6641]],\n", - "\n", - " [[-56568.0586]],\n", - "\n", - " [[-56576.0742]],\n", - "\n", - " [[-56466.6562]],\n", - "\n", - " [[-56507.9688]],\n", - "\n", - " [[-56530.6484]],\n", - "\n", - " [[-56528.0234]],\n", - "\n", - " [[-56444.8828]],\n", - "\n", - " [[-56455.6680]],\n", - "\n", - " [[-56555.9609]],\n", - "\n", - " [[-56481.9297]],\n", - "\n", - " [[-56588.0781]],\n", - "\n", - " [[-56518.0547]],\n", - "\n", - " [[-56487.8008]],\n", - "\n", - " [[-56530.1250]],\n", - "\n", - " [[-56529.7422]],\n", - "\n", - " [[-56534.3164]],\n", - "\n", - " [[-56536.1719]],\n", - "\n", - " [[-56614.5938]],\n", - "\n", - " [[-56568.6914]],\n", - "\n", - " [[-56630.8828]],\n", - "\n", - " [[-56502.9805]],\n", - "\n", - " [[-56367.2539]],\n", - "\n", - " [[-56495.0352]],\n", - "\n", - " [[-56556.6289]],\n", - "\n", - " [[-56560.4492]],\n", - "\n", - " [[-56609.6523]],\n", - "\n", - " [[-56408.7539]],\n", - "\n", - " [[-56586.8008]],\n", - "\n", - " [[-56546.8594]],\n", - "\n", - " [[-56397.3359]],\n", - "\n", - " [[-56469.6523]],\n", - "\n", - " [[-56606.3594]],\n", - "\n", - " [[-56539.8164]],\n", - "\n", - " [[-56576.0781]],\n", - "\n", - " [[-56500.1016]],\n", - "\n", - " [[-56532.7227]],\n", - "\n", - " [[-56451.3555]],\n", - "\n", - " [[-56515.5039]],\n", - "\n", - " [[-56596.4141]],\n", - "\n", - " [[-56479.3711]],\n", - "\n", - " [[-56518.7891]],\n", - "\n", - " [[-56571.8320]],\n", - "\n", - " [[-56512.0703]],\n", - "\n", - " [[-56399.0352]],\n", - "\n", - " [[-56409.0312]],\n", - "\n", - " [[-56557.8516]],\n", - "\n", - " [[-56492.8047]],\n", - "\n", - " [[-56502.9531]],\n", - "\n", - " [[-56511.6172]],\n", - "\n", - " [[-56523.9961]],\n", - "\n", - " [[-56581.0547]],\n", - "\n", - " [[-56496.4180]],\n", - "\n", - " [[-56408.3633]],\n", - "\n", - " [[-56482.2852]],\n", - "\n", - " [[-56547.1641]],\n", - "\n", - " [[-56534.1406]],\n", - "\n", - " [[-56505.9336]],\n", - "\n", - " [[-56511.4961]],\n", - "\n", - " [[-56550.0781]],\n", - "\n", - " [[-56414.0625]],\n", - "\n", - " [[-56545.7461]],\n", - "\n", - " [[-56515.5664]],\n", - "\n", - " [[-56487.6406]],\n", - "\n", - " [[-56478.3750]],\n", - "\n", - " [[-56537.5000]],\n", - "\n", - " [[-56506.4375]],\n", - "\n", - " [[-56433.0898]],\n", - "\n", - " [[-56488.3164]],\n", - "\n", - " [[-56575.2969]],\n", - "\n", - " [[-56526.1562]],\n", - "\n", - " [[-56497.8477]],\n", - "\n", - " [[-56479.8438]],\n", - "\n", - " [[-56570.0781]],\n", - "\n", - " [[-56411.7148]],\n", - "\n", - " [[-56611.2070]],\n", - "\n", - " [[-56543.3086]],\n", - "\n", - " [[-56484.8789]],\n", - "\n", - " [[-56507.0195]],\n", - "\n", - " [[-56444.3320]],\n", - "\n", - " [[-56453.7266]],\n", - "\n", - " [[-56508.9727]],\n", - "\n", - " [[-56648.5625]],\n", - "\n", - " [[-56481.5938]],\n", - "\n", - " [[-56475.7266]],\n", - "\n", - " [[-56452.7031]],\n", - "\n", - " [[-56518.7617]],\n", - "\n", - " [[-56519.2695]],\n", - "\n", - " [[-56605.8750]],\n", - "\n", - " [[-56563.3828]],\n", - "\n", - " [[-56601.2617]],\n", - "\n", - " [[-56471.8398]],\n", - "\n", - " [[-56512.5820]],\n", - "\n", - " [[-56580.5391]],\n", - "\n", - " [[-56454.5273]],\n", - "\n", - " [[-56530.2031]],\n", - "\n", - " [[-56499.9570]],\n", - "\n", - " [[-56521.0977]],\n", - "\n", - " [[-56475.4609]],\n", - "\n", - " [[-56495.5000]],\n", - "\n", - " [[-56472.7383]],\n", - "\n", - " [[-56491.3945]],\n", - "\n", - " [[-56478.2500]],\n", - "\n", - " [[-56422.6406]],\n", - "\n", - " [[-56566.5859]],\n", - "\n", - " [[-56489.6289]],\n", - "\n", - " [[-56495.7812]],\n", - "\n", - " [[-56414.0039]],\n", - "\n", - " [[-56514.0078]],\n", - "\n", - " [[-56530.3086]],\n", - "\n", - " [[-56601.2148]],\n", - "\n", - " [[-56557.4492]],\n", - "\n", - " [[-56421.4688]],\n", - "\n", - " [[-56462.0039]],\n", - "\n", - " [[-56478.8828]],\n", - "\n", - " [[-56439.3672]],\n", - "\n", - " [[-56432.8047]],\n", - "\n", - " [[-56552.4219]],\n", - "\n", - " [[-56531.3984]],\n", - "\n", - " [[-56611.6992]],\n", - "\n", - " [[-56394.1094]],\n", - "\n", - " [[-56580.4180]],\n", - "\n", - " [[-56533.2734]],\n", - "\n", - " [[-56635.1211]],\n", - "\n", - " [[-56467.9688]],\n", - "\n", - " [[-56617.1836]],\n", - "\n", - " [[-56535.5820]],\n", - "\n", - " [[-56431.3281]],\n", - "\n", - " [[-56488.6562]]], grad_fn=)\n", - "tensor([[[-54840.4688]],\n", - "\n", - " [[-54858.1055]],\n", - "\n", - " [[-54810.2031]],\n", - "\n", - " [[-54841.1758]],\n", - "\n", - " [[-54747.0391]],\n", - "\n", - " [[-54783.1875]],\n", - "\n", - " [[-54911.4453]],\n", - "\n", - " [[-54847.4453]],\n", - "\n", - " [[-54787.3984]],\n", - "\n", - " [[-54850.6211]],\n", - "\n", - " [[-54811.8828]],\n", - "\n", - " [[-54967.4414]],\n", - "\n", - " [[-54814.6992]],\n", - "\n", - " [[-54856.1797]],\n", - "\n", - " [[-54843.9766]],\n", - "\n", - " [[-54763.0781]],\n", - "\n", - " [[-54928.1016]],\n", - "\n", - " [[-54878.2422]],\n", - "\n", - " [[-54784.7227]],\n", - "\n", - " [[-54824.1836]],\n", - "\n", - " [[-54812.7773]],\n", - "\n", - " [[-54714.6367]],\n", - "\n", - " [[-54743.5898]],\n", - "\n", - " [[-54696.6133]],\n", - "\n", - " [[-54860.8750]],\n", - "\n", - " [[-54714.8945]],\n", - "\n", - " [[-54784.2383]],\n", - "\n", - " [[-54712.5781]],\n", - "\n", - " [[-54764.7070]],\n", - "\n", - " [[-54833.1211]],\n", - "\n", - " [[-54766.6445]],\n", - "\n", - " [[-54919.3438]],\n", - "\n", - " [[-54783.2148]],\n", - "\n", - " [[-54877.8789]],\n", - "\n", - " [[-54841.9844]],\n", - "\n", - " [[-54874.7930]],\n", - "\n", - " [[-54811.1836]],\n", - "\n", - " [[-54809.2773]],\n", - "\n", - " [[-54695.9727]],\n", - "\n", - " [[-54835.8906]],\n", - "\n", - " [[-54902.0078]],\n", - "\n", - " [[-54925.6250]],\n", - "\n", - " [[-54831.4648]],\n", - "\n", - " [[-54667.4961]],\n", - "\n", - " [[-54764.4570]],\n", - "\n", - " [[-54920.7695]],\n", - "\n", - " [[-54799.1367]],\n", - "\n", - " [[-54865.7578]],\n", - "\n", - " [[-54790.1562]],\n", - "\n", - " [[-54685.4883]],\n", - "\n", - " [[-54797.1367]],\n", - "\n", - " [[-54801.3359]],\n", - "\n", - " [[-54787.2461]],\n", - "\n", - " [[-54809.5547]],\n", - "\n", - " [[-54886.0078]],\n", - "\n", - " [[-54809.7773]],\n", - "\n", - " [[-54816.4648]],\n", - "\n", - " [[-54851.2578]],\n", - "\n", - " [[-54872.1602]],\n", - "\n", - " [[-54780.3945]],\n", - "\n", - " [[-54899.0273]],\n", - "\n", - " [[-54842.0977]],\n", - "\n", - " [[-54775.4922]],\n", - "\n", - " [[-54714.6797]],\n", - "\n", - " [[-54830.8398]],\n", - "\n", - " [[-54905.8750]],\n", - "\n", - " [[-54850.0273]],\n", - "\n", - " [[-54855.7656]],\n", - "\n", - " [[-54675.7578]],\n", - "\n", - " [[-54781.1797]],\n", - "\n", - " [[-54767.0625]],\n", - "\n", - " [[-54770.0586]],\n", - "\n", - " [[-54813.1367]],\n", - "\n", - " [[-54776.4766]],\n", - "\n", - " [[-54890.3633]],\n", - "\n", - " [[-54826.6445]],\n", - "\n", - " [[-54889.2188]],\n", - "\n", - " [[-54801.3906]],\n", - "\n", - " [[-54714.6016]],\n", - "\n", - " [[-54866.2891]],\n", - "\n", - " [[-54843.3984]],\n", - "\n", - " [[-54844.6523]],\n", - "\n", - " [[-54766.2344]],\n", - "\n", - " [[-54910.6328]],\n", - "\n", - " [[-54880.2188]],\n", - "\n", - " [[-54760.2539]],\n", - "\n", - " [[-54842.2422]],\n", - "\n", - " [[-54811.0430]],\n", - "\n", - " [[-54829.7695]],\n", - "\n", - " [[-54778.2773]],\n", - "\n", - " [[-54750.9297]],\n", - "\n", - " [[-54845.2930]],\n", - "\n", - " [[-54762.2539]],\n", - "\n", - " [[-54802.7500]],\n", - "\n", - " [[-54853.9258]],\n", - "\n", - " [[-54717.6797]],\n", - "\n", - " [[-54889.9688]],\n", - "\n", - " [[-54832.9688]],\n", - "\n", - " [[-54865.4727]],\n", - "\n", - " [[-54809.1914]],\n", - "\n", - " [[-54740.3477]],\n", - "\n", - " [[-54887.0273]],\n", - "\n", - " [[-54955.3711]],\n", - "\n", - " [[-54783.8203]],\n", - "\n", - " [[-54818.0078]],\n", - "\n", - " [[-54870.6523]],\n", - "\n", - " [[-54805.7070]],\n", - "\n", - " [[-54857.8594]],\n", - "\n", - " [[-54799.7266]],\n", - "\n", - " [[-54712.1992]],\n", - "\n", - " [[-54833.9570]],\n", - "\n", - " [[-54842.4258]],\n", - "\n", - " [[-54846.4883]],\n", - "\n", - " [[-54877.3203]],\n", - "\n", - " [[-54838.3516]],\n", - "\n", - " [[-54808.0898]],\n", - "\n", - " [[-54773.6484]],\n", - "\n", - " [[-54703.5039]],\n", - "\n", - " [[-54819.7578]],\n", - "\n", - " [[-54767.7383]],\n", - "\n", - " [[-54786.9727]],\n", - "\n", - " [[-54776.4766]],\n", - "\n", - " [[-54955.9180]],\n", - "\n", - " [[-54831.5586]],\n", - "\n", - " [[-54801.4453]],\n", - "\n", - " [[-54895.1289]],\n", - "\n", - " [[-54797.9375]],\n", - "\n", - " [[-54842.5508]],\n", - "\n", - " [[-55006.7734]],\n", - "\n", - " [[-54722.9375]],\n", - "\n", - " [[-54849.8047]],\n", - "\n", - " [[-54793.5156]],\n", - "\n", - " [[-54824.0273]],\n", - "\n", - " [[-54842.9570]],\n", - "\n", - " [[-54795.1875]],\n", - "\n", - " [[-54665.2383]],\n", - "\n", - " [[-54907.0195]],\n", - "\n", - " [[-54892.4141]],\n", - "\n", - " [[-54759.9102]],\n", - "\n", - " [[-54770.8789]],\n", - "\n", - " [[-54808.1094]],\n", - "\n", - " [[-54776.7148]],\n", - "\n", - " [[-54853.8203]],\n", - "\n", - " [[-54828.8594]],\n", - "\n", - " [[-54846.0977]],\n", - "\n", - " [[-54762.3984]],\n", - "\n", - " [[-54861.8281]],\n", - "\n", - " [[-54759.7617]],\n", - "\n", - " [[-54852.6758]],\n", - "\n", - " [[-54812.1602]],\n", - "\n", - " [[-54882.5977]],\n", - "\n", - " [[-54839.1211]],\n", - "\n", - " [[-54849.8633]],\n", - "\n", - " [[-54748.9102]],\n", - "\n", - " [[-54789.4180]],\n", - "\n", - " [[-54955.1328]],\n", - "\n", - " [[-54983.1914]],\n", - "\n", - " [[-54882.4414]],\n", - "\n", - " [[-54883.0078]],\n", - "\n", - " [[-54848.4453]],\n", - "\n", - " [[-54820.5312]],\n", - "\n", - " [[-54814.8633]],\n", - "\n", - " [[-54838.7500]],\n", - "\n", - " [[-54743.2344]],\n", - "\n", - " [[-54903.7070]],\n", - "\n", - " [[-54885.9141]],\n", - "\n", - " [[-54882.4258]],\n", - "\n", - " [[-54842.8125]],\n", - "\n", - " [[-54773.2500]],\n", - "\n", - " [[-54758.1836]],\n", - "\n", - " [[-54780.0703]],\n", - "\n", - " [[-54874.6992]],\n", - "\n", - " [[-54870.3438]],\n", - "\n", - " [[-54803.9883]],\n", - "\n", - " [[-54820.5117]],\n", - "\n", - " [[-54843.9414]],\n", - "\n", - " [[-54836.8047]],\n", - "\n", - " [[-54852.4180]],\n", - "\n", - " [[-54819.8398]],\n", - "\n", - " [[-54856.4297]],\n", - "\n", - " [[-54858.3594]],\n", - "\n", - " [[-54992.5820]],\n", - "\n", - " [[-54796.6719]],\n", - "\n", - " [[-54727.5117]],\n", - "\n", - " [[-54731.5156]],\n", - "\n", - " [[-54852.0156]],\n", - "\n", - " [[-54790.7227]],\n", - "\n", - " [[-54854.7773]],\n", - "\n", - " [[-54903.3789]],\n", - "\n", - " [[-54719.9297]],\n", - "\n", - " [[-54734.8555]],\n", - "\n", - " [[-54914.9961]],\n", - "\n", - " [[-54850.4766]],\n", - "\n", - " [[-54791.8828]],\n", - "\n", - " [[-54831.6328]],\n", - "\n", - " [[-54773.4375]],\n", - "\n", - " [[-54772.1875]],\n", - "\n", - " [[-54826.3789]],\n", - "\n", - " [[-54874.3086]],\n", - "\n", - " [[-54773.2227]],\n", - "\n", - " [[-54690.4766]],\n", - "\n", - " [[-54806.1172]],\n", - "\n", - " [[-54829.4961]],\n", - "\n", - " [[-54770.2773]],\n", - "\n", - " [[-54779.5430]],\n", - "\n", - " [[-54714.5352]],\n", - "\n", - " [[-54847.0781]],\n", - "\n", - " [[-54862.0195]],\n", - "\n", - " [[-54898.9219]],\n", - "\n", - " [[-54794.4180]],\n", - "\n", - " [[-54853.6133]],\n", - "\n", - " [[-54788.6797]],\n", - "\n", - " [[-54690.8164]],\n", - "\n", - " [[-54793.0312]],\n", - "\n", - " [[-54848.4453]],\n", - "\n", - " [[-54863.5625]],\n", - "\n", - " [[-54813.5039]],\n", - "\n", - " [[-54795.0703]],\n", - "\n", - " [[-54823.6484]],\n", - "\n", - " [[-54716.4375]],\n", - "\n", - " [[-54747.4805]],\n", - "\n", - " [[-54839.0625]],\n", - "\n", - " [[-54793.7891]],\n", - "\n", - " [[-54818.7266]],\n", - "\n", - " [[-54860.5391]],\n", - "\n", - " [[-54867.8281]],\n", - "\n", - " [[-54812.5547]],\n", - "\n", - " [[-54701.7969]],\n", - "\n", - " [[-54792.7539]],\n", - "\n", - " [[-54847.6562]],\n", - "\n", - " [[-54803.1680]],\n", - "\n", - " [[-54843.8125]],\n", - "\n", - " [[-54831.2617]],\n", - "\n", - " [[-54852.9180]],\n", - "\n", - " [[-54809.0391]],\n", - "\n", - " [[-54666.6484]],\n", - "\n", - " [[-54866.0312]],\n", - "\n", - " [[-54817.2109]],\n", - "\n", - " [[-54806.5508]],\n", - "\n", - " [[-55008.1484]],\n", - "\n", - " [[-54800.4727]],\n", - "\n", - " [[-54949.1250]],\n", - "\n", - " [[-54818.3086]],\n", - "\n", - " [[-54781.0781]],\n", - "\n", - " [[-54825.0664]],\n", - "\n", - " [[-54826.3633]],\n", - "\n", - " [[-54824.0156]],\n", - "\n", - " [[-54858.5859]],\n", - "\n", - " [[-54822.6758]],\n", - "\n", - " [[-54838.3672]],\n", - "\n", - " [[-54911.4102]],\n", - "\n", - " [[-54793.9922]],\n", - "\n", - " [[-54883.6914]],\n", - "\n", - " [[-54701.5000]],\n", - "\n", - " [[-54847.1367]],\n", - "\n", - " [[-54709.1211]]], grad_fn=)\n", - "tensor([[[-53094.9648]],\n", - "\n", - " [[-53111.7031]],\n", - "\n", - " [[-53102.6406]],\n", - "\n", - " [[-53151.0820]],\n", - "\n", - " [[-53251.6094]],\n", - "\n", - " [[-53148.1172]],\n", - "\n", - " [[-53072.1133]],\n", - "\n", - " [[-53138.9062]],\n", - "\n", - " [[-53126.3906]],\n", - "\n", - " [[-53117.8984]],\n", - "\n", - " [[-53092.5625]],\n", - "\n", - " [[-53226.3086]],\n", - "\n", - " [[-53189.6875]],\n", - "\n", - " [[-53191.1055]],\n", - "\n", - " [[-53169.8086]],\n", - "\n", - " [[-53197.1211]],\n", - "\n", - " [[-53235.7305]],\n", - "\n", - " [[-53239.5938]],\n", - "\n", - " [[-53256.5195]],\n", - "\n", - " [[-53249.6758]],\n", - "\n", - " [[-53221.5156]],\n", - "\n", - " [[-53274.2070]],\n", - "\n", - " [[-53091.1875]],\n", - "\n", - " [[-53179.7461]],\n", - "\n", - " [[-53167.3945]],\n", - "\n", - " [[-53125.5508]],\n", - "\n", - " [[-53257.2383]],\n", - "\n", - " [[-53271.6914]],\n", - "\n", - " [[-53150.5195]],\n", - "\n", - " [[-53269.4883]],\n", - "\n", - " [[-53142.8320]],\n", - "\n", - " [[-53121.3398]],\n", - "\n", - " [[-53201.9492]],\n", - "\n", - " [[-53070.5039]],\n", - "\n", - " [[-53253.9062]],\n", - "\n", - " [[-53198.3828]],\n", - "\n", - " [[-53302.1953]],\n", - "\n", - " [[-53166.3008]],\n", - "\n", - " [[-53126.2969]],\n", - "\n", - " [[-53109.3633]],\n", - "\n", - " [[-53144.2109]],\n", - "\n", - " [[-53098.4961]],\n", - "\n", - " [[-53064.7539]],\n", - "\n", - " [[-53070.2227]],\n", - "\n", - " [[-53265.3906]],\n", - "\n", - " [[-53200.4414]],\n", - "\n", - " [[-53278.0898]],\n", - "\n", - " [[-53258.5742]],\n", - "\n", - " [[-53200.0703]],\n", - "\n", - " [[-53172.5039]],\n", - "\n", - " [[-53052.5352]],\n", - "\n", - " [[-53125.5156]],\n", - "\n", - " [[-53104.2773]],\n", - "\n", - " [[-53101.7891]],\n", - "\n", - " [[-53154.9141]],\n", - "\n", - " [[-53255.6250]],\n", - "\n", - " [[-53036.6289]],\n", - "\n", - " [[-53035.0898]],\n", - "\n", - " [[-53087.0742]],\n", - "\n", - " [[-53086.9023]],\n", - "\n", - " [[-53315.2344]],\n", - "\n", - " [[-53176.5312]],\n", - "\n", - " [[-53109.4648]],\n", - "\n", - " [[-53350.6875]],\n", - "\n", - " [[-53167.8320]],\n", - "\n", - " [[-53212.9141]],\n", - "\n", - " [[-53210.2539]],\n", - "\n", - " [[-53265.4961]],\n", - "\n", - " [[-53146.8047]],\n", - "\n", - " [[-53057.3164]],\n", - "\n", - " [[-53206.9023]],\n", - "\n", - " [[-53199.7773]],\n", - "\n", - " [[-53199.0273]],\n", - "\n", - " [[-53158.7500]],\n", - "\n", - " [[-53109.0508]],\n", - "\n", - " [[-53188.9688]],\n", - "\n", - " [[-53157.1953]],\n", - "\n", - " [[-53061.7109]],\n", - "\n", - " [[-53214.2109]],\n", - "\n", - " [[-53247.8984]],\n", - "\n", - " [[-53158.6875]],\n", - "\n", - " [[-53221.7383]],\n", - "\n", - " [[-53216.8281]],\n", - "\n", - " [[-53128.0742]],\n", - "\n", - " [[-53098.5000]],\n", - "\n", - " [[-53198.9961]],\n", - "\n", - " [[-53132.4375]],\n", - "\n", - " [[-53179.4258]],\n", - "\n", - " [[-53119.6680]],\n", - "\n", - " [[-53150.1250]],\n", - "\n", - " [[-53213.0195]],\n", - "\n", - " [[-53131.6133]],\n", - "\n", - " [[-53070.9297]],\n", - "\n", - " [[-53044.1406]],\n", - "\n", - " [[-53339.7891]],\n", - "\n", - " [[-53107.5820]],\n", - "\n", - " [[-53207.0117]],\n", - "\n", - " [[-53170.7227]],\n", - "\n", - " [[-53152.4180]],\n", - "\n", - " [[-53183.0117]],\n", - "\n", - " [[-53226.1875]],\n", - "\n", - " [[-53350.2344]],\n", - "\n", - " [[-53128.4258]],\n", - "\n", - " [[-53268.9453]],\n", - "\n", - " [[-53157.9805]],\n", - "\n", - " [[-53133.0703]],\n", - "\n", - " [[-53086.3945]],\n", - "\n", - " [[-53139.4961]],\n", - "\n", - " [[-53210.5273]],\n", - "\n", - " [[-53038.2148]],\n", - "\n", - " [[-53200.4180]],\n", - "\n", - " [[-53118.9844]],\n", - "\n", - " [[-53189.2734]],\n", - "\n", - " [[-53130.0898]],\n", - "\n", - " [[-53123.4297]],\n", - "\n", - " [[-53276.8984]],\n", - "\n", - " [[-53185.1914]],\n", - "\n", - " [[-53232.0859]],\n", - "\n", - " [[-53063.4336]],\n", - "\n", - " [[-53162.0586]],\n", - "\n", - " [[-53070.8438]],\n", - "\n", - " [[-53183.5742]],\n", - "\n", - " [[-53097.9062]],\n", - "\n", - " [[-53164.2461]],\n", - "\n", - " [[-53195.0273]],\n", - "\n", - " [[-53136.1094]],\n", - "\n", - " [[-53242.3984]],\n", - "\n", - " [[-53027.8281]],\n", - "\n", - " [[-53168.4141]],\n", - "\n", - " [[-53106.6758]],\n", - "\n", - " [[-53211.5000]],\n", - "\n", - " [[-53167.7031]],\n", - "\n", - " [[-53125.4375]],\n", - "\n", - " [[-53170.1055]],\n", - "\n", - " [[-53177.2383]],\n", - "\n", - " [[-53233.6641]],\n", - "\n", - " [[-53213.3125]],\n", - "\n", - " [[-53199.0742]],\n", - "\n", - " [[-53138.9922]],\n", - "\n", - " [[-53203.0586]],\n", - "\n", - " [[-53228.6562]],\n", - "\n", - " [[-53157.4219]],\n", - "\n", - " [[-53120.1641]],\n", - "\n", - " [[-53114.7461]],\n", - "\n", - " [[-53038.3125]],\n", - "\n", - " [[-53258.7578]],\n", - "\n", - " [[-53129.0781]],\n", - "\n", - " [[-53153.5156]],\n", - "\n", - " [[-53296.4648]],\n", - "\n", - " [[-53256.2461]],\n", - "\n", - " [[-53238.7109]],\n", - "\n", - " [[-53306.0234]],\n", - "\n", - " [[-53205.0625]],\n", - "\n", - " [[-53186.9609]],\n", - "\n", - " [[-53130.0664]],\n", - "\n", - " [[-53255.1875]],\n", - "\n", - " [[-53259.2539]],\n", - "\n", - " [[-53227.3086]],\n", - "\n", - " [[-53123.0000]],\n", - "\n", - " [[-53135.1602]],\n", - "\n", - " [[-53197.1250]],\n", - "\n", - " [[-53153.3086]],\n", - "\n", - " [[-53175.5586]],\n", - "\n", - " [[-53208.0820]],\n", - "\n", - " [[-53319.2148]],\n", - "\n", - " [[-53257.6914]],\n", - "\n", - " [[-53253.2070]],\n", - "\n", - " [[-53229.7500]],\n", - "\n", - " [[-53118.3398]],\n", - "\n", - " [[-53158.0195]],\n", - "\n", - " [[-53173.5430]],\n", - "\n", - " [[-53081.8984]],\n", - "\n", - " [[-53132.7773]],\n", - "\n", - " [[-53121.3867]],\n", - "\n", - " [[-53163.7422]],\n", - "\n", - " [[-53186.6484]],\n", - "\n", - " [[-53073.4023]],\n", - "\n", - " [[-53202.1992]],\n", - "\n", - " [[-53062.2500]],\n", - "\n", - " [[-53120.1367]],\n", - "\n", - " [[-53206.7188]],\n", - "\n", - " [[-53187.7578]],\n", - "\n", - " [[-53223.3750]],\n", - "\n", - " [[-53159.4414]],\n", - "\n", - " [[-53221.9258]],\n", - "\n", - " [[-53177.1641]],\n", - "\n", - " [[-53093.8828]],\n", - "\n", - " [[-53116.4531]],\n", - "\n", - " [[-53071.1875]],\n", - "\n", - " [[-53211.7422]],\n", - "\n", - " [[-53195.1875]],\n", - "\n", - " [[-53207.1914]],\n", - "\n", - " [[-53086.3984]],\n", - "\n", - " [[-53164.5586]],\n", - "\n", - " [[-53254.3125]],\n", - "\n", - " [[-53092.8320]],\n", - "\n", - " [[-53205.7383]],\n", - "\n", - " [[-53262.0977]],\n", - "\n", - " [[-53246.0703]],\n", - "\n", - " [[-53100.4219]],\n", - "\n", - " [[-53063.2031]],\n", - "\n", - " [[-53114.4609]],\n", - "\n", - " [[-53141.7422]],\n", - "\n", - " [[-53040.3750]],\n", - "\n", - " [[-53063.2422]],\n", - "\n", - " [[-53271.6211]],\n", - "\n", - " [[-53137.7500]],\n", - "\n", - " [[-53158.1797]],\n", - "\n", - " [[-53136.2148]],\n", - "\n", - " [[-53153.5508]],\n", - "\n", - " [[-53259.2852]],\n", - "\n", - " [[-53042.4023]],\n", - "\n", - " [[-53034.7305]],\n", - "\n", - " [[-53256.6484]],\n", - "\n", - " [[-53092.5859]],\n", - "\n", - " [[-53176.4922]],\n", - "\n", - " [[-53084.5430]],\n", - "\n", - " [[-53134.2109]],\n", - "\n", - " [[-53207.7305]],\n", - "\n", - " [[-53278.4609]],\n", - "\n", - " [[-53256.2266]],\n", - "\n", - " [[-53103.0938]],\n", - "\n", - " [[-53084.8320]],\n", - "\n", - " [[-53251.7852]],\n", - "\n", - " [[-53131.2656]],\n", - "\n", - " [[-53279.8867]],\n", - "\n", - " [[-53112.2070]],\n", - "\n", - " [[-53204.4531]],\n", - "\n", - " [[-53274.0977]],\n", - "\n", - " [[-53198.2734]],\n", - "\n", - " [[-53200.5273]],\n", - "\n", - " [[-53180.4922]],\n", - "\n", - " [[-53204.2070]],\n", - "\n", - " [[-53172.5586]],\n", - "\n", - " [[-53170.4883]],\n", - "\n", - " [[-53256.8906]],\n", - "\n", - " [[-53159.6562]],\n", - "\n", - " [[-53105.5938]],\n", - "\n", - " [[-53261.8203]],\n", - "\n", - " [[-53227.6289]],\n", - "\n", - " [[-53112.2031]],\n", - "\n", - " [[-53224.8438]],\n", - "\n", - " [[-53205.2773]],\n", - "\n", - " [[-53092.7539]],\n", - "\n", - " [[-53155.7305]],\n", - "\n", - " [[-53157.8555]],\n", - "\n", - " [[-53175.2695]],\n", - "\n", - " [[-53080.6914]],\n", - "\n", - " [[-53235.3789]],\n", - "\n", - " [[-53180.4961]],\n", - "\n", - " [[-53187.9297]],\n", - "\n", - " [[-53228.3242]],\n", - "\n", - " [[-53260.1055]],\n", - "\n", - " [[-53195.2891]],\n", - "\n", - " [[-53171.9648]],\n", - "\n", - " [[-53197.4961]]], grad_fn=)\n", - "tensor([[[-51529.8008]],\n", - "\n", - " [[-51610.9414]],\n", - "\n", - " [[-51723.6484]],\n", - "\n", - " [[-51589.8086]],\n", - "\n", - " [[-51535.4219]],\n", - "\n", - " [[-51583.6055]],\n", - "\n", - " [[-51647.1875]],\n", - "\n", - " [[-51590.5977]],\n", - "\n", - " [[-51709.9023]],\n", - "\n", - " [[-51550.7656]],\n", - "\n", - " [[-51463.8672]],\n", - "\n", - " [[-51574.9531]],\n", - "\n", - " [[-51707.0000]],\n", - "\n", - " [[-51606.2734]],\n", - "\n", - " [[-51555.5273]],\n", - "\n", - " [[-51560.1289]],\n", - "\n", - " [[-51757.4570]],\n", - "\n", - " [[-51428.7461]],\n", - "\n", - " [[-51650.9961]],\n", - "\n", - " [[-51439.5625]],\n", - "\n", - " [[-51537.4844]],\n", - "\n", - " [[-51564.1914]],\n", - "\n", - " [[-51471.8398]],\n", - "\n", - " [[-51697.2695]],\n", - "\n", - " [[-51597.6680]],\n", - "\n", - " [[-51526.1992]],\n", - "\n", - " [[-51618.4727]],\n", - "\n", - " [[-51612.2852]],\n", - "\n", - " [[-51577.9570]],\n", - "\n", - " [[-51579.8750]],\n", - "\n", - " [[-51574.6250]],\n", - "\n", - " [[-51535.7773]],\n", - "\n", - " [[-51592.8945]],\n", - "\n", - " [[-51563.0195]],\n", - "\n", - " [[-51596.6328]],\n", - "\n", - " [[-51562.3359]],\n", - "\n", - " [[-51591.3320]],\n", - "\n", - " [[-51555.0000]],\n", - "\n", - " [[-51526.8398]],\n", - "\n", - " [[-51650.2656]],\n", - "\n", - " [[-51445.4219]],\n", - "\n", - " [[-51538.1250]],\n", - "\n", - " [[-51545.0586]],\n", - "\n", - " [[-51468.8359]],\n", - "\n", - " [[-51537.0469]],\n", - "\n", - " [[-51443.4766]],\n", - "\n", - " [[-51467.7266]],\n", - "\n", - " [[-51595.3594]],\n", - "\n", - " [[-51598.9023]],\n", - "\n", - " [[-51636.3555]],\n", - "\n", - " [[-51650.5820]],\n", - "\n", - " [[-51641.8750]],\n", - "\n", - " [[-51521.4492]],\n", - "\n", - " [[-51636.0781]],\n", - "\n", - " [[-51606.0391]],\n", - "\n", - " [[-51535.7148]],\n", - "\n", - " [[-51517.4336]],\n", - "\n", - " [[-51588.2695]],\n", - "\n", - " [[-51669.0000]],\n", - "\n", - " [[-51554.1562]],\n", - "\n", - " [[-51643.0742]],\n", - "\n", - " [[-51637.2422]],\n", - "\n", - " [[-51543.8008]],\n", - "\n", - " [[-51772.8984]],\n", - "\n", - " [[-51574.9453]],\n", - "\n", - " [[-51543.2109]],\n", - "\n", - " [[-51587.5195]],\n", - "\n", - " [[-51511.0586]],\n", - "\n", - " [[-51577.9766]],\n", - "\n", - " [[-51620.8945]],\n", - "\n", - " [[-51576.7070]],\n", - "\n", - " [[-51558.5820]],\n", - "\n", - " [[-51532.3477]],\n", - "\n", - " [[-51559.3242]],\n", - "\n", - " [[-51655.7422]],\n", - "\n", - " [[-51539.0703]],\n", - "\n", - " [[-51644.0859]],\n", - "\n", - " [[-51505.0000]],\n", - "\n", - " [[-51598.4102]],\n", - "\n", - " [[-51542.5391]],\n", - "\n", - " [[-51559.2383]],\n", - "\n", - " [[-51695.8984]],\n", - "\n", - " [[-51651.1953]],\n", - "\n", - " [[-51601.2109]],\n", - "\n", - " [[-51548.2656]],\n", - "\n", - " [[-51549.0625]],\n", - "\n", - " [[-51466.8359]],\n", - "\n", - " [[-51631.4336]],\n", - "\n", - " [[-51570.7812]],\n", - "\n", - " [[-51563.0156]],\n", - "\n", - " [[-51565.7578]],\n", - "\n", - " [[-51535.7812]],\n", - "\n", - " [[-51595.9961]],\n", - "\n", - " [[-51568.5000]],\n", - "\n", - " [[-51446.6680]],\n", - "\n", - " [[-51543.5430]],\n", - "\n", - " [[-51702.5352]],\n", - "\n", - " [[-51526.6328]],\n", - "\n", - " [[-51523.5234]],\n", - "\n", - " [[-51629.8203]],\n", - "\n", - " [[-51574.2188]],\n", - "\n", - " [[-51654.7773]],\n", - "\n", - " [[-51628.5508]],\n", - "\n", - " [[-51530.5664]],\n", - "\n", - " [[-51443.7539]],\n", - "\n", - " [[-51585.7070]],\n", - "\n", - " [[-51447.4336]],\n", - "\n", - " [[-51613.4375]],\n", - "\n", - " [[-51576.7852]],\n", - "\n", - " [[-51473.7266]],\n", - "\n", - " [[-51595.6094]],\n", - "\n", - " [[-51545.2578]],\n", - "\n", - " [[-51609.7148]],\n", - "\n", - " [[-51613.6875]],\n", - "\n", - " [[-51608.7344]],\n", - "\n", - " [[-51533.1992]],\n", - "\n", - " [[-51713.2617]],\n", - "\n", - " [[-51535.2539]],\n", - "\n", - " [[-51598.2344]],\n", - "\n", - " [[-51579.9727]],\n", - "\n", - " [[-51526.8281]],\n", - "\n", - " [[-51510.0430]],\n", - "\n", - " [[-51571.4258]],\n", - "\n", - " [[-51617.3633]],\n", - "\n", - " [[-51463.5859]],\n", - "\n", - " [[-51582.0000]],\n", - "\n", - " [[-51628.8477]],\n", - "\n", - " [[-51541.5156]],\n", - "\n", - " [[-51441.8203]],\n", - "\n", - " [[-51761.6602]],\n", - "\n", - " [[-51567.2539]],\n", - "\n", - " [[-51503.7617]],\n", - "\n", - " [[-51590.1094]],\n", - "\n", - " [[-51712.8125]],\n", - "\n", - " [[-51614.1602]],\n", - "\n", - " [[-51568.9219]],\n", - "\n", - " [[-51615.4258]],\n", - "\n", - " [[-51624.0469]],\n", - "\n", - " [[-51591.4609]],\n", - "\n", - " [[-51583.0078]],\n", - "\n", - " [[-51526.2812]],\n", - "\n", - " [[-51492.2812]],\n", - "\n", - " [[-51539.2070]],\n", - "\n", - " [[-51542.0781]],\n", - "\n", - " [[-51570.7188]],\n", - "\n", - " [[-51512.4609]],\n", - "\n", - " [[-51657.4688]],\n", - "\n", - " [[-51583.1172]],\n", - "\n", - " [[-51662.6406]],\n", - "\n", - " [[-51519.6367]],\n", - "\n", - " [[-51592.8242]],\n", - "\n", - " [[-51515.0312]],\n", - "\n", - " [[-51443.3281]],\n", - "\n", - " [[-51690.7656]],\n", - "\n", - " [[-51432.1406]],\n", - "\n", - " [[-51577.3555]],\n", - "\n", - " [[-51524.6523]],\n", - "\n", - " [[-51570.6211]],\n", - "\n", - " [[-51542.9375]],\n", - "\n", - " [[-51519.8203]],\n", - "\n", - " [[-51625.5078]],\n", - "\n", - " [[-51556.6250]],\n", - "\n", - " [[-51645.4883]],\n", - "\n", - " [[-51688.2422]],\n", - "\n", - " [[-51673.5469]],\n", - "\n", - " [[-51622.2500]],\n", - "\n", - " [[-51669.4922]],\n", - "\n", - " [[-51503.5234]],\n", - "\n", - " [[-51677.0586]],\n", - "\n", - " [[-51688.4648]],\n", - "\n", - " [[-51658.5781]],\n", - "\n", - " [[-51593.9336]],\n", - "\n", - " [[-51579.9297]],\n", - "\n", - " [[-51444.8477]],\n", - "\n", - " [[-51507.9375]],\n", - "\n", - " [[-51620.6680]],\n", - "\n", - " [[-51537.4453]],\n", - "\n", - " [[-51522.9766]],\n", - "\n", - " [[-51431.0469]],\n", - "\n", - " [[-51609.4258]],\n", - "\n", - " [[-51525.3203]],\n", - "\n", - " [[-51456.1133]],\n", - "\n", - " [[-51590.4023]],\n", - "\n", - " [[-51525.4180]],\n", - "\n", - " [[-51519.9570]],\n", - "\n", - " [[-51561.4648]],\n", - "\n", - " [[-51747.1719]],\n", - "\n", - " [[-51480.7617]],\n", - "\n", - " [[-51645.1992]],\n", - "\n", - " [[-51555.8867]],\n", - "\n", - " [[-51634.3320]],\n", - "\n", - " [[-51664.7266]],\n", - "\n", - " [[-51503.7422]],\n", - "\n", - " [[-51528.3359]],\n", - "\n", - " [[-51589.9102]],\n", - "\n", - " [[-51545.0078]],\n", - "\n", - " [[-51600.6836]],\n", - "\n", - " [[-51511.7188]],\n", - "\n", - " [[-51627.8555]],\n", - "\n", - " [[-51565.9531]],\n", - "\n", - " [[-51546.4688]],\n", - "\n", - " [[-51547.9258]],\n", - "\n", - " [[-51721.7891]],\n", - "\n", - " [[-51494.8203]],\n", - "\n", - " [[-51617.5078]],\n", - "\n", - " [[-51587.7656]],\n", - "\n", - " [[-51447.8359]],\n", - "\n", - " [[-51627.5234]],\n", - "\n", - " [[-51596.4766]],\n", - "\n", - " [[-51543.6289]],\n", - "\n", - " [[-51636.6602]],\n", - "\n", - " [[-51674.1914]],\n", - "\n", - " [[-51609.6055]],\n", - "\n", - " [[-51574.0625]],\n", - "\n", - " [[-51580.3359]],\n", - "\n", - " [[-51547.8359]],\n", - "\n", - " [[-51540.4180]],\n", - "\n", - " [[-51585.4961]],\n", - "\n", - " [[-51590.1133]],\n", - "\n", - " [[-51578.8555]],\n", - "\n", - " [[-51567.2656]],\n", - "\n", - " [[-51570.7148]],\n", - "\n", - " [[-51628.2188]],\n", - "\n", - " [[-51473.0781]],\n", - "\n", - " [[-51494.1719]],\n", - "\n", - " [[-51655.5625]],\n", - "\n", - " [[-51603.0742]],\n", - "\n", - " [[-51653.0898]],\n", - "\n", - " [[-51633.8633]],\n", - "\n", - " [[-51553.0859]],\n", - "\n", - " [[-51592.0820]],\n", - "\n", - " [[-51429.1836]],\n", - "\n", - " [[-51542.7305]],\n", - "\n", - " [[-51592.2578]],\n", - "\n", - " [[-51563.2305]],\n", - "\n", - " [[-51585.8750]],\n", - "\n", - " [[-51526.9766]],\n", - "\n", - " [[-51586.8945]],\n", - "\n", - " [[-51463.0859]],\n", - "\n", - " [[-51449.6992]],\n", - "\n", - " [[-51665.1719]],\n", - "\n", - " [[-51483.4883]],\n", - "\n", - " [[-51562.1562]],\n", - "\n", - " [[-51578.6680]],\n", - "\n", - " [[-51542.1367]],\n", - "\n", - " [[-51600.8281]],\n", - "\n", - " [[-51694.7617]],\n", - "\n", - " [[-51642.2422]],\n", - "\n", - " [[-51695.1367]],\n", - "\n", - " [[-51466.7539]],\n", - "\n", - " [[-51567.5469]],\n", - "\n", - " [[-51720.8828]],\n", - "\n", - " [[-51549.9570]],\n", - "\n", - " [[-51489.1836]],\n", - "\n", - " [[-51512.9844]],\n", - "\n", - " [[-51537.3984]]], grad_fn=)\n", - "tensor([[[-49989.0625]],\n", - "\n", - " [[-50112.4414]],\n", - "\n", - " [[-49930.3281]],\n", - "\n", - " [[-50141.0664]],\n", - "\n", - " [[-49932.1758]],\n", - "\n", - " [[-50001.5820]],\n", - "\n", - " [[-49954.4492]],\n", - "\n", - " [[-50004.1133]],\n", - "\n", - " [[-50085.2539]],\n", - "\n", - " [[-50014.1758]],\n", - "\n", - " [[-49979.6211]],\n", - "\n", - " [[-50075.8594]],\n", - "\n", - " [[-50024.6328]],\n", - "\n", - " [[-50094.8125]],\n", - "\n", - " [[-50069.0820]],\n", - "\n", - " [[-50004.2031]],\n", - "\n", - " [[-49843.6523]],\n", - "\n", - " [[-50046.9570]],\n", - "\n", - " [[-49960.1680]],\n", - "\n", - " [[-49954.6562]],\n", - "\n", - " [[-50093.8789]],\n", - "\n", - " [[-49964.6875]],\n", - "\n", - " [[-50025.9688]],\n", - "\n", - " [[-49970.1758]],\n", - "\n", - " [[-49977.9219]],\n", - "\n", - " [[-49968.2891]],\n", - "\n", - " [[-49962.9609]],\n", - "\n", - " [[-49872.1562]],\n", - "\n", - " [[-49987.1367]],\n", - "\n", - " [[-50032.7812]],\n", - "\n", - " [[-49990.0703]],\n", - "\n", - " [[-49905.6953]],\n", - "\n", - " [[-50102.9531]],\n", - "\n", - " [[-50023.1094]],\n", - "\n", - " [[-49984.1758]],\n", - "\n", - " [[-50036.0391]],\n", - "\n", - " [[-49958.4219]],\n", - "\n", - " [[-49950.5938]],\n", - "\n", - " [[-50026.4805]],\n", - "\n", - " [[-50125.0938]],\n", - "\n", - " [[-49937.3789]],\n", - "\n", - " [[-50020.1211]],\n", - "\n", - " [[-50004.2734]],\n", - "\n", - " [[-49959.8398]],\n", - "\n", - " [[-50016.6875]],\n", - "\n", - " [[-49992.3789]],\n", - "\n", - " [[-50024.1680]],\n", - "\n", - " [[-50099.7500]],\n", - "\n", - " [[-49874.9062]],\n", - "\n", - " [[-50083.9727]],\n", - "\n", - " [[-49974.4727]],\n", - "\n", - " [[-49969.3555]],\n", - "\n", - " [[-50135.2070]],\n", - "\n", - " [[-50026.8750]],\n", - "\n", - " [[-50137.9102]],\n", - "\n", - " [[-49985.8008]],\n", - "\n", - " [[-49928.8789]],\n", - "\n", - " [[-49922.6719]],\n", - "\n", - " [[-49914.2188]],\n", - "\n", - " [[-50009.5938]],\n", - "\n", - " [[-49981.4883]],\n", - "\n", - " [[-49880.9766]],\n", - "\n", - " [[-49916.3047]],\n", - "\n", - " [[-50079.8594]],\n", - "\n", - " [[-50164.4609]],\n", - "\n", - " [[-50038.8633]],\n", - "\n", - " [[-49944.2500]],\n", - "\n", - " [[-50001.7266]],\n", - "\n", - " [[-49987.5508]],\n", - "\n", - " [[-50128.8320]],\n", - "\n", - " [[-50084.1094]],\n", - "\n", - " [[-50102.8008]],\n", - "\n", - " [[-50087.5508]],\n", - "\n", - " [[-50002.9688]],\n", - "\n", - " [[-50005.6406]],\n", - "\n", - " [[-49918.0000]],\n", - "\n", - " [[-49983.3828]],\n", - "\n", - " [[-50029.7539]],\n", - "\n", - " [[-50082.9961]],\n", - "\n", - " [[-50169.1875]],\n", - "\n", - " [[-49927.6211]],\n", - "\n", - " [[-49939.0664]],\n", - "\n", - " [[-50033.6719]],\n", - "\n", - " [[-50034.1875]],\n", - "\n", - " [[-50048.5781]],\n", - "\n", - " [[-49917.5273]],\n", - "\n", - " [[-50023.6367]],\n", - "\n", - " [[-50027.6836]],\n", - "\n", - " [[-49922.2266]],\n", - "\n", - " [[-50051.0039]],\n", - "\n", - " [[-50097.1367]],\n", - "\n", - " [[-50019.6055]],\n", - "\n", - " [[-49887.7930]],\n", - "\n", - " [[-50047.2617]],\n", - "\n", - " [[-50081.0039]],\n", - "\n", - " [[-49968.8359]],\n", - "\n", - " [[-50080.7852]],\n", - "\n", - " [[-49977.8242]],\n", - "\n", - " [[-50129.7422]],\n", - "\n", - " [[-49980.9688]],\n", - "\n", - " [[-50013.7148]],\n", - "\n", - " [[-50057.5742]],\n", - "\n", - " [[-50110.0234]],\n", - "\n", - " [[-50042.8555]],\n", - "\n", - " [[-50066.5703]],\n", - "\n", - " [[-50141.6641]],\n", - "\n", - " [[-50042.6484]],\n", - "\n", - " [[-50050.7500]],\n", - "\n", - " [[-50167.1914]],\n", - "\n", - " [[-50032.5039]],\n", - "\n", - " [[-49964.2930]],\n", - "\n", - " [[-50012.3086]],\n", - "\n", - " [[-49956.6758]],\n", - "\n", - " [[-50017.7852]],\n", - "\n", - " [[-49923.8047]],\n", - "\n", - " [[-49952.2617]],\n", - "\n", - " [[-49978.5391]],\n", - "\n", - " [[-49992.6797]],\n", - "\n", - " [[-49892.9922]],\n", - "\n", - " [[-50109.5820]],\n", - "\n", - " [[-50088.6289]],\n", - "\n", - " [[-50041.8516]],\n", - "\n", - " [[-49913.8711]],\n", - "\n", - " [[-50025.8047]],\n", - "\n", - " [[-50026.6172]],\n", - "\n", - " [[-49916.4023]],\n", - "\n", - " [[-50079.5742]],\n", - "\n", - " [[-50032.8164]],\n", - "\n", - " [[-49964.5977]],\n", - "\n", - " [[-49874.1094]],\n", - "\n", - " [[-50034.8438]],\n", - "\n", - " [[-50047.4609]],\n", - "\n", - " [[-50041.6367]],\n", - "\n", - " [[-50005.8633]],\n", - "\n", - " [[-49929.5859]],\n", - "\n", - " [[-50059.7148]],\n", - "\n", - " [[-50067.9258]],\n", - "\n", - " [[-50055.4648]],\n", - "\n", - " [[-50072.9023]],\n", - "\n", - " [[-49880.9141]],\n", - "\n", - " [[-49921.1992]],\n", - "\n", - " [[-50035.0195]],\n", - "\n", - " [[-49994.7930]],\n", - "\n", - " [[-50026.6250]],\n", - "\n", - " [[-49986.0547]],\n", - "\n", - " [[-50089.6875]],\n", - "\n", - " [[-50098.1641]],\n", - "\n", - " [[-50009.5078]],\n", - "\n", - " [[-50083.9883]],\n", - "\n", - " [[-50090.6367]],\n", - "\n", - " [[-50002.9961]],\n", - "\n", - " [[-49910.7695]],\n", - "\n", - " [[-49934.0625]],\n", - "\n", - " [[-50015.8320]],\n", - "\n", - " [[-49864.5234]],\n", - "\n", - " [[-49979.5312]],\n", - "\n", - " [[-49994.0312]],\n", - "\n", - " [[-50006.8789]],\n", - "\n", - " [[-49996.3047]],\n", - "\n", - " [[-50000.1523]],\n", - "\n", - " [[-50041.3359]],\n", - "\n", - " [[-49931.0859]],\n", - "\n", - " [[-49887.3711]],\n", - "\n", - " [[-50042.1953]],\n", - "\n", - " [[-49969.8008]],\n", - "\n", - " [[-49960.6641]],\n", - "\n", - " [[-49969.9922]],\n", - "\n", - " [[-50013.4414]],\n", - "\n", - " [[-50082.2500]],\n", - "\n", - " [[-49985.4961]],\n", - "\n", - " [[-49974.2227]],\n", - "\n", - " [[-50054.6680]],\n", - "\n", - " [[-49865.8672]],\n", - "\n", - " [[-50068.5117]],\n", - "\n", - " [[-50046.8906]],\n", - "\n", - " [[-50046.5781]],\n", - "\n", - " [[-50040.2969]],\n", - "\n", - " [[-49915.8047]],\n", - "\n", - " [[-50075.3203]],\n", - "\n", - " [[-49925.4609]],\n", - "\n", - " [[-50031.3906]],\n", - "\n", - " [[-50039.1562]],\n", - "\n", - " [[-50019.9531]],\n", - "\n", - " [[-50007.6250]],\n", - "\n", - " [[-49954.4258]],\n", - "\n", - " [[-49983.2734]],\n", - "\n", - " [[-50104.4219]],\n", - "\n", - " [[-50034.8789]],\n", - "\n", - " [[-49940.5898]],\n", - "\n", - " [[-50144.3672]],\n", - "\n", - " [[-50055.1172]],\n", - "\n", - " [[-50041.2617]],\n", - "\n", - " [[-50024.0273]],\n", - "\n", - " [[-50122.2812]],\n", - "\n", - " [[-50109.8008]],\n", - "\n", - " [[-49906.2188]],\n", - "\n", - " [[-49995.0156]],\n", - "\n", - " [[-50020.1367]],\n", - "\n", - " [[-49963.9102]],\n", - "\n", - " [[-49944.6172]],\n", - "\n", - " [[-50086.3711]],\n", - "\n", - " [[-50023.6328]],\n", - "\n", - " [[-50052.1484]],\n", - "\n", - " [[-50096.4258]],\n", - "\n", - " [[-50022.6406]],\n", - "\n", - " [[-50110.0586]],\n", - "\n", - " [[-50106.3711]],\n", - "\n", - " [[-49975.8828]],\n", - "\n", - " [[-50049.6836]],\n", - "\n", - " [[-50001.6875]],\n", - "\n", - " [[-49928.4922]],\n", - "\n", - " [[-49902.4375]],\n", - "\n", - " [[-49860.0938]],\n", - "\n", - " [[-50040.6211]],\n", - "\n", - " [[-49993.0234]],\n", - "\n", - " [[-49969.5078]],\n", - "\n", - " [[-50066.8867]],\n", - "\n", - " [[-49871.1094]],\n", - "\n", - " [[-50008.7734]],\n", - "\n", - " [[-50020.9258]],\n", - "\n", - " [[-49967.1562]],\n", - "\n", - " [[-49960.6055]],\n", - "\n", - " [[-50001.2461]],\n", - "\n", - " [[-49957.6992]],\n", - "\n", - " [[-49996.1797]],\n", - "\n", - " [[-50029.1406]],\n", - "\n", - " [[-49972.0391]],\n", - "\n", - " [[-49944.3008]],\n", - "\n", - " [[-50022.7969]],\n", - "\n", - " [[-50002.0156]],\n", - "\n", - " [[-50033.1289]],\n", - "\n", - " [[-50121.5352]],\n", - "\n", - " [[-49951.6875]],\n", - "\n", - " [[-49944.4570]],\n", - "\n", - " [[-49849.6992]],\n", - "\n", - " [[-49975.4375]],\n", - "\n", - " [[-50033.2461]],\n", - "\n", - " [[-50035.0234]],\n", - "\n", - " [[-49957.1641]],\n", - "\n", - " [[-49983.9609]],\n", - "\n", - " [[-50004.2891]],\n", - "\n", - " [[-49860.0469]],\n", - "\n", - " [[-49886.0586]],\n", - "\n", - " [[-49974.4258]],\n", - "\n", - " [[-49885.5000]],\n", - "\n", - " [[-50048.1953]],\n", - "\n", - " [[-50012.7891]],\n", - "\n", - " [[-49989.6641]],\n", - "\n", - " [[-50041.6562]],\n", - "\n", - " [[-50136.5039]],\n", - "\n", - " [[-50144.4922]],\n", - "\n", - " [[-49879.9805]],\n", - "\n", - " [[-50128.4570]],\n", - "\n", - " [[-49866.5117]],\n", - "\n", - " [[-49997.1953]],\n", - "\n", - " [[-50004.9336]]], grad_fn=)\n", - "tensor([[[-48593.2617]],\n", - "\n", - " [[-48589.4258]],\n", - "\n", - " [[-48613.1406]],\n", - "\n", - " [[-48467.9219]],\n", - "\n", - " [[-48512.6094]],\n", - "\n", - " [[-48445.7773]],\n", - "\n", - " [[-48514.3320]],\n", - "\n", - " [[-48394.4062]],\n", - "\n", - " [[-48451.9414]],\n", - "\n", - " [[-48495.0430]],\n", - "\n", - " [[-48475.1328]],\n", - "\n", - " [[-48498.5547]],\n", - "\n", - " [[-48588.9336]],\n", - "\n", - " [[-48463.7461]],\n", - "\n", - " [[-48352.2422]],\n", - "\n", - " [[-48533.3047]],\n", - "\n", - " [[-48543.7031]],\n", - "\n", - " [[-48397.1758]],\n", - "\n", - " [[-48445.5977]],\n", - "\n", - " [[-48591.9414]],\n", - "\n", - " [[-48420.7305]],\n", - "\n", - " [[-48501.2656]],\n", - "\n", - " [[-48552.3516]],\n", - "\n", - " [[-48507.1719]],\n", - "\n", - " [[-48674.0469]],\n", - "\n", - " [[-48440.8008]],\n", - "\n", - " [[-48411.1094]],\n", - "\n", - " [[-48490.8789]],\n", - "\n", - " [[-48475.2266]],\n", - "\n", - " [[-48451.3516]],\n", - "\n", - " [[-48571.3281]],\n", - "\n", - " [[-48523.9688]],\n", - "\n", - " [[-48556.1523]],\n", - "\n", - " [[-48493.9727]],\n", - "\n", - " [[-48531.3516]],\n", - "\n", - " [[-48465.2773]],\n", - "\n", - " [[-48508.7305]],\n", - "\n", - " [[-48602.8438]],\n", - "\n", - " [[-48404.0586]],\n", - "\n", - " [[-48596.5234]],\n", - "\n", - " [[-48464.0977]],\n", - "\n", - " [[-48590.9688]],\n", - "\n", - " [[-48477.3555]],\n", - "\n", - " [[-48475.4531]],\n", - "\n", - " [[-48509.7461]],\n", - "\n", - " [[-48489.3086]],\n", - "\n", - " [[-48433.8047]],\n", - "\n", - " [[-48505.0781]],\n", - "\n", - " [[-48437.3359]],\n", - "\n", - " [[-48374.3789]],\n", - "\n", - " [[-48482.2422]],\n", - "\n", - " [[-48493.8789]],\n", - "\n", - " [[-48528.1445]],\n", - "\n", - " [[-48462.7500]],\n", - "\n", - " [[-48549.0898]],\n", - "\n", - " [[-48555.6953]],\n", - "\n", - " [[-48537.2070]],\n", - "\n", - " [[-48443.9258]],\n", - "\n", - " [[-48561.4414]],\n", - "\n", - " [[-48462.2734]],\n", - "\n", - " [[-48403.2812]],\n", - "\n", - " [[-48494.5586]],\n", - "\n", - " [[-48473.8398]],\n", - "\n", - " [[-48456.3672]],\n", - "\n", - " [[-48400.6367]],\n", - "\n", - " [[-48359.2148]],\n", - "\n", - " [[-48568.2812]],\n", - "\n", - " [[-48565.1836]],\n", - "\n", - " [[-48497.9297]],\n", - "\n", - " [[-48404.7031]],\n", - "\n", - " [[-48448.2148]],\n", - "\n", - " [[-48462.4492]],\n", - "\n", - " [[-48531.7383]],\n", - "\n", - " [[-48460.9414]],\n", - "\n", - " [[-48489.1328]],\n", - "\n", - " [[-48510.4648]],\n", - "\n", - " [[-48450.0000]],\n", - "\n", - " [[-48540.5586]],\n", - "\n", - " [[-48368.9961]],\n", - "\n", - " [[-48505.8242]],\n", - "\n", - " [[-48526.5156]],\n", - "\n", - " [[-48451.5938]],\n", - "\n", - " [[-48450.7344]],\n", - "\n", - " [[-48571.2383]],\n", - "\n", - " [[-48512.4141]],\n", - "\n", - " [[-48554.6211]],\n", - "\n", - " [[-48447.9492]],\n", - "\n", - " [[-48331.1133]],\n", - "\n", - " [[-48427.1328]],\n", - "\n", - " [[-48583.7422]],\n", - "\n", - " [[-48437.3750]],\n", - "\n", - " [[-48433.3281]],\n", - "\n", - " [[-48453.5234]],\n", - "\n", - " [[-48429.2617]],\n", - "\n", - " [[-48511.9609]],\n", - "\n", - " [[-48456.2773]],\n", - "\n", - " [[-48424.4727]],\n", - "\n", - " [[-48395.9258]],\n", - "\n", - " [[-48520.3203]],\n", - "\n", - " [[-48447.0781]],\n", - "\n", - " [[-48482.1875]],\n", - "\n", - " [[-48465.6055]],\n", - "\n", - " [[-48432.8828]],\n", - "\n", - " [[-48502.3164]],\n", - "\n", - " [[-48427.6719]],\n", - "\n", - " [[-48401.6055]],\n", - "\n", - " [[-48514.2891]],\n", - "\n", - " [[-48477.1289]],\n", - "\n", - " [[-48391.3047]],\n", - "\n", - " [[-48562.7539]],\n", - "\n", - " [[-48574.7148]],\n", - "\n", - " [[-48462.6172]],\n", - "\n", - " [[-48457.1133]],\n", - "\n", - " [[-48482.0625]],\n", - "\n", - " [[-48468.8516]],\n", - "\n", - " [[-48423.0781]],\n", - "\n", - " [[-48499.6914]],\n", - "\n", - " [[-48525.0664]],\n", - "\n", - " [[-48447.8555]],\n", - "\n", - " [[-48491.8398]],\n", - "\n", - " [[-48509.3711]],\n", - "\n", - " [[-48355.3125]],\n", - "\n", - " [[-48480.0625]],\n", - "\n", - " [[-48628.7656]],\n", - "\n", - " [[-48493.0859]],\n", - "\n", - " [[-48629.5820]],\n", - "\n", - " [[-48346.0859]],\n", - "\n", - " [[-48556.6172]],\n", - "\n", - " [[-48531.5977]],\n", - "\n", - " [[-48493.4570]],\n", - "\n", - " [[-48508.7461]],\n", - "\n", - " [[-48359.9766]],\n", - "\n", - " [[-48502.5039]],\n", - "\n", - " [[-48378.4336]],\n", - "\n", - " [[-48492.6992]],\n", - "\n", - " [[-48396.4609]],\n", - "\n", - " [[-48460.9961]],\n", - "\n", - " [[-48547.7227]],\n", - "\n", - " [[-48455.0898]],\n", - "\n", - " [[-48537.0586]],\n", - "\n", - " [[-48350.4688]],\n", - "\n", - " [[-48504.5664]],\n", - "\n", - " [[-48535.0703]],\n", - "\n", - " [[-48401.9805]],\n", - "\n", - " [[-48476.6875]],\n", - "\n", - " [[-48523.6289]],\n", - "\n", - " [[-48399.2969]],\n", - "\n", - " [[-48360.4883]],\n", - "\n", - " [[-48355.4297]],\n", - "\n", - " [[-48613.1289]],\n", - "\n", - " [[-48617.1953]],\n", - "\n", - " [[-48426.5547]],\n", - "\n", - " [[-48478.0625]],\n", - "\n", - " [[-48504.7891]],\n", - "\n", - " [[-48414.4727]],\n", - "\n", - " [[-48502.4102]],\n", - "\n", - " [[-48580.2852]],\n", - "\n", - " [[-48536.9258]],\n", - "\n", - " [[-48442.8516]],\n", - "\n", - " [[-48499.0547]],\n", - "\n", - " [[-48384.3867]],\n", - "\n", - " [[-48463.5469]],\n", - "\n", - " [[-48538.7891]],\n", - "\n", - " [[-48509.8750]],\n", - "\n", - " [[-48470.0586]],\n", - "\n", - " [[-48451.6289]],\n", - "\n", - " [[-48531.7812]],\n", - "\n", - " [[-48422.8750]],\n", - "\n", - " [[-48585.1133]],\n", - "\n", - " [[-48438.3320]],\n", - "\n", - " [[-48630.4375]],\n", - "\n", - " [[-48482.8164]],\n", - "\n", - " [[-48401.6406]],\n", - "\n", - " [[-48584.7930]],\n", - "\n", - " [[-48389.2812]],\n", - "\n", - " [[-48481.2891]],\n", - "\n", - " [[-48505.8047]],\n", - "\n", - " [[-48431.9688]],\n", - "\n", - " [[-48360.3906]],\n", - "\n", - " [[-48362.6328]],\n", - "\n", - " [[-48524.6680]],\n", - "\n", - " [[-48584.4219]],\n", - "\n", - " [[-48368.1523]],\n", - "\n", - " [[-48567.5977]],\n", - "\n", - " [[-48370.0820]],\n", - "\n", - " [[-48399.2695]],\n", - "\n", - " [[-48479.3008]],\n", - "\n", - " [[-48483.1328]],\n", - "\n", - " [[-48389.1641]],\n", - "\n", - " [[-48470.9023]],\n", - "\n", - " [[-48535.3867]],\n", - "\n", - " [[-48504.9297]],\n", - "\n", - " [[-48592.1914]],\n", - "\n", - " [[-48497.0039]],\n", - "\n", - " [[-48475.1992]],\n", - "\n", - " [[-48477.0508]],\n", - "\n", - " [[-48423.0898]],\n", - "\n", - " [[-48418.0469]],\n", - "\n", - " [[-48561.1523]],\n", - "\n", - " [[-48333.4492]],\n", - "\n", - " [[-48411.9922]],\n", - "\n", - " [[-48517.9609]],\n", - "\n", - " [[-48530.6406]],\n", - "\n", - " [[-48413.7383]],\n", - "\n", - " [[-48478.8359]],\n", - "\n", - " [[-48637.6836]],\n", - "\n", - " [[-48383.8320]],\n", - "\n", - " [[-48478.0781]],\n", - "\n", - " [[-48545.0234]],\n", - "\n", - " [[-48395.9766]],\n", - "\n", - " [[-48435.1719]],\n", - "\n", - " [[-48518.0898]],\n", - "\n", - " [[-48508.2422]],\n", - "\n", - " [[-48470.1836]],\n", - "\n", - " [[-48582.6445]],\n", - "\n", - " [[-48441.8125]],\n", - "\n", - " [[-48423.4141]],\n", - "\n", - " [[-48453.3828]],\n", - "\n", - " [[-48488.7148]],\n", - "\n", - " [[-48337.2305]],\n", - "\n", - " [[-48614.0469]],\n", - "\n", - " [[-48365.7305]],\n", - "\n", - " [[-48431.4141]],\n", - "\n", - " [[-48400.7188]],\n", - "\n", - " [[-48451.3906]],\n", - "\n", - " [[-48433.1211]],\n", - "\n", - " [[-48478.9961]],\n", - "\n", - " [[-48466.1094]],\n", - "\n", - " [[-48570.0352]],\n", - "\n", - " [[-48532.9297]],\n", - "\n", - " [[-48510.9375]],\n", - "\n", - " [[-48478.0000]],\n", - "\n", - " [[-48409.3711]],\n", - "\n", - " [[-48534.5938]],\n", - "\n", - " [[-48492.6172]],\n", - "\n", - " [[-48512.7734]],\n", - "\n", - " [[-48468.6016]],\n", - "\n", - " [[-48409.3945]],\n", - "\n", - " [[-48397.8359]],\n", - "\n", - " [[-48437.8711]],\n", - "\n", - " [[-48429.8164]],\n", - "\n", - " [[-48388.0078]],\n", - "\n", - " [[-48384.0391]],\n", - "\n", - " [[-48451.1758]],\n", - "\n", - " [[-48547.6641]],\n", - "\n", - " [[-48486.1602]],\n", - "\n", - " [[-48546.0898]],\n", - "\n", - " [[-48486.0078]],\n", - "\n", - " [[-48555.8008]],\n", - "\n", - " [[-48428.0586]],\n", - "\n", - " [[-48384.6719]],\n", - "\n", - " [[-48611.1484]],\n", - "\n", - " [[-48434.9258]],\n", - "\n", - " [[-48523.4258]],\n", - "\n", - " [[-48554.9766]],\n", - "\n", - " [[-48579.5000]]], grad_fn=)\n", - "tensor([[[-46931.9805]],\n", - "\n", - " [[-47013.5859]],\n", - "\n", - " [[-46979.1797]],\n", - "\n", - " [[-46992.3594]],\n", - "\n", - " [[-46858.7578]],\n", - "\n", - " [[-47106.4492]],\n", - "\n", - " [[-46987.9258]],\n", - "\n", - " [[-47022.6406]],\n", - "\n", - " [[-47106.3750]],\n", - "\n", - " [[-47052.7344]],\n", - "\n", - " [[-47087.2422]],\n", - "\n", - " [[-47116.7734]],\n", - "\n", - " [[-46908.0430]],\n", - "\n", - " [[-47097.7578]],\n", - "\n", - " [[-46929.5156]],\n", - "\n", - " [[-47010.5898]],\n", - "\n", - " [[-46948.9102]],\n", - "\n", - " [[-46842.7383]],\n", - "\n", - " [[-46998.9062]],\n", - "\n", - " [[-46992.9688]],\n", - "\n", - " [[-46974.0195]],\n", - "\n", - " [[-47015.2930]],\n", - "\n", - " [[-46993.0859]],\n", - "\n", - " [[-47028.3008]],\n", - "\n", - " [[-47112.3945]],\n", - "\n", - " [[-46975.7930]],\n", - "\n", - " [[-47120.2930]],\n", - "\n", - " [[-46810.4844]],\n", - "\n", - " [[-46959.6602]],\n", - "\n", - " [[-47119.6211]],\n", - "\n", - " [[-46942.3438]],\n", - "\n", - " [[-47099.8594]],\n", - "\n", - " [[-47001.9609]],\n", - "\n", - " [[-47018.9688]],\n", - "\n", - " [[-46903.8945]],\n", - "\n", - " [[-46934.0000]],\n", - "\n", - " [[-46953.2578]],\n", - "\n", - " [[-47039.1250]],\n", - "\n", - " [[-47031.4414]],\n", - "\n", - " [[-47042.5508]],\n", - "\n", - " [[-46941.5391]],\n", - "\n", - " [[-46998.6836]],\n", - "\n", - " [[-46978.6250]],\n", - "\n", - " [[-47026.5234]],\n", - "\n", - " [[-46989.3320]],\n", - "\n", - " [[-46998.3281]],\n", - "\n", - " [[-47018.5938]],\n", - "\n", - " [[-47132.7695]],\n", - "\n", - " [[-46963.8789]],\n", - "\n", - " [[-46875.0430]],\n", - "\n", - " [[-46843.8047]],\n", - "\n", - " [[-46974.1016]],\n", - "\n", - " [[-47045.2812]],\n", - "\n", - " [[-47135.2070]],\n", - "\n", - " [[-46953.5820]],\n", - "\n", - " [[-47010.5508]],\n", - "\n", - " [[-47102.8750]],\n", - "\n", - " [[-47060.9648]],\n", - "\n", - " [[-46973.3086]],\n", - "\n", - " [[-46994.7031]],\n", - "\n", - " [[-47060.8281]],\n", - "\n", - " [[-46919.8555]],\n", - "\n", - " [[-47172.6914]],\n", - "\n", - " [[-46972.6562]],\n", - "\n", - " [[-47120.4961]],\n", - "\n", - " [[-47116.1680]],\n", - "\n", - " [[-47083.1016]],\n", - "\n", - " [[-46883.0664]],\n", - "\n", - " [[-47004.9609]],\n", - "\n", - " [[-47054.9062]],\n", - "\n", - " [[-46918.9883]],\n", - "\n", - " [[-47042.4297]],\n", - "\n", - " [[-47059.7812]],\n", - "\n", - " [[-47082.7148]],\n", - "\n", - " [[-47052.4805]],\n", - "\n", - " [[-47087.1953]],\n", - "\n", - " [[-47042.8086]],\n", - "\n", - " [[-47139.9492]],\n", - "\n", - " [[-46956.9570]],\n", - "\n", - " [[-47059.5508]],\n", - "\n", - " [[-47037.8672]],\n", - "\n", - " [[-46972.9883]],\n", - "\n", - " [[-46912.8086]],\n", - "\n", - " [[-47057.3711]],\n", - "\n", - " [[-46924.4141]],\n", - "\n", - " [[-46859.8867]],\n", - "\n", - " [[-47200.6211]],\n", - "\n", - " [[-46854.5469]],\n", - "\n", - " [[-47050.6914]],\n", - "\n", - " [[-46932.2344]],\n", - "\n", - " [[-46814.9805]],\n", - "\n", - " [[-47081.5703]],\n", - "\n", - " [[-46960.5703]],\n", - "\n", - " [[-46943.2617]],\n", - "\n", - " [[-47026.9570]],\n", - "\n", - " [[-46914.3359]],\n", - "\n", - " [[-47023.7344]],\n", - "\n", - " [[-47059.8750]],\n", - "\n", - " [[-47022.3594]],\n", - "\n", - " [[-47008.0625]],\n", - "\n", - " [[-46998.9844]],\n", - "\n", - " [[-46999.5391]],\n", - "\n", - " [[-46919.7070]],\n", - "\n", - " [[-46864.5664]],\n", - "\n", - " [[-47063.9219]],\n", - "\n", - " [[-47033.8555]],\n", - "\n", - " [[-47095.2969]],\n", - "\n", - " [[-47009.6172]],\n", - "\n", - " [[-46836.4453]],\n", - "\n", - " [[-46954.3359]],\n", - "\n", - " [[-46962.5859]],\n", - "\n", - " [[-46949.9336]],\n", - "\n", - " [[-46993.7148]],\n", - "\n", - " [[-47070.0938]],\n", - "\n", - " [[-47160.1562]],\n", - "\n", - " [[-47109.3164]],\n", - "\n", - " [[-46948.0781]],\n", - "\n", - " [[-47019.1719]],\n", - "\n", - " [[-47061.5586]],\n", - "\n", - " [[-46849.4023]],\n", - "\n", - " [[-47009.4648]],\n", - "\n", - " [[-47106.0156]],\n", - "\n", - " [[-47012.9023]],\n", - "\n", - " [[-47080.9414]],\n", - "\n", - " [[-47019.3867]],\n", - "\n", - " [[-47063.9375]],\n", - "\n", - " [[-46894.8711]],\n", - "\n", - " [[-46992.9062]],\n", - "\n", - " [[-46917.2617]],\n", - "\n", - " [[-46957.1484]],\n", - "\n", - " [[-46919.1055]],\n", - "\n", - " [[-47136.6797]],\n", - "\n", - " [[-46918.9180]],\n", - "\n", - " [[-46953.2812]],\n", - "\n", - " [[-47007.7109]],\n", - "\n", - " [[-47018.5664]],\n", - "\n", - " [[-47064.6367]],\n", - "\n", - " [[-46855.1133]],\n", - "\n", - " [[-47081.8594]],\n", - "\n", - " [[-47061.8320]],\n", - "\n", - " [[-47008.6445]],\n", - "\n", - " [[-47099.2734]],\n", - "\n", - " [[-46911.4453]],\n", - "\n", - " [[-46838.7070]],\n", - "\n", - " [[-46926.9609]],\n", - "\n", - " [[-46949.2773]],\n", - "\n", - " [[-46999.8828]],\n", - "\n", - " [[-47012.4883]],\n", - "\n", - " [[-46930.0156]],\n", - "\n", - " [[-47024.2695]],\n", - "\n", - " [[-46982.5156]],\n", - "\n", - " [[-46911.7734]],\n", - "\n", - " [[-46897.7734]],\n", - "\n", - " [[-47064.1719]],\n", - "\n", - " [[-47057.9609]],\n", - "\n", - " [[-46949.2852]],\n", - "\n", - " [[-46930.0195]],\n", - "\n", - " [[-46843.5078]],\n", - "\n", - " [[-47011.1562]],\n", - "\n", - " [[-47095.0352]],\n", - "\n", - " [[-46933.5312]],\n", - "\n", - " [[-46930.9648]],\n", - "\n", - " [[-46996.2461]],\n", - "\n", - " [[-46921.3203]],\n", - "\n", - " [[-46986.8359]],\n", - "\n", - " [[-46937.0664]],\n", - "\n", - " [[-47050.4648]],\n", - "\n", - " [[-46978.4727]],\n", - "\n", - " [[-46935.5234]],\n", - "\n", - " [[-46906.3164]],\n", - "\n", - " [[-46925.8359]],\n", - "\n", - " [[-47158.6875]],\n", - "\n", - " [[-46876.6562]],\n", - "\n", - " [[-47008.4453]],\n", - "\n", - " [[-46848.5625]],\n", - "\n", - " [[-46897.4336]],\n", - "\n", - " [[-46973.2266]],\n", - "\n", - " [[-46944.0195]],\n", - "\n", - " [[-46900.4414]],\n", - "\n", - " [[-46908.8828]],\n", - "\n", - " [[-47059.4297]],\n", - "\n", - " [[-46965.4141]],\n", - "\n", - " [[-46892.9023]],\n", - "\n", - " [[-47054.4453]],\n", - "\n", - " [[-46999.0859]],\n", - "\n", - " [[-46903.3672]],\n", - "\n", - " [[-46944.6250]],\n", - "\n", - " [[-47021.1367]],\n", - "\n", - " [[-46981.5195]],\n", - "\n", - " [[-47231.8984]],\n", - "\n", - " [[-47030.7852]],\n", - "\n", - " [[-47058.7578]],\n", - "\n", - " [[-47016.4258]],\n", - "\n", - " [[-46970.1133]],\n", - "\n", - " [[-46897.5781]],\n", - "\n", - " [[-46993.8945]],\n", - "\n", - " [[-47010.1484]],\n", - "\n", - " [[-46990.3945]],\n", - "\n", - " [[-46927.4531]],\n", - "\n", - " [[-46986.6406]],\n", - "\n", - " [[-47020.2031]],\n", - "\n", - " [[-46929.6094]],\n", - "\n", - " [[-46915.7773]],\n", - "\n", - " [[-46912.5156]],\n", - "\n", - " [[-46999.3047]],\n", - "\n", - " [[-46926.3828]],\n", - "\n", - " [[-46952.7500]],\n", - "\n", - " [[-46958.5586]],\n", - "\n", - " [[-47188.2148]],\n", - "\n", - " [[-46811.8242]],\n", - "\n", - " [[-46927.5547]],\n", - "\n", - " [[-46848.5664]],\n", - "\n", - " [[-47040.1523]],\n", - "\n", - " [[-46974.2891]],\n", - "\n", - " [[-47005.0117]],\n", - "\n", - " [[-47111.3711]],\n", - "\n", - " [[-46954.1406]],\n", - "\n", - " [[-47053.1172]],\n", - "\n", - " [[-46851.8047]],\n", - "\n", - " [[-46951.0430]],\n", - "\n", - " [[-47091.4883]],\n", - "\n", - " [[-47127.1211]],\n", - "\n", - " [[-46973.3945]],\n", - "\n", - " [[-47006.5781]],\n", - "\n", - " [[-46971.9297]],\n", - "\n", - " [[-46993.5586]],\n", - "\n", - " [[-46930.9883]],\n", - "\n", - " [[-47006.1211]],\n", - "\n", - " [[-46879.1758]],\n", - "\n", - " [[-46968.2109]],\n", - "\n", - " [[-46895.8750]],\n", - "\n", - " [[-46960.7969]],\n", - "\n", - " [[-47071.9492]],\n", - "\n", - " [[-46942.1836]],\n", - "\n", - " [[-47022.3750]],\n", - "\n", - " [[-46935.7891]],\n", - "\n", - " [[-47123.8477]],\n", - "\n", - " [[-46990.7930]],\n", - "\n", - " [[-46943.2773]],\n", - "\n", - " [[-46933.0898]],\n", - "\n", - " [[-46932.5234]],\n", - "\n", - " [[-47012.7383]],\n", - "\n", - " [[-46965.2656]],\n", - "\n", - " [[-46973.7578]],\n", - "\n", - " [[-46857.7695]],\n", - "\n", - " [[-46979.8320]],\n", - "\n", - " [[-46942.3633]],\n", - "\n", - " [[-46950.0312]],\n", - "\n", - " [[-46953.0195]],\n", - "\n", - " [[-47035.4492]],\n", - "\n", - " [[-46878.0078]],\n", - "\n", - " [[-47032.9219]],\n", - "\n", - " [[-46977.7773]],\n", - "\n", - " [[-47058.4883]],\n", - "\n", - " [[-46947.8633]],\n", - "\n", - " [[-46949.9648]]], grad_fn=)\n", - "tensor([[[-45586.7188]],\n", - "\n", - " [[-45550.5820]],\n", - "\n", - " [[-45399.3359]],\n", - "\n", - " [[-45539.1211]],\n", - "\n", - " [[-45602.3047]],\n", - "\n", - " [[-45527.3008]],\n", - "\n", - " [[-45583.5859]],\n", - "\n", - " [[-45681.8281]],\n", - "\n", - " [[-45728.9102]],\n", - "\n", - " [[-45696.8750]],\n", - "\n", - " [[-45409.5078]],\n", - "\n", - " [[-45535.0781]],\n", - "\n", - " [[-45545.2031]],\n", - "\n", - " [[-45469.6680]],\n", - "\n", - " [[-45487.8516]],\n", - "\n", - " [[-45464.7539]],\n", - "\n", - " [[-45442.2695]],\n", - "\n", - " [[-45462.8672]],\n", - "\n", - " [[-45623.6328]],\n", - "\n", - " [[-45409.7891]],\n", - "\n", - " [[-45526.2422]],\n", - "\n", - " [[-45361.2305]],\n", - "\n", - " [[-45405.0898]],\n", - "\n", - " [[-45590.9688]],\n", - "\n", - " [[-45621.2930]],\n", - "\n", - " [[-45587.3789]],\n", - "\n", - " [[-45549.5391]],\n", - "\n", - " [[-45442.6445]],\n", - "\n", - " [[-45563.9844]],\n", - "\n", - " [[-45532.9805]],\n", - "\n", - " [[-45588.1836]],\n", - "\n", - " [[-45570.8867]],\n", - "\n", - " [[-45598.6484]],\n", - "\n", - " [[-45656.2109]],\n", - "\n", - " [[-45574.5508]],\n", - "\n", - " [[-45668.3242]],\n", - "\n", - " [[-45612.2305]],\n", - "\n", - " [[-45569.4141]],\n", - "\n", - " [[-45480.1367]],\n", - "\n", - " [[-45421.6562]],\n", - "\n", - " [[-45561.4023]],\n", - "\n", - " [[-45421.1875]],\n", - "\n", - " [[-45539.1719]],\n", - "\n", - " [[-45529.0234]],\n", - "\n", - " [[-45585.7695]],\n", - "\n", - " [[-45541.3789]],\n", - "\n", - " [[-45462.3398]],\n", - "\n", - " [[-45559.1250]],\n", - "\n", - " [[-45620.6836]],\n", - "\n", - " [[-45513.4062]],\n", - "\n", - " [[-45523.3320]],\n", - "\n", - " [[-45470.6797]],\n", - "\n", - " [[-45524.3984]],\n", - "\n", - " [[-45579.0156]],\n", - "\n", - " [[-45561.7422]],\n", - "\n", - " [[-45508.0547]],\n", - "\n", - " [[-45457.7500]],\n", - "\n", - " [[-45604.1406]],\n", - "\n", - " [[-45503.7266]],\n", - "\n", - " [[-45658.9336]],\n", - "\n", - " [[-45468.7656]],\n", - "\n", - " [[-45520.3828]],\n", - "\n", - " [[-45630.2070]],\n", - "\n", - " [[-45524.3672]],\n", - "\n", - " [[-45565.7773]],\n", - "\n", - " [[-45596.6445]],\n", - "\n", - " [[-45455.4258]],\n", - "\n", - " [[-45588.5352]],\n", - "\n", - " [[-45608.9297]],\n", - "\n", - " [[-45605.7891]],\n", - "\n", - " [[-45514.6211]],\n", - "\n", - " [[-45604.8398]],\n", - "\n", - " [[-45565.1680]],\n", - "\n", - " [[-45483.5117]],\n", - "\n", - " [[-45554.1055]],\n", - "\n", - " [[-45573.6367]],\n", - "\n", - " [[-45617.4219]],\n", - "\n", - " [[-45538.0664]],\n", - "\n", - " [[-45539.4414]],\n", - "\n", - " [[-45504.4766]],\n", - "\n", - " [[-45564.0078]],\n", - "\n", - " [[-45505.2070]],\n", - "\n", - " [[-45632.1719]],\n", - "\n", - " [[-45411.7266]],\n", - "\n", - " [[-45544.8789]],\n", - "\n", - " [[-45534.4062]],\n", - "\n", - " [[-45644.5859]],\n", - "\n", - " [[-45557.2227]],\n", - "\n", - " [[-45544.2852]],\n", - "\n", - " [[-45551.9023]],\n", - "\n", - " [[-45625.1016]],\n", - "\n", - " [[-45463.3477]],\n", - "\n", - " [[-45592.7148]],\n", - "\n", - " [[-45529.5117]],\n", - "\n", - " [[-45517.9453]],\n", - "\n", - " [[-45498.7969]],\n", - "\n", - " [[-45490.5586]],\n", - "\n", - " [[-45409.4531]],\n", - "\n", - " [[-45547.7734]],\n", - "\n", - " [[-45440.7383]],\n", - "\n", - " [[-45619.7188]],\n", - "\n", - " [[-45482.7695]],\n", - "\n", - " [[-45587.6445]],\n", - "\n", - " [[-45655.6289]],\n", - "\n", - " [[-45368.3789]],\n", - "\n", - " [[-45629.2891]],\n", - "\n", - " [[-45639.4961]],\n", - "\n", - " [[-45542.1719]],\n", - "\n", - " [[-45465.0508]],\n", - "\n", - " [[-45613.0078]],\n", - "\n", - " [[-45596.6680]],\n", - "\n", - " [[-45476.2578]],\n", - "\n", - " [[-45388.2852]],\n", - "\n", - " [[-45575.9766]],\n", - "\n", - " [[-45593.8750]],\n", - "\n", - " [[-45709.2344]],\n", - "\n", - " [[-45530.0586]],\n", - "\n", - " [[-45549.0195]],\n", - "\n", - " [[-45429.3945]],\n", - "\n", - " [[-45676.8516]],\n", - "\n", - " [[-45571.3281]],\n", - "\n", - " [[-45665.1094]],\n", - "\n", - " [[-45453.0859]],\n", - "\n", - " [[-45619.1875]],\n", - "\n", - " [[-45367.1172]],\n", - "\n", - " [[-45601.7188]],\n", - "\n", - " [[-45396.4336]],\n", - "\n", - " [[-45552.2031]],\n", - "\n", - " [[-45628.5391]],\n", - "\n", - " [[-45447.2148]],\n", - "\n", - " [[-45625.0547]],\n", - "\n", - " [[-45533.8398]],\n", - "\n", - " [[-45620.6328]],\n", - "\n", - " [[-45549.2930]],\n", - "\n", - " [[-45534.1680]],\n", - "\n", - " [[-45532.2539]],\n", - "\n", - " [[-45549.0977]],\n", - "\n", - " [[-45506.8789]],\n", - "\n", - " [[-45468.4961]],\n", - "\n", - " [[-45520.4414]],\n", - "\n", - " [[-45496.0742]],\n", - "\n", - " [[-45636.7461]],\n", - "\n", - " [[-45632.8711]],\n", - "\n", - " [[-45492.3281]],\n", - "\n", - " [[-45562.6953]],\n", - "\n", - " [[-45583.3633]],\n", - "\n", - " [[-45677.3125]],\n", - "\n", - " [[-45542.6328]],\n", - "\n", - " [[-45384.0156]],\n", - "\n", - " [[-45476.2188]],\n", - "\n", - " [[-45578.8008]],\n", - "\n", - " [[-45619.5977]],\n", - "\n", - " [[-45514.4453]],\n", - "\n", - " [[-45471.0039]],\n", - "\n", - " [[-45639.1875]],\n", - "\n", - " [[-45483.7344]],\n", - "\n", - " [[-45553.5195]],\n", - "\n", - " [[-45636.4141]],\n", - "\n", - " [[-45404.9414]],\n", - "\n", - " [[-45575.4297]],\n", - "\n", - " [[-45404.5781]],\n", - "\n", - " [[-45605.5977]],\n", - "\n", - " [[-45473.3789]],\n", - "\n", - " [[-45401.8828]],\n", - "\n", - " [[-45489.7148]],\n", - "\n", - " [[-45446.1367]],\n", - "\n", - " [[-45644.5664]],\n", - "\n", - " [[-45575.1680]],\n", - "\n", - " [[-45488.0078]],\n", - "\n", - " [[-45546.3789]],\n", - "\n", - " [[-45633.4023]],\n", - "\n", - " [[-45543.3555]],\n", - "\n", - " [[-45558.1914]],\n", - "\n", - " [[-45574.1055]],\n", - "\n", - " [[-45636.1445]],\n", - "\n", - " [[-45480.3086]],\n", - "\n", - " [[-45538.9062]],\n", - "\n", - " [[-45566.4141]],\n", - "\n", - " [[-45508.5195]],\n", - "\n", - " [[-45584.4375]],\n", - "\n", - " [[-45566.0703]],\n", - "\n", - " [[-45571.2422]],\n", - "\n", - " [[-45485.4102]],\n", - "\n", - " [[-45582.4062]],\n", - "\n", - " [[-45460.3477]],\n", - "\n", - " [[-45529.4375]],\n", - "\n", - " [[-45558.2891]],\n", - "\n", - " [[-45533.9297]],\n", - "\n", - " [[-45634.5859]],\n", - "\n", - " [[-45420.8984]],\n", - "\n", - " [[-45486.8594]],\n", - "\n", - " [[-45544.6016]],\n", - "\n", - " [[-45621.8867]],\n", - "\n", - " [[-45583.0742]],\n", - "\n", - " [[-45762.8320]],\n", - "\n", - " [[-45659.7227]],\n", - "\n", - " [[-45538.3242]],\n", - "\n", - " [[-45587.3164]],\n", - "\n", - " [[-45522.7695]],\n", - "\n", - " [[-45450.7500]],\n", - "\n", - " [[-45552.2383]],\n", - "\n", - " [[-45502.0547]],\n", - "\n", - " [[-45564.2773]],\n", - "\n", - " [[-45605.6016]],\n", - "\n", - " [[-45521.9922]],\n", - "\n", - " [[-45435.5859]],\n", - "\n", - " [[-45587.6484]],\n", - "\n", - " [[-45528.7930]],\n", - "\n", - " [[-45518.9844]],\n", - "\n", - " [[-45514.9453]],\n", - "\n", - " [[-45524.1016]],\n", - "\n", - " [[-45586.2031]],\n", - "\n", - " [[-45419.8789]],\n", - "\n", - " [[-45547.9922]],\n", - "\n", - " [[-45471.0391]],\n", - "\n", - " [[-45503.4375]],\n", - "\n", - " [[-45439.3711]],\n", - "\n", - " [[-45459.8945]],\n", - "\n", - " [[-45401.4531]],\n", - "\n", - " [[-45521.0039]],\n", - "\n", - " [[-45560.3594]],\n", - "\n", - " [[-45597.1289]],\n", - "\n", - " [[-45573.0586]],\n", - "\n", - " [[-45498.3242]],\n", - "\n", - " [[-45573.9922]],\n", - "\n", - " [[-45392.8750]],\n", - "\n", - " [[-45530.1797]],\n", - "\n", - " [[-45591.5820]],\n", - "\n", - " [[-45586.5703]],\n", - "\n", - " [[-45419.2578]],\n", - "\n", - " [[-45467.7734]],\n", - "\n", - " [[-45550.1992]],\n", - "\n", - " [[-45682.7969]],\n", - "\n", - " [[-45722.0352]],\n", - "\n", - " [[-45482.5938]],\n", - "\n", - " [[-45668.5586]],\n", - "\n", - " [[-45485.4922]],\n", - "\n", - " [[-45601.5234]],\n", - "\n", - " [[-45752.4023]],\n", - "\n", - " [[-45584.5781]],\n", - "\n", - " [[-45500.4180]],\n", - "\n", - " [[-45465.0703]],\n", - "\n", - " [[-45493.7266]],\n", - "\n", - " [[-45576.8203]],\n", - "\n", - " [[-45557.0273]],\n", - "\n", - " [[-45518.6289]],\n", - "\n", - " [[-45675.5000]],\n", - "\n", - " [[-45515.1484]],\n", - "\n", - " [[-45516.2188]],\n", - "\n", - " [[-45564.9062]],\n", - "\n", - " [[-45531.4531]],\n", - "\n", - " [[-45497.7227]],\n", - "\n", - " [[-45494.8516]],\n", - "\n", - " [[-45588.2305]],\n", - "\n", - " [[-45471.4766]],\n", - "\n", - " [[-45572.9961]]], grad_fn=)\n", - "tensor([[[-44231.1758]],\n", - "\n", - " [[-44119.0703]],\n", - "\n", - " [[-44247.6406]],\n", - "\n", - " [[-44058.1758]],\n", - "\n", - " [[-44091.8242]],\n", - "\n", - " [[-44158.4883]],\n", - "\n", - " [[-44165.4961]],\n", - "\n", - " [[-44081.2188]],\n", - "\n", - " [[-43974.2969]],\n", - "\n", - " [[-43983.7891]],\n", - "\n", - " [[-44118.9922]],\n", - "\n", - " [[-44263.8633]],\n", - "\n", - " [[-44085.3047]],\n", - "\n", - " [[-43977.4336]],\n", - "\n", - " [[-44180.2070]],\n", - "\n", - " [[-44055.2266]],\n", - "\n", - " [[-44081.2227]],\n", - "\n", - " [[-44154.6445]],\n", - "\n", - " [[-44134.4258]],\n", - "\n", - " [[-44226.7891]],\n", - "\n", - " [[-44258.1094]],\n", - "\n", - " [[-44137.4062]],\n", - "\n", - " [[-44115.4219]],\n", - "\n", - " [[-44154.7461]],\n", - "\n", - " [[-43947.2266]],\n", - "\n", - " [[-44071.8008]],\n", - "\n", - " [[-44030.9648]],\n", - "\n", - " [[-44173.0664]],\n", - "\n", - " [[-44136.4453]],\n", - "\n", - " [[-44167.6602]],\n", - "\n", - " [[-44104.9141]],\n", - "\n", - " [[-44042.1406]],\n", - "\n", - " [[-44254.0352]],\n", - "\n", - " [[-44037.4961]],\n", - "\n", - " [[-43996.2500]],\n", - "\n", - " [[-44074.3672]],\n", - "\n", - " [[-44070.1641]],\n", - "\n", - " [[-44061.4062]],\n", - "\n", - " [[-44064.2852]],\n", - "\n", - " [[-44154.7930]],\n", - "\n", - " [[-44050.9023]],\n", - "\n", - " [[-43951.1367]],\n", - "\n", - " [[-44010.5703]],\n", - "\n", - " [[-44155.4336]],\n", - "\n", - " [[-44079.7773]],\n", - "\n", - " [[-44148.3008]],\n", - "\n", - " [[-44043.8555]],\n", - "\n", - " [[-43972.6094]],\n", - "\n", - " [[-44042.8203]],\n", - "\n", - " [[-44142.8906]],\n", - "\n", - " [[-44126.7930]],\n", - "\n", - " [[-44071.2383]],\n", - "\n", - " [[-44086.1055]],\n", - "\n", - " [[-44092.4805]],\n", - "\n", - " [[-44005.3398]],\n", - "\n", - " [[-44023.6406]],\n", - "\n", - " [[-44133.6484]],\n", - "\n", - " [[-44061.4336]],\n", - "\n", - " [[-44308.2812]],\n", - "\n", - " [[-44243.3711]],\n", - "\n", - " [[-44070.1328]],\n", - "\n", - " [[-44150.9453]],\n", - "\n", - " [[-44124.5586]],\n", - "\n", - " [[-44239.6836]],\n", - "\n", - " [[-44114.4922]],\n", - "\n", - " [[-44102.2734]],\n", - "\n", - " [[-43968.2852]],\n", - "\n", - " [[-44122.9180]],\n", - "\n", - " [[-44241.5078]],\n", - "\n", - " [[-44110.2344]],\n", - "\n", - " [[-44170.2617]],\n", - "\n", - " [[-44053.1172]],\n", - "\n", - " [[-44162.1914]],\n", - "\n", - " [[-44178.8203]],\n", - "\n", - " [[-44195.8125]],\n", - "\n", - " [[-44136.3828]],\n", - "\n", - " [[-43992.2695]],\n", - "\n", - " [[-44136.3477]],\n", - "\n", - " [[-44061.3789]],\n", - "\n", - " [[-44066.2031]],\n", - "\n", - " [[-44121.3867]],\n", - "\n", - " [[-44090.4648]],\n", - "\n", - " [[-44183.0742]],\n", - "\n", - " [[-44316.5938]],\n", - "\n", - " [[-44113.4531]],\n", - "\n", - " [[-44090.8125]],\n", - "\n", - " [[-44008.1875]],\n", - "\n", - " [[-43957.9023]],\n", - "\n", - " [[-44102.9727]],\n", - "\n", - " [[-44187.1914]],\n", - "\n", - " [[-44184.1562]],\n", - "\n", - " [[-44151.5234]],\n", - "\n", - " [[-44060.2070]],\n", - "\n", - " [[-44105.1836]],\n", - "\n", - " [[-44016.9023]],\n", - "\n", - " [[-44171.2773]],\n", - "\n", - " [[-43994.6797]],\n", - "\n", - " [[-44177.0234]],\n", - "\n", - " [[-44129.6523]],\n", - "\n", - " [[-44051.9492]],\n", - "\n", - " [[-44088.1172]],\n", - "\n", - " [[-44016.8359]],\n", - "\n", - " [[-44172.3633]],\n", - "\n", - " [[-44145.1250]],\n", - "\n", - " [[-44105.4531]],\n", - "\n", - " [[-44230.1445]],\n", - "\n", - " [[-44101.8164]],\n", - "\n", - " [[-44222.6953]],\n", - "\n", - " [[-44149.0586]],\n", - "\n", - " [[-44129.6133]],\n", - "\n", - " [[-44068.2969]],\n", - "\n", - " [[-44077.5156]],\n", - "\n", - " [[-44372.6484]],\n", - "\n", - " [[-44233.8516]],\n", - "\n", - " [[-44105.5000]],\n", - "\n", - " [[-44169.2773]],\n", - "\n", - " [[-44110.4727]],\n", - "\n", - " [[-44217.6836]],\n", - "\n", - " [[-44067.9609]],\n", - "\n", - " [[-44197.9727]],\n", - "\n", - " [[-44178.5195]],\n", - "\n", - " [[-44122.2344]],\n", - "\n", - " [[-44248.4141]],\n", - "\n", - " [[-44165.3906]],\n", - "\n", - " [[-44019.7461]],\n", - "\n", - " [[-44075.6484]],\n", - "\n", - " [[-44179.8281]],\n", - "\n", - " [[-44153.7148]],\n", - "\n", - " [[-44065.2578]],\n", - "\n", - " [[-44206.1914]],\n", - "\n", - " [[-44146.2969]],\n", - "\n", - " [[-44145.3242]],\n", - "\n", - " [[-44169.2734]],\n", - "\n", - " [[-44122.2773]],\n", - "\n", - " [[-44048.9883]],\n", - "\n", - " [[-44197.1562]],\n", - "\n", - " [[-44142.3555]],\n", - "\n", - " [[-43991.7461]],\n", - "\n", - " [[-43984.2422]],\n", - "\n", - " [[-44069.5078]],\n", - "\n", - " [[-44054.6367]],\n", - "\n", - " [[-44129.3203]],\n", - "\n", - " [[-44369.4414]],\n", - "\n", - " [[-44056.2734]],\n", - "\n", - " [[-43982.3750]],\n", - "\n", - " [[-44155.8164]],\n", - "\n", - " [[-44005.0273]],\n", - "\n", - " [[-44166.0195]],\n", - "\n", - " [[-44211.0312]],\n", - "\n", - " [[-44166.9609]],\n", - "\n", - " [[-44152.1797]],\n", - "\n", - " [[-44077.0469]],\n", - "\n", - " [[-44188.0664]],\n", - "\n", - " [[-44000.4258]],\n", - "\n", - " [[-44013.6016]],\n", - "\n", - " [[-44061.0898]],\n", - "\n", - " [[-44180.4922]],\n", - "\n", - " [[-44054.0234]],\n", - "\n", - " [[-44225.4531]],\n", - "\n", - " [[-44121.8008]],\n", - "\n", - " [[-44250.1445]],\n", - "\n", - " [[-44117.0586]],\n", - "\n", - " [[-44122.6797]],\n", - "\n", - " [[-44142.1289]],\n", - "\n", - " [[-43972.1016]],\n", - "\n", - " [[-44046.4258]],\n", - "\n", - " [[-44228.0078]],\n", - "\n", - " [[-44295.1250]],\n", - "\n", - " [[-44194.8516]],\n", - "\n", - " [[-44287.4453]],\n", - "\n", - " [[-44188.1992]],\n", - "\n", - " [[-44071.6250]],\n", - "\n", - " [[-44161.6953]],\n", - "\n", - " [[-44048.9961]],\n", - "\n", - " [[-44155.9688]],\n", - "\n", - " [[-44176.3867]],\n", - "\n", - " [[-44157.1289]],\n", - "\n", - " [[-44250.1953]],\n", - "\n", - " [[-44093.3047]],\n", - "\n", - " [[-44089.9180]],\n", - "\n", - " [[-44235.1211]],\n", - "\n", - " [[-44086.6562]],\n", - "\n", - " [[-44115.4023]],\n", - "\n", - " [[-44282.3906]],\n", - "\n", - " [[-44093.0664]],\n", - "\n", - " [[-44086.9062]],\n", - "\n", - " [[-44219.5430]],\n", - "\n", - " [[-44045.5352]],\n", - "\n", - " [[-44151.4453]],\n", - "\n", - " [[-44229.0352]],\n", - "\n", - " [[-44161.3008]],\n", - "\n", - " [[-44051.2109]],\n", - "\n", - " [[-44081.2812]],\n", - "\n", - " [[-44147.8125]],\n", - "\n", - " [[-43977.1953]],\n", - "\n", - " [[-44012.3867]],\n", - "\n", - " [[-44236.3203]],\n", - "\n", - " [[-44091.1133]],\n", - "\n", - " [[-44080.5977]],\n", - "\n", - " [[-44051.3828]],\n", - "\n", - " [[-44137.6992]],\n", - "\n", - " [[-44064.6875]],\n", - "\n", - " [[-44157.5977]],\n", - "\n", - " [[-44135.7930]],\n", - "\n", - " [[-44176.7891]],\n", - "\n", - " [[-44000.5391]],\n", - "\n", - " [[-44103.3633]],\n", - "\n", - " [[-44142.8359]],\n", - "\n", - " [[-43972.7734]],\n", - "\n", - " [[-44173.8281]],\n", - "\n", - " [[-44117.6523]],\n", - "\n", - " [[-44064.5391]],\n", - "\n", - " [[-44262.2461]],\n", - "\n", - " [[-44152.1523]],\n", - "\n", - " [[-44219.4336]],\n", - "\n", - " [[-44221.2773]],\n", - "\n", - " [[-44030.2422]],\n", - "\n", - " [[-44167.8320]],\n", - "\n", - " [[-44026.9023]],\n", - "\n", - " [[-44090.2461]],\n", - "\n", - " [[-44089.8086]],\n", - "\n", - " [[-44157.3711]],\n", - "\n", - " [[-44123.0703]],\n", - "\n", - " [[-44044.6016]],\n", - "\n", - " [[-44123.1445]],\n", - "\n", - " [[-44088.0664]],\n", - "\n", - " [[-44116.4609]],\n", - "\n", - " [[-44204.8828]],\n", - "\n", - " [[-44002.2461]],\n", - "\n", - " [[-44071.5938]],\n", - "\n", - " [[-44186.1133]],\n", - "\n", - " [[-44084.3945]],\n", - "\n", - " [[-44139.5938]],\n", - "\n", - " [[-44279.0078]],\n", - "\n", - " [[-44088.6445]],\n", - "\n", - " [[-44175.3711]],\n", - "\n", - " [[-44090.7305]],\n", - "\n", - " [[-44077.4336]],\n", - "\n", - " [[-44093.3047]],\n", - "\n", - " [[-44212.9297]],\n", - "\n", - " [[-44179.1406]],\n", - "\n", - " [[-44171.0781]],\n", - "\n", - " [[-44006.0938]],\n", - "\n", - " [[-44242.8320]],\n", - "\n", - " [[-44231.0039]],\n", - "\n", - " [[-44114.6250]],\n", - "\n", - " [[-44063.9102]],\n", - "\n", - " [[-44109.6445]],\n", - "\n", - " [[-44213.3750]],\n", - "\n", - " [[-44054.7500]],\n", - "\n", - " [[-44076.5000]],\n", - "\n", - " [[-44111.5859]],\n", - "\n", - " [[-44139.8711]],\n", - "\n", - " [[-44104.6758]],\n", - "\n", - " [[-44122.1289]],\n", - "\n", - " [[-44084.3555]]], grad_fn=)\n", - "tensor([[[-42598.3164]],\n", - "\n", - " [[-42817.9492]],\n", - "\n", - " [[-42812.8594]],\n", - "\n", - " [[-42688.0312]],\n", - "\n", - " [[-42695.8359]],\n", - "\n", - " [[-42776.9336]],\n", - "\n", - " [[-42871.6836]],\n", - "\n", - " [[-42904.2305]],\n", - "\n", - " [[-42846.5078]],\n", - "\n", - " [[-42800.0117]],\n", - "\n", - " [[-42911.1133]],\n", - "\n", - " [[-42685.7188]],\n", - "\n", - " [[-42787.6016]],\n", - "\n", - " [[-42782.8125]],\n", - "\n", - " [[-42701.6875]],\n", - "\n", - " [[-42588.1992]],\n", - "\n", - " [[-42718.7227]],\n", - "\n", - " [[-42775.2617]],\n", - "\n", - " [[-42851.4727]],\n", - "\n", - " [[-42769.2656]],\n", - "\n", - " [[-42783.1250]],\n", - "\n", - " [[-42703.7852]],\n", - "\n", - " [[-42660.9961]],\n", - "\n", - " [[-42718.4219]],\n", - "\n", - " [[-42835.0977]],\n", - "\n", - " [[-42620.2852]],\n", - "\n", - " [[-42780.0938]],\n", - "\n", - " [[-42800.9336]],\n", - "\n", - " [[-42655.3906]],\n", - "\n", - " [[-42816.8789]],\n", - "\n", - " [[-42832.1211]],\n", - "\n", - " [[-42793.4141]],\n", - "\n", - " [[-42761.8047]],\n", - "\n", - " [[-42768.0117]],\n", - "\n", - " [[-42719.9609]],\n", - "\n", - " [[-42721.7852]],\n", - "\n", - " [[-42689.2266]],\n", - "\n", - " [[-42789.7070]],\n", - "\n", - " [[-42779.1367]],\n", - "\n", - " [[-42856.4414]],\n", - "\n", - " [[-42806.1172]],\n", - "\n", - " [[-42777.0078]],\n", - "\n", - " [[-42883.7852]],\n", - "\n", - " [[-42773.9297]],\n", - "\n", - " [[-42771.9062]],\n", - "\n", - " [[-42617.6289]],\n", - "\n", - " [[-42769.1680]],\n", - "\n", - " [[-42621.5312]],\n", - "\n", - " [[-42616.4062]],\n", - "\n", - " [[-42905.5156]],\n", - "\n", - " [[-42678.4258]],\n", - "\n", - " [[-42904.0195]],\n", - "\n", - " [[-42704.2930]],\n", - "\n", - " [[-42740.1836]],\n", - "\n", - " [[-42737.8398]],\n", - "\n", - " [[-42893.4531]],\n", - "\n", - " [[-42713.2188]],\n", - "\n", - " [[-42809.9258]],\n", - "\n", - " [[-42702.8125]],\n", - "\n", - " [[-42588.9609]],\n", - "\n", - " [[-42729.9336]],\n", - "\n", - " [[-42844.5977]],\n", - "\n", - " [[-42740.7617]],\n", - "\n", - " [[-42914.4805]],\n", - "\n", - " [[-42671.1680]],\n", - "\n", - " [[-42861.8359]],\n", - "\n", - " [[-42660.7227]],\n", - "\n", - " [[-42727.6406]],\n", - "\n", - " [[-42791.8594]],\n", - "\n", - " [[-42810.6016]],\n", - "\n", - " [[-42769.5781]],\n", - "\n", - " [[-42759.2773]],\n", - "\n", - " [[-42863.1406]],\n", - "\n", - " [[-42733.9961]],\n", - "\n", - " [[-42681.6250]],\n", - "\n", - " [[-42781.7266]],\n", - "\n", - " [[-42778.2383]],\n", - "\n", - " [[-42643.5352]],\n", - "\n", - " [[-42692.9766]],\n", - "\n", - " [[-42677.2969]],\n", - "\n", - " [[-42686.5391]],\n", - "\n", - " [[-42779.1562]],\n", - "\n", - " [[-42802.8125]],\n", - "\n", - " [[-42801.0195]],\n", - "\n", - " [[-42834.9141]],\n", - "\n", - " [[-42815.1719]],\n", - "\n", - " [[-42643.8906]],\n", - "\n", - " [[-42824.6992]],\n", - "\n", - " [[-42833.3125]],\n", - "\n", - " [[-42762.6719]],\n", - "\n", - " [[-42802.8203]],\n", - "\n", - " [[-42772.9336]],\n", - "\n", - " [[-42815.8867]],\n", - "\n", - " [[-42701.1289]],\n", - "\n", - " [[-42963.1797]],\n", - "\n", - " [[-42748.1406]],\n", - "\n", - " [[-42684.9062]],\n", - "\n", - " [[-42794.6562]],\n", - "\n", - " [[-42804.9414]],\n", - "\n", - " [[-42900.7695]],\n", - "\n", - " [[-42733.4805]],\n", - "\n", - " [[-42819.2773]],\n", - "\n", - " [[-42822.7812]],\n", - "\n", - " [[-42817.1055]],\n", - "\n", - " [[-42767.5000]],\n", - "\n", - " [[-42694.1445]],\n", - "\n", - " [[-42753.5586]],\n", - "\n", - " [[-42694.3242]],\n", - "\n", - " [[-42857.4141]],\n", - "\n", - " [[-42674.7148]],\n", - "\n", - " [[-42901.4375]],\n", - "\n", - " [[-42730.0938]],\n", - "\n", - " [[-42764.7148]],\n", - "\n", - " [[-42816.2227]],\n", - "\n", - " [[-42815.8320]],\n", - "\n", - " [[-42620.8359]],\n", - "\n", - " [[-42689.9766]],\n", - "\n", - " [[-42715.6406]],\n", - "\n", - " [[-42873.4258]],\n", - "\n", - " [[-42771.5820]],\n", - "\n", - " [[-42860.3828]],\n", - "\n", - " [[-42724.6602]],\n", - "\n", - " [[-42853.4141]],\n", - "\n", - " [[-42819.1094]],\n", - "\n", - " [[-42731.5625]],\n", - "\n", - " [[-42810.0195]],\n", - "\n", - " [[-42667.5234]],\n", - "\n", - " [[-42769.9453]],\n", - "\n", - " [[-42603.8750]],\n", - "\n", - " [[-42671.1484]],\n", - "\n", - " [[-42721.8398]],\n", - "\n", - " [[-42754.5625]],\n", - "\n", - " [[-42692.0508]],\n", - "\n", - " [[-42831.9570]],\n", - "\n", - " [[-42813.2969]],\n", - "\n", - " [[-42796.1016]],\n", - "\n", - " [[-42830.0742]],\n", - "\n", - " [[-42743.5078]],\n", - "\n", - " [[-42872.6211]],\n", - "\n", - " [[-42596.7148]],\n", - "\n", - " [[-42768.6953]],\n", - "\n", - " [[-42815.4141]],\n", - "\n", - " [[-42672.2422]],\n", - "\n", - " [[-42832.3242]],\n", - "\n", - " [[-42800.7109]],\n", - "\n", - " [[-42832.6602]],\n", - "\n", - " [[-42733.7383]],\n", - "\n", - " [[-42793.1211]],\n", - "\n", - " [[-42792.6523]],\n", - "\n", - " [[-42751.7461]],\n", - "\n", - " [[-42684.0312]],\n", - "\n", - " [[-42666.2070]],\n", - "\n", - " [[-42812.1328]],\n", - "\n", - " [[-42607.1250]],\n", - "\n", - " [[-42761.0547]],\n", - "\n", - " [[-42818.6055]],\n", - "\n", - " [[-42851.9492]],\n", - "\n", - " [[-42711.2539]],\n", - "\n", - " [[-42761.7148]],\n", - "\n", - " [[-42697.7930]],\n", - "\n", - " [[-42810.6797]],\n", - "\n", - " [[-42791.9023]],\n", - "\n", - " [[-42718.0508]],\n", - "\n", - " [[-42682.4609]],\n", - "\n", - " [[-42672.4023]],\n", - "\n", - " [[-42736.4648]],\n", - "\n", - " [[-42702.5547]],\n", - "\n", - " [[-42731.6523]],\n", - "\n", - " [[-42870.7109]],\n", - "\n", - " [[-42778.4023]],\n", - "\n", - " [[-42895.0312]],\n", - "\n", - " [[-42893.4336]],\n", - "\n", - " [[-42806.5898]],\n", - "\n", - " [[-42685.3750]],\n", - "\n", - " [[-42800.2695]],\n", - "\n", - " [[-42844.0156]],\n", - "\n", - " [[-42687.9609]],\n", - "\n", - " [[-42585.9492]],\n", - "\n", - " [[-42773.5508]],\n", - "\n", - " [[-42789.9453]],\n", - "\n", - " [[-42714.7773]],\n", - "\n", - " [[-42833.1992]],\n", - "\n", - " [[-42742.8867]],\n", - "\n", - " [[-42906.7969]],\n", - "\n", - " [[-42687.5312]],\n", - "\n", - " [[-42731.5039]],\n", - "\n", - " [[-42751.9648]],\n", - "\n", - " [[-42841.3945]],\n", - "\n", - " [[-42651.5625]],\n", - "\n", - " [[-42781.0039]],\n", - "\n", - " [[-42730.6836]],\n", - "\n", - " [[-42749.2344]],\n", - "\n", - " [[-42814.7188]],\n", - "\n", - " [[-42788.6133]],\n", - "\n", - " [[-42859.1172]],\n", - "\n", - " [[-42842.8477]],\n", - "\n", - " [[-42802.4727]],\n", - "\n", - " [[-42771.6133]],\n", - "\n", - " [[-42743.1445]],\n", - "\n", - " [[-42779.5703]],\n", - "\n", - " [[-42746.3438]],\n", - "\n", - " [[-42796.4297]],\n", - "\n", - " [[-42724.9883]],\n", - "\n", - " [[-42722.0625]],\n", - "\n", - " [[-42818.5234]],\n", - "\n", - " [[-42710.1562]],\n", - "\n", - " [[-42722.6172]],\n", - "\n", - " [[-42695.0977]],\n", - "\n", - " [[-42838.4219]],\n", - "\n", - " [[-42739.0625]],\n", - "\n", - " [[-42885.8242]],\n", - "\n", - " [[-42786.7539]],\n", - "\n", - " [[-42801.6328]],\n", - "\n", - " [[-42714.4023]],\n", - "\n", - " [[-42730.5195]],\n", - "\n", - " [[-42695.1289]],\n", - "\n", - " [[-42717.1953]],\n", - "\n", - " [[-42699.6680]],\n", - "\n", - " [[-42842.5195]],\n", - "\n", - " [[-42715.6992]],\n", - "\n", - " [[-42684.0625]],\n", - "\n", - " [[-42845.2070]],\n", - "\n", - " [[-42796.3125]],\n", - "\n", - " [[-42822.2266]],\n", - "\n", - " [[-42779.2852]],\n", - "\n", - " [[-42846.5273]],\n", - "\n", - " [[-42611.0820]],\n", - "\n", - " [[-42682.0898]],\n", - "\n", - " [[-42597.5391]],\n", - "\n", - " [[-42727.1719]],\n", - "\n", - " [[-42627.8242]],\n", - "\n", - " [[-42697.7305]],\n", - "\n", - " [[-42677.5859]],\n", - "\n", - " [[-42830.4062]],\n", - "\n", - " [[-42800.1289]],\n", - "\n", - " [[-42651.4961]],\n", - "\n", - " [[-42754.5664]],\n", - "\n", - " [[-42865.3672]],\n", - "\n", - " [[-42795.2344]],\n", - "\n", - " [[-42724.5078]],\n", - "\n", - " [[-42841.3633]],\n", - "\n", - " [[-42692.3359]],\n", - "\n", - " [[-42904.3008]],\n", - "\n", - " [[-42694.1055]],\n", - "\n", - " [[-42735.9688]],\n", - "\n", - " [[-42700.9180]],\n", - "\n", - " [[-42766.4922]],\n", - "\n", - " [[-42674.8750]],\n", - "\n", - " [[-42601.6836]],\n", - "\n", - " [[-42685.6133]],\n", - "\n", - " [[-42679.9766]],\n", - "\n", - " [[-42597.8359]],\n", - "\n", - " [[-42742.4258]],\n", - "\n", - " [[-42807.4414]],\n", - "\n", - " [[-42724.3281]],\n", - "\n", - " [[-42815.1328]]], grad_fn=)\n", - "tensor([[[-41371.9453]],\n", - "\n", - " [[-41449.7930]],\n", - "\n", - " [[-41360.4297]],\n", - "\n", - " [[-41378.4922]],\n", - "\n", - " [[-41404.1211]],\n", - "\n", - " [[-41473.3789]],\n", - "\n", - " [[-41388.8711]],\n", - "\n", - " [[-41284.0391]],\n", - "\n", - " [[-41403.3281]],\n", - "\n", - " [[-41448.5742]],\n", - "\n", - " [[-41641.0469]],\n", - "\n", - " [[-41425.3594]],\n", - "\n", - " [[-41408.1836]],\n", - "\n", - " [[-41360.1797]],\n", - "\n", - " [[-41418.8906]],\n", - "\n", - " [[-41384.3594]],\n", - "\n", - " [[-41292.2383]],\n", - "\n", - " [[-41510.6797]],\n", - "\n", - " [[-41446.3438]],\n", - "\n", - " [[-41421.6641]],\n", - "\n", - " [[-41414.9062]],\n", - "\n", - " [[-41380.2734]],\n", - "\n", - " [[-41520.8242]],\n", - "\n", - " [[-41426.4336]],\n", - "\n", - " [[-41498.7930]],\n", - "\n", - " [[-41422.8242]],\n", - "\n", - " [[-41247.9961]],\n", - "\n", - " [[-41340.1680]],\n", - "\n", - " [[-41474.7578]],\n", - "\n", - " [[-41425.4805]],\n", - "\n", - " [[-41355.5938]],\n", - "\n", - " [[-41344.3008]],\n", - "\n", - " [[-41334.5977]],\n", - "\n", - " [[-41412.8281]],\n", - "\n", - " [[-41461.6875]],\n", - "\n", - " [[-41394.7305]],\n", - "\n", - " [[-41353.7227]],\n", - "\n", - " [[-41363.1914]],\n", - "\n", - " [[-41357.1875]],\n", - "\n", - " [[-41308.7109]],\n", - "\n", - " [[-41312.6875]],\n", - "\n", - " [[-41438.7617]],\n", - "\n", - " [[-41392.9805]],\n", - "\n", - " [[-41437.1250]],\n", - "\n", - " [[-41439.5898]],\n", - "\n", - " [[-41481.6719]],\n", - "\n", - " [[-41316.5312]],\n", - "\n", - " [[-41395.7031]],\n", - "\n", - " [[-41388.9297]],\n", - "\n", - " [[-41369.8984]],\n", - "\n", - " [[-41393.0430]],\n", - "\n", - " [[-41423.3867]],\n", - "\n", - " [[-41455.3945]],\n", - "\n", - " [[-41477.3906]],\n", - "\n", - " [[-41407.6172]],\n", - "\n", - " [[-41310.8086]],\n", - "\n", - " [[-41382.1250]],\n", - "\n", - " [[-41383.3320]],\n", - "\n", - " [[-41416.9805]],\n", - "\n", - " [[-41411.5469]],\n", - "\n", - " [[-41399.8008]],\n", - "\n", - " [[-41265.6445]],\n", - "\n", - " [[-41253.8672]],\n", - "\n", - " [[-41470.5781]],\n", - "\n", - " [[-41525.3711]],\n", - "\n", - " [[-41426.1523]],\n", - "\n", - " [[-41416.1836]],\n", - "\n", - " [[-41483.0234]],\n", - "\n", - " [[-41504.3008]],\n", - "\n", - " [[-41280.2852]],\n", - "\n", - " [[-41628.4141]],\n", - "\n", - " [[-41518.3945]],\n", - "\n", - " [[-41371.6562]],\n", - "\n", - " [[-41391.0547]],\n", - "\n", - " [[-41453.0156]],\n", - "\n", - " [[-41404.9023]],\n", - "\n", - " [[-41410.0820]],\n", - "\n", - " [[-41500.2148]],\n", - "\n", - " [[-41274.1602]],\n", - "\n", - " [[-41447.2969]],\n", - "\n", - " [[-41284.7031]],\n", - "\n", - " [[-41367.9609]],\n", - "\n", - " [[-41248.6016]],\n", - "\n", - " [[-41398.4023]],\n", - "\n", - " [[-41341.3203]],\n", - "\n", - " [[-41387.6016]],\n", - "\n", - " [[-41363.9609]],\n", - "\n", - " [[-41623.1836]],\n", - "\n", - " [[-41434.4727]],\n", - "\n", - " [[-41330.4180]],\n", - "\n", - " [[-41444.3320]],\n", - "\n", - " [[-41368.4805]],\n", - "\n", - " [[-41324.5703]],\n", - "\n", - " [[-41491.9297]],\n", - "\n", - " [[-41517.3086]],\n", - "\n", - " [[-41396.8555]],\n", - "\n", - " [[-41441.4023]],\n", - "\n", - " [[-41451.4375]],\n", - "\n", - " [[-41260.8281]],\n", - "\n", - " [[-41401.1875]],\n", - "\n", - " [[-41496.1836]],\n", - "\n", - " [[-41463.8242]],\n", - "\n", - " [[-41347.5703]],\n", - "\n", - " [[-41393.4062]],\n", - "\n", - " [[-41533.9805]],\n", - "\n", - " [[-41337.7422]],\n", - "\n", - " [[-41399.3125]],\n", - "\n", - " [[-41458.5469]],\n", - "\n", - " [[-41396.0195]],\n", - "\n", - " [[-41399.7305]],\n", - "\n", - " [[-41422.3047]],\n", - "\n", - " [[-41422.7031]],\n", - "\n", - " [[-41349.6719]],\n", - "\n", - " [[-41330.3828]],\n", - "\n", - " [[-41448.6172]],\n", - "\n", - " [[-41427.5664]],\n", - "\n", - " [[-41445.8594]],\n", - "\n", - " [[-41303.6445]],\n", - "\n", - " [[-41354.7422]],\n", - "\n", - " [[-41347.1484]],\n", - "\n", - " [[-41424.3320]],\n", - "\n", - " [[-41329.6406]],\n", - "\n", - " [[-41294.8711]],\n", - "\n", - " [[-41336.6953]],\n", - "\n", - " [[-41348.7031]],\n", - "\n", - " [[-41479.6719]],\n", - "\n", - " [[-41535.1328]],\n", - "\n", - " [[-41469.3203]],\n", - "\n", - " [[-41363.8711]],\n", - "\n", - " [[-41376.6094]],\n", - "\n", - " [[-41547.0273]],\n", - "\n", - " [[-41544.4805]],\n", - "\n", - " [[-41286.8320]],\n", - "\n", - " [[-41312.0547]],\n", - "\n", - " [[-41516.1641]],\n", - "\n", - " [[-41482.9258]],\n", - "\n", - " [[-41450.8906]],\n", - "\n", - " [[-41386.4531]],\n", - "\n", - " [[-41501.4961]],\n", - "\n", - " [[-41430.9766]],\n", - "\n", - " [[-41326.6719]],\n", - "\n", - " [[-41536.1016]],\n", - "\n", - " [[-41473.7344]],\n", - "\n", - " [[-41244.9531]],\n", - "\n", - " [[-41412.3359]],\n", - "\n", - " [[-41392.2188]],\n", - "\n", - " [[-41310.4414]],\n", - "\n", - " [[-41438.1914]],\n", - "\n", - " [[-41411.5703]],\n", - "\n", - " [[-41319.0469]],\n", - "\n", - " [[-41364.9805]],\n", - "\n", - " [[-41471.6875]],\n", - "\n", - " [[-41359.6367]],\n", - "\n", - " [[-41382.9688]],\n", - "\n", - " [[-41404.8945]],\n", - "\n", - " [[-41428.1562]],\n", - "\n", - " [[-41247.6602]],\n", - "\n", - " [[-41519.5039]],\n", - "\n", - " [[-41374.8906]],\n", - "\n", - " [[-41422.6484]],\n", - "\n", - " [[-41298.6992]],\n", - "\n", - " [[-41334.3125]],\n", - "\n", - " [[-41334.8555]],\n", - "\n", - " [[-41349.3359]],\n", - "\n", - " [[-41321.2070]],\n", - "\n", - " [[-41553.9102]],\n", - "\n", - " [[-41395.9102]],\n", - "\n", - " [[-41500.4531]],\n", - "\n", - " [[-41353.4531]],\n", - "\n", - " [[-41484.2812]],\n", - "\n", - " [[-41448.7891]],\n", - "\n", - " [[-41459.0508]],\n", - "\n", - " [[-41548.8398]],\n", - "\n", - " [[-41435.9922]],\n", - "\n", - " [[-41457.5039]],\n", - "\n", - " [[-41412.5312]],\n", - "\n", - " [[-41415.7227]],\n", - "\n", - " [[-41494.1172]],\n", - "\n", - " [[-41317.7500]],\n", - "\n", - " [[-41522.1367]],\n", - "\n", - " [[-41289.1211]],\n", - "\n", - " [[-41424.5312]],\n", - "\n", - " [[-41401.5117]],\n", - "\n", - " [[-41387.5742]],\n", - "\n", - " [[-41435.8398]],\n", - "\n", - " [[-41384.0664]],\n", - "\n", - " [[-41506.7266]],\n", - "\n", - " [[-41448.8242]],\n", - "\n", - " [[-41500.2891]],\n", - "\n", - " [[-41395.0312]],\n", - "\n", - " [[-41472.8320]],\n", - "\n", - " [[-41322.7656]],\n", - "\n", - " [[-41265.4766]],\n", - "\n", - " [[-41404.3164]],\n", - "\n", - " [[-41332.8320]],\n", - "\n", - " [[-41416.2422]],\n", - "\n", - " [[-41262.9961]],\n", - "\n", - " [[-41382.4922]],\n", - "\n", - " [[-41271.5781]],\n", - "\n", - " [[-41421.8906]],\n", - "\n", - " [[-41562.3047]],\n", - "\n", - " [[-41441.3789]],\n", - "\n", - " [[-41322.0586]],\n", - "\n", - " [[-41353.5898]],\n", - "\n", - " [[-41426.7461]],\n", - "\n", - " [[-41354.3633]],\n", - "\n", - " [[-41330.3711]],\n", - "\n", - " [[-41430.5664]],\n", - "\n", - " [[-41462.9492]],\n", - "\n", - " [[-41397.0352]],\n", - "\n", - " [[-41367.2383]],\n", - "\n", - " [[-41297.9844]],\n", - "\n", - " [[-41459.4727]],\n", - "\n", - " [[-41399.2422]],\n", - "\n", - " [[-41277.3008]],\n", - "\n", - " [[-41463.2969]],\n", - "\n", - " [[-41359.3477]],\n", - "\n", - " [[-41500.6680]],\n", - "\n", - " [[-41505.0312]],\n", - "\n", - " [[-41245.1953]],\n", - "\n", - " [[-41440.2383]],\n", - "\n", - " [[-41319.0547]],\n", - "\n", - " [[-41333.3320]],\n", - "\n", - " [[-41292.8516]],\n", - "\n", - " [[-41421.2109]],\n", - "\n", - " [[-41310.3789]],\n", - "\n", - " [[-41468.3906]],\n", - "\n", - " [[-41425.2070]],\n", - "\n", - " [[-41422.9727]],\n", - "\n", - " [[-41430.1289]],\n", - "\n", - " [[-41357.2070]],\n", - "\n", - " [[-41419.0156]],\n", - "\n", - " [[-41429.6836]],\n", - "\n", - " [[-41258.5156]],\n", - "\n", - " [[-41506.8555]],\n", - "\n", - " [[-41294.6836]],\n", - "\n", - " [[-41461.2578]],\n", - "\n", - " [[-41333.9648]],\n", - "\n", - " [[-41316.7969]],\n", - "\n", - " [[-41388.7891]],\n", - "\n", - " [[-41479.9883]],\n", - "\n", - " [[-41275.9336]],\n", - "\n", - " [[-41434.1719]],\n", - "\n", - " [[-41587.2266]],\n", - "\n", - " [[-41404.2383]],\n", - "\n", - " [[-41415.7500]],\n", - "\n", - " [[-41487.1758]],\n", - "\n", - " [[-41338.8320]],\n", - "\n", - " [[-41500.4336]],\n", - "\n", - " [[-41350.0586]],\n", - "\n", - " [[-41342.4648]],\n", - "\n", - " [[-41525.0703]],\n", - "\n", - " [[-41445.2578]],\n", - "\n", - " [[-41449.4531]],\n", - "\n", - " [[-41439.0547]],\n", - "\n", - " [[-41403.2461]]], grad_fn=)\n", - "tensor([[[-40133.6914]],\n", - "\n", - " [[-40063.2383]],\n", - "\n", - " [[-40068.0938]],\n", - "\n", - " [[-40055.9180]],\n", - "\n", - " [[-40208.6719]],\n", - "\n", - " [[-40046.5117]],\n", - "\n", - " [[-39955.5859]],\n", - "\n", - " [[-40073.6211]],\n", - "\n", - " [[-40037.7969]],\n", - "\n", - " [[-39963.4883]],\n", - "\n", - " [[-40024.7773]],\n", - "\n", - " [[-40234.2266]],\n", - "\n", - " [[-40142.7969]],\n", - "\n", - " [[-40049.9609]],\n", - "\n", - " [[-40150.2305]],\n", - "\n", - " [[-40186.3945]],\n", - "\n", - " [[-39943.6328]],\n", - "\n", - " [[-40199.1445]],\n", - "\n", - " [[-40156.4180]],\n", - "\n", - " [[-40079.8750]],\n", - "\n", - " [[-40057.6133]],\n", - "\n", - " [[-40059.5039]],\n", - "\n", - " [[-39964.9297]],\n", - "\n", - " [[-40105.3125]],\n", - "\n", - " [[-40143.4141]],\n", - "\n", - " [[-40114.6406]],\n", - "\n", - " [[-40151.6953]],\n", - "\n", - " [[-40075.5742]],\n", - "\n", - " [[-40107.8164]],\n", - "\n", - " [[-40010.8125]],\n", - "\n", - " [[-39936.0508]],\n", - "\n", - " [[-40290.1445]],\n", - "\n", - " [[-40213.0312]],\n", - "\n", - " [[-40126.1641]],\n", - "\n", - " [[-40061.5977]],\n", - "\n", - " [[-40050.4688]],\n", - "\n", - " [[-40227.3125]],\n", - "\n", - " [[-40105.1797]],\n", - "\n", - " [[-40156.3945]],\n", - "\n", - " [[-40170.6992]],\n", - "\n", - " [[-40124.9414]],\n", - "\n", - " [[-40222.6914]],\n", - "\n", - " [[-40093.6914]],\n", - "\n", - " [[-40178.3398]],\n", - "\n", - " [[-40165.1406]],\n", - "\n", - " [[-40167.7539]],\n", - "\n", - " [[-40178.9609]],\n", - "\n", - " [[-40136.9375]],\n", - "\n", - " [[-40125.3125]],\n", - "\n", - " [[-40154.6484]],\n", - "\n", - " [[-39911.7578]],\n", - "\n", - " [[-40215.7969]],\n", - "\n", - " [[-40240.8242]],\n", - "\n", - " [[-40209.4258]],\n", - "\n", - " [[-39900.2305]],\n", - "\n", - " [[-40210.3828]],\n", - "\n", - " [[-40158.5273]],\n", - "\n", - " [[-39955.5703]],\n", - "\n", - " [[-40051.6914]],\n", - "\n", - " [[-40233.9844]],\n", - "\n", - " [[-40073.0273]],\n", - "\n", - " [[-40218.1992]],\n", - "\n", - " [[-40144.7656]],\n", - "\n", - " [[-40158.0469]],\n", - "\n", - " [[-40285.9102]],\n", - "\n", - " [[-40195.3750]],\n", - "\n", - " [[-40163.7383]],\n", - "\n", - " [[-40105.9336]],\n", - "\n", - " [[-40068.5508]],\n", - "\n", - " [[-40037.6562]],\n", - "\n", - " [[-40146.8359]],\n", - "\n", - " [[-40033.6602]],\n", - "\n", - " [[-40115.2109]],\n", - "\n", - " [[-40086.6250]],\n", - "\n", - " [[-39928.7344]],\n", - "\n", - " [[-40233.4141]],\n", - "\n", - " [[-40047.8516]],\n", - "\n", - " [[-40084.4453]],\n", - "\n", - " [[-40041.0781]],\n", - "\n", - " [[-40035.3008]],\n", - "\n", - " [[-40095.5000]],\n", - "\n", - " [[-40277.8633]],\n", - "\n", - " [[-40130.4727]],\n", - "\n", - " [[-39932.2266]],\n", - "\n", - " [[-40072.5625]],\n", - "\n", - " [[-40171.8555]],\n", - "\n", - " [[-40080.1211]],\n", - "\n", - " [[-40007.4180]],\n", - "\n", - " [[-40114.0820]],\n", - "\n", - " [[-39990.8047]],\n", - "\n", - " [[-40037.8203]],\n", - "\n", - " [[-40005.5586]],\n", - "\n", - " [[-40177.7773]],\n", - "\n", - " [[-40249.7461]],\n", - "\n", - " [[-40061.4844]],\n", - "\n", - " [[-40037.7031]],\n", - "\n", - " [[-40120.8516]],\n", - "\n", - " [[-40046.4180]],\n", - "\n", - " [[-40094.6250]],\n", - "\n", - " [[-40041.3672]],\n", - "\n", - " [[-40132.5117]],\n", - "\n", - " [[-40011.2812]],\n", - "\n", - " [[-40127.5586]],\n", - "\n", - " [[-39973.5195]],\n", - "\n", - " [[-40073.8008]],\n", - "\n", - " [[-40179.6484]],\n", - "\n", - " [[-39993.3672]],\n", - "\n", - " [[-40102.3438]],\n", - "\n", - " [[-40180.3906]],\n", - "\n", - " [[-40203.5234]],\n", - "\n", - " [[-39979.3867]],\n", - "\n", - " [[-40041.3398]],\n", - "\n", - " [[-39937.4297]],\n", - "\n", - " [[-40257.8828]],\n", - "\n", - " [[-39995.3125]],\n", - "\n", - " [[-40015.3945]],\n", - "\n", - " [[-40175.1133]],\n", - "\n", - " [[-40050.6875]],\n", - "\n", - " [[-40171.9531]],\n", - "\n", - " [[-40024.2422]],\n", - "\n", - " [[-40147.2930]],\n", - "\n", - " [[-40096.6328]],\n", - "\n", - " [[-39976.5898]],\n", - "\n", - " [[-40007.7500]],\n", - "\n", - " [[-39970.3594]],\n", - "\n", - " [[-40125.7734]],\n", - "\n", - " [[-40191.9453]],\n", - "\n", - " [[-40000.6914]],\n", - "\n", - " [[-40155.4492]],\n", - "\n", - " [[-40130.5547]],\n", - "\n", - " [[-40136.9961]],\n", - "\n", - " [[-40090.3633]],\n", - "\n", - " [[-40106.7148]],\n", - "\n", - " [[-40159.0586]],\n", - "\n", - " [[-40136.7578]],\n", - "\n", - " [[-40352.1406]],\n", - "\n", - " [[-40071.7148]],\n", - "\n", - " [[-40189.7773]],\n", - "\n", - " [[-40070.9062]],\n", - "\n", - " [[-40258.6289]],\n", - "\n", - " [[-40114.8945]],\n", - "\n", - " [[-40269.1992]],\n", - "\n", - " [[-40163.8359]],\n", - "\n", - " [[-40036.8477]],\n", - "\n", - " [[-40302.5859]],\n", - "\n", - " [[-39975.3438]],\n", - "\n", - " [[-40241.8672]],\n", - "\n", - " [[-39965.5820]],\n", - "\n", - " [[-40071.8320]],\n", - "\n", - " [[-40033.2695]],\n", - "\n", - " [[-40159.3789]],\n", - "\n", - " [[-40237.1016]],\n", - "\n", - " [[-40063.5977]],\n", - "\n", - " [[-40249.8164]],\n", - "\n", - " [[-40144.8516]],\n", - "\n", - " [[-39934.4961]],\n", - "\n", - " [[-40063.7734]],\n", - "\n", - " [[-40098.6484]],\n", - "\n", - " [[-40122.4570]],\n", - "\n", - " [[-40172.8398]],\n", - "\n", - " [[-40216.0820]],\n", - "\n", - " [[-40128.8125]],\n", - "\n", - " [[-40155.0117]],\n", - "\n", - " [[-40005.0234]],\n", - "\n", - " [[-40125.9609]],\n", - "\n", - " [[-40033.9648]],\n", - "\n", - " [[-40199.4336]],\n", - "\n", - " [[-40140.9688]],\n", - "\n", - " [[-40167.5430]],\n", - "\n", - " [[-40089.2656]],\n", - "\n", - " [[-40147.5977]],\n", - "\n", - " [[-39999.6953]],\n", - "\n", - " [[-40123.9883]],\n", - "\n", - " [[-40099.8516]],\n", - "\n", - " [[-40214.9258]],\n", - "\n", - " [[-40082.2266]],\n", - "\n", - " [[-39969.0195]],\n", - "\n", - " [[-40083.4922]],\n", - "\n", - " [[-40072.8555]],\n", - "\n", - " [[-40119.6719]],\n", - "\n", - " [[-40078.5859]],\n", - "\n", - " [[-40175.5430]],\n", - "\n", - " [[-40025.7266]],\n", - "\n", - " [[-40093.6641]],\n", - "\n", - " [[-39963.8359]],\n", - "\n", - " [[-39981.8555]],\n", - "\n", - " [[-40072.3594]],\n", - "\n", - " [[-40034.4453]],\n", - "\n", - " [[-40055.1250]],\n", - "\n", - " [[-40176.1914]],\n", - "\n", - " [[-39935.9453]],\n", - "\n", - " [[-40137.0859]],\n", - "\n", - " [[-40105.7812]],\n", - "\n", - " [[-40083.6016]],\n", - "\n", - " [[-40171.9922]],\n", - "\n", - " [[-40109.0117]],\n", - "\n", - " [[-40006.2852]],\n", - "\n", - " [[-40161.2344]],\n", - "\n", - " [[-40283.4805]],\n", - "\n", - " [[-40061.7305]],\n", - "\n", - " [[-40189.7734]],\n", - "\n", - " [[-40071.0039]],\n", - "\n", - " [[-40090.6523]],\n", - "\n", - " [[-40267.4102]],\n", - "\n", - " [[-40096.0039]],\n", - "\n", - " [[-40019.1602]],\n", - "\n", - " [[-40240.5547]],\n", - "\n", - " [[-39972.4336]],\n", - "\n", - " [[-40073.1055]],\n", - "\n", - " [[-40225.0938]],\n", - "\n", - " [[-40150.8320]],\n", - "\n", - " [[-39927.3320]],\n", - "\n", - " [[-40199.9492]],\n", - "\n", - " [[-40041.5156]],\n", - "\n", - " [[-40039.5938]],\n", - "\n", - " [[-40176.5508]],\n", - "\n", - " [[-40213.6836]],\n", - "\n", - " [[-40063.8164]],\n", - "\n", - " [[-40184.6250]],\n", - "\n", - " [[-40022.2422]],\n", - "\n", - " [[-40152.2148]],\n", - "\n", - " [[-40019.7891]],\n", - "\n", - " [[-40249.2578]],\n", - "\n", - " [[-40327.5078]],\n", - "\n", - " [[-40138.4883]],\n", - "\n", - " [[-40181.9375]],\n", - "\n", - " [[-40214.0820]],\n", - "\n", - " [[-39988.0742]],\n", - "\n", - " [[-39947.0625]],\n", - "\n", - " [[-40024.9023]],\n", - "\n", - " [[-40086.6133]],\n", - "\n", - " [[-39965.0938]],\n", - "\n", - " [[-40258.6758]],\n", - "\n", - " [[-40235.0117]],\n", - "\n", - " [[-40167.5469]],\n", - "\n", - " [[-40174.6992]],\n", - "\n", - " [[-40114.2734]],\n", - "\n", - " [[-40113.9766]],\n", - "\n", - " [[-40036.7891]],\n", - "\n", - " [[-40143.8633]],\n", - "\n", - " [[-40090.1133]],\n", - "\n", - " [[-39962.4297]],\n", - "\n", - " [[-40183.6562]],\n", - "\n", - " [[-40216.7539]],\n", - "\n", - " [[-40197.0469]],\n", - "\n", - " [[-40190.1406]],\n", - "\n", - " [[-40137.4336]],\n", - "\n", - " [[-40044.0039]],\n", - "\n", - " [[-40049.0195]],\n", - "\n", - " [[-40005.6602]],\n", - "\n", - " [[-40299.8164]],\n", - "\n", - " [[-40172.1719]],\n", - "\n", - " [[-40097.0586]],\n", - "\n", - " [[-40013.0898]],\n", - "\n", - " [[-40034.6562]],\n", - "\n", - " [[-40012.4258]]], grad_fn=)\n", - "tensor([[[-38840.2969]],\n", - "\n", - " [[-38980.3984]],\n", - "\n", - " [[-38802.1016]],\n", - "\n", - " [[-38868.4492]],\n", - "\n", - " [[-38786.8477]],\n", - "\n", - " [[-38843.4883]],\n", - "\n", - " [[-39144.8516]],\n", - "\n", - " [[-38830.4102]],\n", - "\n", - " [[-38771.6719]],\n", - "\n", - " [[-38856.8984]],\n", - "\n", - " [[-38702.6211]],\n", - "\n", - " [[-38856.0938]],\n", - "\n", - " [[-38899.8203]],\n", - "\n", - " [[-38806.2930]],\n", - "\n", - " [[-38905.8750]],\n", - "\n", - " [[-38795.2188]],\n", - "\n", - " [[-38861.5195]],\n", - "\n", - " [[-38898.7812]],\n", - "\n", - " [[-38883.1914]],\n", - "\n", - " [[-38895.0352]],\n", - "\n", - " [[-38683.1719]],\n", - "\n", - " [[-38790.6875]],\n", - "\n", - " [[-38765.1289]],\n", - "\n", - " [[-38932.5391]],\n", - "\n", - " [[-38843.0391]],\n", - "\n", - " [[-38954.5820]],\n", - "\n", - " [[-38732.6250]],\n", - "\n", - " [[-38831.8125]],\n", - "\n", - " [[-38818.3789]],\n", - "\n", - " [[-38866.2852]],\n", - "\n", - " [[-38908.9961]],\n", - "\n", - " [[-38707.8945]],\n", - "\n", - " [[-38777.9531]],\n", - "\n", - " [[-38920.8281]],\n", - "\n", - " [[-38909.6367]],\n", - "\n", - " [[-38831.1172]],\n", - "\n", - " [[-38800.2852]],\n", - "\n", - " [[-38803.4102]],\n", - "\n", - " [[-38704.6719]],\n", - "\n", - " [[-38780.7578]],\n", - "\n", - " [[-38821.5312]],\n", - "\n", - " [[-38790.9023]],\n", - "\n", - " [[-38866.2539]],\n", - "\n", - " [[-38854.3555]],\n", - "\n", - " [[-38857.0117]],\n", - "\n", - " [[-38972.3203]],\n", - "\n", - " [[-38842.5898]],\n", - "\n", - " [[-38873.7109]],\n", - "\n", - " [[-38947.5273]],\n", - "\n", - " [[-38923.1367]],\n", - "\n", - " [[-38701.6328]],\n", - "\n", - " [[-38839.3828]],\n", - "\n", - " [[-38858.9727]],\n", - "\n", - " [[-38672.2773]],\n", - "\n", - " [[-38879.8438]],\n", - "\n", - " [[-39001.0938]],\n", - "\n", - " [[-38651.7305]],\n", - "\n", - " [[-38781.9102]],\n", - "\n", - " [[-38897.2266]],\n", - "\n", - " [[-38736.4336]],\n", - "\n", - " [[-38807.3711]],\n", - "\n", - " [[-38857.3750]],\n", - "\n", - " [[-38826.2695]],\n", - "\n", - " [[-38756.1992]],\n", - "\n", - " [[-38827.5430]],\n", - "\n", - " [[-38868.9844]],\n", - "\n", - " [[-38855.8203]],\n", - "\n", - " [[-38887.2266]],\n", - "\n", - " [[-39063.4336]],\n", - "\n", - " [[-38877.5664]],\n", - "\n", - " [[-38849.1641]],\n", - "\n", - " [[-38790.2969]],\n", - "\n", - " [[-38750.8672]],\n", - "\n", - " [[-38907.8633]],\n", - "\n", - " [[-38800.1016]],\n", - "\n", - " [[-38686.2734]],\n", - "\n", - " [[-38905.0859]],\n", - "\n", - " [[-38811.2109]],\n", - "\n", - " [[-38941.1836]],\n", - "\n", - " [[-38656.0352]],\n", - "\n", - " [[-38841.7812]],\n", - "\n", - " [[-38817.9570]],\n", - "\n", - " [[-38848.2656]],\n", - "\n", - " [[-38934.3164]],\n", - "\n", - " [[-38913.4336]],\n", - "\n", - " [[-38809.3516]],\n", - "\n", - " [[-38823.3789]],\n", - "\n", - " [[-38858.9375]],\n", - "\n", - " [[-38924.2773]],\n", - "\n", - " [[-38850.5039]],\n", - "\n", - " [[-38833.7695]],\n", - "\n", - " [[-38740.5820]],\n", - "\n", - " [[-38719.8281]],\n", - "\n", - " [[-38942.9062]],\n", - "\n", - " [[-38948.3945]],\n", - "\n", - " [[-38942.1836]],\n", - "\n", - " [[-38797.9531]],\n", - "\n", - " [[-38864.0430]],\n", - "\n", - " [[-38682.1016]],\n", - "\n", - " [[-38975.2930]],\n", - "\n", - " [[-38836.1367]],\n", - "\n", - " [[-38939.5469]],\n", - "\n", - " [[-38935.6250]],\n", - "\n", - " [[-38811.7734]],\n", - "\n", - " [[-38698.1523]],\n", - "\n", - " [[-38825.0273]],\n", - "\n", - " [[-38931.8203]],\n", - "\n", - " [[-38811.0039]],\n", - "\n", - " [[-38762.7148]],\n", - "\n", - " [[-38914.2617]],\n", - "\n", - " [[-38960.0469]],\n", - "\n", - " [[-38950.3711]],\n", - "\n", - " [[-38857.8906]],\n", - "\n", - " [[-38834.2656]],\n", - "\n", - " [[-38833.1953]],\n", - "\n", - " [[-38821.3320]],\n", - "\n", - " [[-38862.3516]],\n", - "\n", - " [[-38847.9727]],\n", - "\n", - " [[-38935.1133]],\n", - "\n", - " [[-38803.8320]],\n", - "\n", - " [[-38922.3477]],\n", - "\n", - " [[-38782.2617]],\n", - "\n", - " [[-38732.1367]],\n", - "\n", - " [[-38903.2188]],\n", - "\n", - " [[-38826.5000]],\n", - "\n", - " [[-38695.7227]],\n", - "\n", - " [[-38763.3828]],\n", - "\n", - " [[-38758.9805]],\n", - "\n", - " [[-38827.7812]],\n", - "\n", - " [[-38848.6797]],\n", - "\n", - " [[-38711.7227]],\n", - "\n", - " [[-38846.3047]],\n", - "\n", - " [[-38748.6758]],\n", - "\n", - " [[-38779.1953]],\n", - "\n", - " [[-39007.5000]],\n", - "\n", - " [[-38924.1680]],\n", - "\n", - " [[-38754.6641]],\n", - "\n", - " [[-38658.7031]],\n", - "\n", - " [[-38654.4023]],\n", - "\n", - " [[-38945.0664]],\n", - "\n", - " [[-38790.2031]],\n", - "\n", - " [[-38947.1211]],\n", - "\n", - " [[-38942.7852]],\n", - "\n", - " [[-38853.0078]],\n", - "\n", - " [[-38837.9219]],\n", - "\n", - " [[-38782.3164]],\n", - "\n", - " [[-38665.6484]],\n", - "\n", - " [[-38939.1953]],\n", - "\n", - " [[-38772.3164]],\n", - "\n", - " [[-38787.5430]],\n", - "\n", - " [[-38812.7969]],\n", - "\n", - " [[-38886.0312]],\n", - "\n", - " [[-38840.5938]],\n", - "\n", - " [[-38820.6367]],\n", - "\n", - " [[-38791.8438]],\n", - "\n", - " [[-38858.5195]],\n", - "\n", - " [[-38890.7891]],\n", - "\n", - " [[-38796.6875]],\n", - "\n", - " [[-38779.9258]],\n", - "\n", - " [[-38870.7539]],\n", - "\n", - " [[-38831.8555]],\n", - "\n", - " [[-38992.2305]],\n", - "\n", - " [[-38925.3750]],\n", - "\n", - " [[-38824.7109]],\n", - "\n", - " [[-38711.1875]],\n", - "\n", - " [[-38900.8281]],\n", - "\n", - " [[-38812.1406]],\n", - "\n", - " [[-38887.2812]],\n", - "\n", - " [[-38851.1719]],\n", - "\n", - " [[-38675.3477]],\n", - "\n", - " [[-38944.0938]],\n", - "\n", - " [[-38738.2617]],\n", - "\n", - " [[-38789.2070]],\n", - "\n", - " [[-38703.1523]],\n", - "\n", - " [[-38845.0234]],\n", - "\n", - " [[-38942.2812]],\n", - "\n", - " [[-38729.2188]],\n", - "\n", - " [[-38805.2930]],\n", - "\n", - " [[-38746.2109]],\n", - "\n", - " [[-38807.8320]],\n", - "\n", - " [[-38772.6328]],\n", - "\n", - " [[-38862.4219]],\n", - "\n", - " [[-38921.3984]],\n", - "\n", - " [[-38807.8281]],\n", - "\n", - " [[-38819.8750]],\n", - "\n", - " [[-38939.5430]],\n", - "\n", - " [[-38893.3047]],\n", - "\n", - " [[-38815.9766]],\n", - "\n", - " [[-38808.4570]],\n", - "\n", - " [[-38804.0039]],\n", - "\n", - " [[-38854.6094]],\n", - "\n", - " [[-38744.5352]],\n", - "\n", - " [[-38701.0508]],\n", - "\n", - " [[-38772.4531]],\n", - "\n", - " [[-38982.5195]],\n", - "\n", - " [[-38838.8047]],\n", - "\n", - " [[-38882.0156]],\n", - "\n", - " [[-38977.2891]],\n", - "\n", - " [[-38887.6562]],\n", - "\n", - " [[-38697.0664]],\n", - "\n", - " [[-38801.5586]],\n", - "\n", - " [[-38850.8945]],\n", - "\n", - " [[-38920.2266]],\n", - "\n", - " [[-38825.7031]],\n", - "\n", - " [[-38840.2305]],\n", - "\n", - " [[-38935.1836]],\n", - "\n", - " [[-38912.4219]],\n", - "\n", - " [[-38806.4727]],\n", - "\n", - " [[-38884.8438]],\n", - "\n", - " [[-38778.3789]],\n", - "\n", - " [[-38796.7422]],\n", - "\n", - " [[-38725.4570]],\n", - "\n", - " [[-38832.2930]],\n", - "\n", - " [[-38839.5508]],\n", - "\n", - " [[-38817.8867]],\n", - "\n", - " [[-38838.4180]],\n", - "\n", - " [[-38732.0508]],\n", - "\n", - " [[-38720.0000]],\n", - "\n", - " [[-38792.4258]],\n", - "\n", - " [[-38822.6289]],\n", - "\n", - " [[-38773.8633]],\n", - "\n", - " [[-38783.8594]],\n", - "\n", - " [[-38970.2344]],\n", - "\n", - " [[-38702.9609]],\n", - "\n", - " [[-38689.0547]],\n", - "\n", - " [[-38988.6055]],\n", - "\n", - " [[-38755.0703]],\n", - "\n", - " [[-38763.6211]],\n", - "\n", - " [[-38843.3438]],\n", - "\n", - " [[-38809.5195]],\n", - "\n", - " [[-38806.4219]],\n", - "\n", - " [[-38761.2461]],\n", - "\n", - " [[-38833.0078]],\n", - "\n", - " [[-38915.2461]],\n", - "\n", - " [[-38964.0352]],\n", - "\n", - " [[-38703.4219]],\n", - "\n", - " [[-38816.9219]],\n", - "\n", - " [[-38920.3711]],\n", - "\n", - " [[-38927.2422]],\n", - "\n", - " [[-38948.9766]],\n", - "\n", - " [[-38786.4414]],\n", - "\n", - " [[-38665.4961]],\n", - "\n", - " [[-38801.8320]],\n", - "\n", - " [[-38807.8125]],\n", - "\n", - " [[-39037.8086]],\n", - "\n", - " [[-38815.4609]],\n", - "\n", - " [[-38809.3242]],\n", - "\n", - " [[-38935.4062]],\n", - "\n", - " [[-38694.2188]],\n", - "\n", - " [[-38796.6875]],\n", - "\n", - " [[-38797.9336]],\n", - "\n", - " [[-38958.8438]],\n", - "\n", - " [[-38821.7031]],\n", - "\n", - " [[-38870.0938]],\n", - "\n", - " [[-38799.3320]],\n", - "\n", - " [[-38867.2383]]], grad_fn=)\n", - "tensor([[[-37500.0039]],\n", - "\n", - " [[-37592.5898]],\n", - "\n", - " [[-37670.1953]],\n", - "\n", - " [[-37678.3320]],\n", - "\n", - " [[-37684.3828]],\n", - "\n", - " [[-37610.2266]],\n", - "\n", - " [[-37477.7539]],\n", - "\n", - " [[-37705.7891]],\n", - "\n", - " [[-37422.5547]],\n", - "\n", - " [[-37725.0430]],\n", - "\n", - " [[-37661.4102]],\n", - "\n", - " [[-37622.0547]],\n", - "\n", - " [[-37573.2539]],\n", - "\n", - " [[-37622.6602]],\n", - "\n", - " [[-37632.7656]],\n", - "\n", - " [[-37613.1445]],\n", - "\n", - " [[-37531.7969]],\n", - "\n", - " [[-37605.2969]],\n", - "\n", - " [[-37699.8516]],\n", - "\n", - " [[-37572.8047]],\n", - "\n", - " [[-37469.5469]],\n", - "\n", - " [[-37605.0625]],\n", - "\n", - " [[-37668.1094]],\n", - "\n", - " [[-37767.2227]],\n", - "\n", - " [[-37589.4180]],\n", - "\n", - " [[-37774.3516]],\n", - "\n", - " [[-37507.8789]],\n", - "\n", - " [[-37586.1406]],\n", - "\n", - " [[-37478.0352]],\n", - "\n", - " [[-37726.0273]],\n", - "\n", - " [[-37674.4258]],\n", - "\n", - " [[-37600.6289]],\n", - "\n", - " [[-37476.6289]],\n", - "\n", - " [[-37625.0547]],\n", - "\n", - " [[-37605.4609]],\n", - "\n", - " [[-37569.3984]],\n", - "\n", - " [[-37578.8359]],\n", - "\n", - " [[-37548.2734]],\n", - "\n", - " [[-37523.9844]],\n", - "\n", - " [[-37747.9609]],\n", - "\n", - " [[-37543.6250]],\n", - "\n", - " [[-37579.4141]],\n", - "\n", - " [[-37663.3086]],\n", - "\n", - " [[-37659.8398]],\n", - "\n", - " [[-37696.5273]],\n", - "\n", - " [[-37533.7344]],\n", - "\n", - " [[-37661.2070]],\n", - "\n", - " [[-37568.4922]],\n", - "\n", - " [[-37535.8359]],\n", - "\n", - " [[-37685.9609]],\n", - "\n", - " [[-37693.0547]],\n", - "\n", - " [[-37427.4805]],\n", - "\n", - " [[-37540.7383]],\n", - "\n", - " [[-37509.0078]],\n", - "\n", - " [[-37717.4297]],\n", - "\n", - " [[-37577.2070]],\n", - "\n", - " [[-37586.7266]],\n", - "\n", - " [[-37464.0781]],\n", - "\n", - " [[-37556.9336]],\n", - "\n", - " [[-37650.8125]],\n", - "\n", - " [[-37721.5898]],\n", - "\n", - " [[-37422.3555]],\n", - "\n", - " [[-37602.9336]],\n", - "\n", - " [[-37627.7617]],\n", - "\n", - " [[-37535.8008]],\n", - "\n", - " [[-37697.5430]],\n", - "\n", - " [[-37638.9922]],\n", - "\n", - " [[-37700.9492]],\n", - "\n", - " [[-37514.6680]],\n", - "\n", - " [[-37517.3555]],\n", - "\n", - " [[-37660.6719]],\n", - "\n", - " [[-37540.7344]],\n", - "\n", - " [[-37697.3203]],\n", - "\n", - " [[-37555.4375]],\n", - "\n", - " [[-37689.0586]],\n", - "\n", - " [[-37626.9492]],\n", - "\n", - " [[-37537.3945]],\n", - "\n", - " [[-37641.6055]],\n", - "\n", - " [[-37439.0664]],\n", - "\n", - " [[-37814.6641]],\n", - "\n", - " [[-37671.5469]],\n", - "\n", - " [[-37623.8594]],\n", - "\n", - " [[-37614.5664]],\n", - "\n", - " [[-37584.7188]],\n", - "\n", - " [[-37656.3164]],\n", - "\n", - " [[-37640.6875]],\n", - "\n", - " [[-37413.8984]],\n", - "\n", - " [[-37618.0352]],\n", - "\n", - " [[-37704.9805]],\n", - "\n", - " [[-37526.2852]],\n", - "\n", - " [[-37646.9453]],\n", - "\n", - " [[-37685.0469]],\n", - "\n", - " [[-37587.9805]],\n", - "\n", - " [[-37585.4258]],\n", - "\n", - " [[-37579.4023]],\n", - "\n", - " [[-37624.1211]],\n", - "\n", - " [[-37544.3242]],\n", - "\n", - " [[-37515.0859]],\n", - "\n", - " [[-37634.0703]],\n", - "\n", - " [[-37580.0781]],\n", - "\n", - " [[-37688.1797]],\n", - "\n", - " [[-37652.3008]],\n", - "\n", - " [[-37623.9102]],\n", - "\n", - " [[-37693.6992]],\n", - "\n", - " [[-37717.5352]],\n", - "\n", - " [[-37507.6680]],\n", - "\n", - " [[-37642.0664]],\n", - "\n", - " [[-37620.8555]],\n", - "\n", - " [[-37620.5898]],\n", - "\n", - " [[-37400.4609]],\n", - "\n", - " [[-37545.9961]],\n", - "\n", - " [[-37543.8281]],\n", - "\n", - " [[-37552.3242]],\n", - "\n", - " [[-37455.8320]],\n", - "\n", - " [[-37503.0781]],\n", - "\n", - " [[-37636.9102]],\n", - "\n", - " [[-37648.3516]],\n", - "\n", - " [[-37604.9805]],\n", - "\n", - " [[-37507.1484]],\n", - "\n", - " [[-37541.6055]],\n", - "\n", - " [[-37504.0703]],\n", - "\n", - " [[-37410.3672]],\n", - "\n", - " [[-37688.7344]],\n", - "\n", - " [[-37704.6641]],\n", - "\n", - " [[-37573.5469]],\n", - "\n", - " [[-37644.0195]],\n", - "\n", - " [[-37688.4766]],\n", - "\n", - " [[-37714.2422]],\n", - "\n", - " [[-37663.0508]],\n", - "\n", - " [[-37782.6133]],\n", - "\n", - " [[-37588.8984]],\n", - "\n", - " [[-37551.8867]],\n", - "\n", - " [[-37731.0820]],\n", - "\n", - " [[-37554.1445]],\n", - "\n", - " [[-37678.5312]],\n", - "\n", - " [[-37578.0195]],\n", - "\n", - " [[-37724.9805]],\n", - "\n", - " [[-37603.2109]],\n", - "\n", - " [[-37615.8242]],\n", - "\n", - " [[-37756.7383]],\n", - "\n", - " [[-37692.2500]],\n", - "\n", - " [[-37679.8555]],\n", - "\n", - " [[-37560.6836]],\n", - "\n", - " [[-37572.7539]],\n", - "\n", - " [[-37568.9375]],\n", - "\n", - " [[-37472.2461]],\n", - "\n", - " [[-37544.1641]],\n", - "\n", - " [[-37486.9805]],\n", - "\n", - " [[-37589.8906]],\n", - "\n", - " [[-37727.4180]],\n", - "\n", - " [[-37702.1406]],\n", - "\n", - " [[-37541.0234]],\n", - "\n", - " [[-37462.1992]],\n", - "\n", - " [[-37601.7461]],\n", - "\n", - " [[-37458.0742]],\n", - "\n", - " [[-37425.9023]],\n", - "\n", - " [[-37745.2500]],\n", - "\n", - " [[-37444.1758]],\n", - "\n", - " [[-37665.7031]],\n", - "\n", - " [[-37474.1523]],\n", - "\n", - " [[-37709.8672]],\n", - "\n", - " [[-37596.5898]],\n", - "\n", - " [[-37663.0078]],\n", - "\n", - " [[-37693.8203]],\n", - "\n", - " [[-37630.2383]],\n", - "\n", - " [[-37653.1992]],\n", - "\n", - " [[-37463.3359]],\n", - "\n", - " [[-37647.9336]],\n", - "\n", - " [[-37659.2578]],\n", - "\n", - " [[-37551.4609]],\n", - "\n", - " [[-37662.3711]],\n", - "\n", - " [[-37522.0938]],\n", - "\n", - " [[-37651.4609]],\n", - "\n", - " [[-37611.5430]],\n", - "\n", - " [[-37788.4688]],\n", - "\n", - " [[-37631.9883]],\n", - "\n", - " [[-37771.0273]],\n", - "\n", - " [[-37565.9297]],\n", - "\n", - " [[-37530.3945]],\n", - "\n", - " [[-37586.5156]],\n", - "\n", - " [[-37733.9180]],\n", - "\n", - " [[-37661.6484]],\n", - "\n", - " [[-37492.9375]],\n", - "\n", - " [[-37571.3945]],\n", - "\n", - " [[-37560.6680]],\n", - "\n", - " [[-37755.4492]],\n", - "\n", - " [[-37491.6055]],\n", - "\n", - " [[-37625.2812]],\n", - "\n", - " [[-37579.7383]],\n", - "\n", - " [[-37470.5586]],\n", - "\n", - " [[-37518.4727]],\n", - "\n", - " [[-37693.0234]],\n", - "\n", - " [[-37449.4141]],\n", - "\n", - " [[-37588.2500]],\n", - "\n", - " [[-37550.4766]],\n", - "\n", - " [[-37718.7500]],\n", - "\n", - " [[-37685.7109]],\n", - "\n", - " [[-37459.9922]],\n", - "\n", - " [[-37576.4648]],\n", - "\n", - " [[-37726.9297]],\n", - "\n", - " [[-37548.0117]],\n", - "\n", - " [[-37638.8984]],\n", - "\n", - " [[-37712.3438]],\n", - "\n", - " [[-37609.9062]],\n", - "\n", - " [[-37702.0820]],\n", - "\n", - " [[-37623.1641]],\n", - "\n", - " [[-37595.1836]],\n", - "\n", - " [[-37534.6328]],\n", - "\n", - " [[-37619.9492]],\n", - "\n", - " [[-37755.5703]],\n", - "\n", - " [[-37584.6992]],\n", - "\n", - " [[-37483.7539]],\n", - "\n", - " [[-37690.1914]],\n", - "\n", - " [[-37695.3477]],\n", - "\n", - " [[-37590.5078]],\n", - "\n", - " [[-37666.1797]],\n", - "\n", - " [[-37721.3477]],\n", - "\n", - " [[-37541.2852]],\n", - "\n", - " [[-37435.1875]],\n", - "\n", - " [[-37741.4570]],\n", - "\n", - " [[-37486.4062]],\n", - "\n", - " [[-37622.8633]],\n", - "\n", - " [[-37661.8516]],\n", - "\n", - " [[-37449.3789]],\n", - "\n", - " [[-37430.0469]],\n", - "\n", - " [[-37629.1797]],\n", - "\n", - " [[-37510.1055]],\n", - "\n", - " [[-37476.8711]],\n", - "\n", - " [[-37527.0977]],\n", - "\n", - " [[-37566.3164]],\n", - "\n", - " [[-37630.6484]],\n", - "\n", - " [[-37552.9453]],\n", - "\n", - " [[-37617.5703]],\n", - "\n", - " [[-37490.4219]],\n", - "\n", - " [[-37619.5586]],\n", - "\n", - " [[-37654.0000]],\n", - "\n", - " [[-37582.1758]],\n", - "\n", - " [[-37491.7734]],\n", - "\n", - " [[-37666.4648]],\n", - "\n", - " [[-37612.7148]],\n", - "\n", - " [[-37389.9531]],\n", - "\n", - " [[-37621.2617]],\n", - "\n", - " [[-37547.6953]],\n", - "\n", - " [[-37661.7500]],\n", - "\n", - " [[-37638.2227]],\n", - "\n", - " [[-37528.8359]],\n", - "\n", - " [[-37600.3047]],\n", - "\n", - " [[-37809.3633]],\n", - "\n", - " [[-37500.6602]],\n", - "\n", - " [[-37728.5938]],\n", - "\n", - " [[-37687.6992]],\n", - "\n", - " [[-37487.4297]],\n", - "\n", - " [[-37751.8984]],\n", - "\n", - " [[-37593.7383]],\n", - "\n", - " [[-37710.0469]],\n", - "\n", - " [[-37674.8086]]], grad_fn=)\n", - "tensor([[[-36434.8750]],\n", - "\n", - " [[-36371.1602]],\n", - "\n", - " [[-36521.5508]],\n", - "\n", - " [[-36345.6133]],\n", - "\n", - " [[-36318.1445]],\n", - "\n", - " [[-36384.4414]],\n", - "\n", - " [[-36496.2422]],\n", - "\n", - " [[-36340.4180]],\n", - "\n", - " [[-36448.2812]],\n", - "\n", - " [[-36441.8945]],\n", - "\n", - " [[-36352.1562]],\n", - "\n", - " [[-36513.6953]],\n", - "\n", - " [[-36387.0742]],\n", - "\n", - " [[-36522.2383]],\n", - "\n", - " [[-36486.1992]],\n", - "\n", - " [[-36489.9922]],\n", - "\n", - " [[-36243.8789]],\n", - "\n", - " [[-36475.6797]],\n", - "\n", - " [[-36464.8828]],\n", - "\n", - " [[-36352.9805]],\n", - "\n", - " [[-36477.4336]],\n", - "\n", - " [[-36367.8125]],\n", - "\n", - " [[-36418.4961]],\n", - "\n", - " [[-36517.6445]],\n", - "\n", - " [[-36475.2383]],\n", - "\n", - " [[-36414.0430]],\n", - "\n", - " [[-36402.5234]],\n", - "\n", - " [[-36371.7188]],\n", - "\n", - " [[-36565.6484]],\n", - "\n", - " [[-36464.0156]],\n", - "\n", - " [[-36531.0312]],\n", - "\n", - " [[-36357.3086]],\n", - "\n", - " [[-36501.3164]],\n", - "\n", - " [[-36344.3984]],\n", - "\n", - " [[-36402.6562]],\n", - "\n", - " [[-36611.0859]],\n", - "\n", - " [[-36404.4961]],\n", - "\n", - " [[-36407.2695]],\n", - "\n", - " [[-36394.6133]],\n", - "\n", - " [[-36406.3750]],\n", - "\n", - " [[-36316.3086]],\n", - "\n", - " [[-36295.4688]],\n", - "\n", - " [[-36430.1797]],\n", - "\n", - " [[-36453.8008]],\n", - "\n", - " [[-36362.6875]],\n", - "\n", - " [[-36454.3008]],\n", - "\n", - " [[-36256.9727]],\n", - "\n", - " [[-36558.4609]],\n", - "\n", - " [[-36337.3867]],\n", - "\n", - " [[-36352.4844]],\n", - "\n", - " [[-36463.8516]],\n", - "\n", - " [[-36370.6992]],\n", - "\n", - " [[-36398.2305]],\n", - "\n", - " [[-36339.9062]],\n", - "\n", - " [[-36348.5625]],\n", - "\n", - " [[-36318.9766]],\n", - "\n", - " [[-36325.6055]],\n", - "\n", - " [[-36312.9062]],\n", - "\n", - " [[-36254.8008]],\n", - "\n", - " [[-36552.0547]],\n", - "\n", - " [[-36444.0312]],\n", - "\n", - " [[-36494.0859]],\n", - "\n", - " [[-36562.9141]],\n", - "\n", - " [[-36492.9570]],\n", - "\n", - " [[-36428.1289]],\n", - "\n", - " [[-36280.9766]],\n", - "\n", - " [[-36352.6953]],\n", - "\n", - " [[-36363.0508]],\n", - "\n", - " [[-36425.3867]],\n", - "\n", - " [[-36364.7109]],\n", - "\n", - " [[-36451.9609]],\n", - "\n", - " [[-36241.4023]],\n", - "\n", - " [[-36272.9414]],\n", - "\n", - " [[-36470.3555]],\n", - "\n", - " [[-36492.8828]],\n", - "\n", - " [[-36380.4375]],\n", - "\n", - " [[-36318.6680]],\n", - "\n", - " [[-36405.8867]],\n", - "\n", - " [[-36381.6602]],\n", - "\n", - " [[-36302.0469]],\n", - "\n", - " [[-36449.7188]],\n", - "\n", - " [[-36276.4375]],\n", - "\n", - " [[-36531.6914]],\n", - "\n", - " [[-36359.3633]],\n", - "\n", - " [[-36346.0234]],\n", - "\n", - " [[-36446.4648]],\n", - "\n", - " [[-36530.7109]],\n", - "\n", - " [[-36344.3672]],\n", - "\n", - " [[-36243.6289]],\n", - "\n", - " [[-36420.1094]],\n", - "\n", - " [[-36380.0117]],\n", - "\n", - " [[-36403.5742]],\n", - "\n", - " [[-36284.9922]],\n", - "\n", - " [[-36390.4531]],\n", - "\n", - " [[-36349.3789]],\n", - "\n", - " [[-36349.6953]],\n", - "\n", - " [[-36430.8867]],\n", - "\n", - " [[-36435.2578]],\n", - "\n", - " [[-36512.3906]],\n", - "\n", - " [[-36535.4844]],\n", - "\n", - " [[-36435.7578]],\n", - "\n", - " [[-36515.5195]],\n", - "\n", - " [[-36611.9062]],\n", - "\n", - " [[-36319.2695]],\n", - "\n", - " [[-36418.8516]],\n", - "\n", - " [[-36347.2461]],\n", - "\n", - " [[-36553.5938]],\n", - "\n", - " [[-36483.2500]],\n", - "\n", - " [[-36370.9805]],\n", - "\n", - " [[-36511.7422]],\n", - "\n", - " [[-36519.6328]],\n", - "\n", - " [[-36246.7734]],\n", - "\n", - " [[-36525.9570]],\n", - "\n", - " [[-36317.6094]],\n", - "\n", - " [[-36584.0000]],\n", - "\n", - " [[-36365.7070]],\n", - "\n", - " [[-36398.6953]],\n", - "\n", - " [[-36528.7617]],\n", - "\n", - " [[-36310.2461]],\n", - "\n", - " [[-36341.0156]],\n", - "\n", - " [[-36269.2891]],\n", - "\n", - " [[-36451.1406]],\n", - "\n", - " [[-36416.7969]],\n", - "\n", - " [[-36315.1133]],\n", - "\n", - " [[-36475.4531]],\n", - "\n", - " [[-36425.2266]],\n", - "\n", - " [[-36543.0273]],\n", - "\n", - " [[-36356.2500]],\n", - "\n", - " [[-36483.0938]],\n", - "\n", - " [[-36391.2266]],\n", - "\n", - " [[-36356.9258]],\n", - "\n", - " [[-36391.8203]],\n", - "\n", - " [[-36648.0234]],\n", - "\n", - " [[-36532.7422]],\n", - "\n", - " [[-36448.1094]],\n", - "\n", - " [[-36362.0117]],\n", - "\n", - " [[-36340.6875]],\n", - "\n", - " [[-36468.0000]],\n", - "\n", - " [[-36395.8086]],\n", - "\n", - " [[-36328.8281]],\n", - "\n", - " [[-36352.6875]],\n", - "\n", - " [[-36404.3008]],\n", - "\n", - " [[-36383.8555]],\n", - "\n", - " [[-36424.9062]],\n", - "\n", - " [[-36231.7227]],\n", - "\n", - " [[-36418.8789]],\n", - "\n", - " [[-36470.3906]],\n", - "\n", - " [[-36322.8047]],\n", - "\n", - " [[-36322.2773]],\n", - "\n", - " [[-36420.2148]],\n", - "\n", - " [[-36452.8320]],\n", - "\n", - " [[-36317.6172]],\n", - "\n", - " [[-36397.9727]],\n", - "\n", - " [[-36273.7266]],\n", - "\n", - " [[-36540.0547]],\n", - "\n", - " [[-36474.8320]],\n", - "\n", - " [[-36293.0938]],\n", - "\n", - " [[-36398.0234]],\n", - "\n", - " [[-36505.6367]],\n", - "\n", - " [[-36361.4102]],\n", - "\n", - " [[-36503.0469]],\n", - "\n", - " [[-36379.8750]],\n", - "\n", - " [[-36385.0156]],\n", - "\n", - " [[-36354.8047]],\n", - "\n", - " [[-36425.4570]],\n", - "\n", - " [[-36568.7188]],\n", - "\n", - " [[-36556.2852]],\n", - "\n", - " [[-36593.3320]],\n", - "\n", - " [[-36392.3242]],\n", - "\n", - " [[-36378.0078]],\n", - "\n", - " [[-36372.9492]],\n", - "\n", - " [[-36457.9492]],\n", - "\n", - " [[-36278.3711]],\n", - "\n", - " [[-36440.0977]],\n", - "\n", - " [[-36600.0078]],\n", - "\n", - " [[-36449.6758]],\n", - "\n", - " [[-36502.4492]],\n", - "\n", - " [[-36450.5039]],\n", - "\n", - " [[-36363.4688]],\n", - "\n", - " [[-36247.7227]],\n", - "\n", - " [[-36550.6250]],\n", - "\n", - " [[-36465.6523]],\n", - "\n", - " [[-36391.3984]],\n", - "\n", - " [[-36509.9219]],\n", - "\n", - " [[-36369.2656]],\n", - "\n", - " [[-36326.0117]],\n", - "\n", - " [[-36479.6055]],\n", - "\n", - " [[-36452.9219]],\n", - "\n", - " [[-36483.1992]],\n", - "\n", - " [[-36348.7852]],\n", - "\n", - " [[-36543.1250]],\n", - "\n", - " [[-36361.3438]],\n", - "\n", - " [[-36442.0938]],\n", - "\n", - " [[-36456.6641]],\n", - "\n", - " [[-36453.2070]],\n", - "\n", - " [[-36235.1680]],\n", - "\n", - " [[-36427.6797]],\n", - "\n", - " [[-36425.0742]],\n", - "\n", - " [[-36536.4141]],\n", - "\n", - " [[-36520.5781]],\n", - "\n", - " [[-36360.0234]],\n", - "\n", - " [[-36290.7539]],\n", - "\n", - " [[-36345.2109]],\n", - "\n", - " [[-36390.6758]],\n", - "\n", - " [[-36388.3516]],\n", - "\n", - " [[-36401.9648]],\n", - "\n", - " [[-36391.8477]],\n", - "\n", - " [[-36343.6289]],\n", - "\n", - " [[-36389.7148]],\n", - "\n", - " [[-36355.4531]],\n", - "\n", - " [[-36453.4492]],\n", - "\n", - " [[-36446.4844]],\n", - "\n", - " [[-36516.0469]],\n", - "\n", - " [[-36423.5391]],\n", - "\n", - " [[-36528.1875]],\n", - "\n", - " [[-36458.1367]],\n", - "\n", - " [[-36409.9531]],\n", - "\n", - " [[-36320.5664]],\n", - "\n", - " [[-36551.6562]],\n", - "\n", - " [[-36430.5742]],\n", - "\n", - " [[-36404.3906]],\n", - "\n", - " [[-36391.3086]],\n", - "\n", - " [[-36335.8164]],\n", - "\n", - " [[-36357.9805]],\n", - "\n", - " [[-36387.1680]],\n", - "\n", - " [[-36326.3906]],\n", - "\n", - " [[-36373.3984]],\n", - "\n", - " [[-36598.9688]],\n", - "\n", - " [[-36256.4727]],\n", - "\n", - " [[-36464.0781]],\n", - "\n", - " [[-36320.6484]],\n", - "\n", - " [[-36418.8125]],\n", - "\n", - " [[-36344.5469]],\n", - "\n", - " [[-36466.1680]],\n", - "\n", - " [[-36405.9258]],\n", - "\n", - " [[-36509.8398]],\n", - "\n", - " [[-36546.3555]],\n", - "\n", - " [[-36336.3945]],\n", - "\n", - " [[-36478.8477]],\n", - "\n", - " [[-36303.6602]],\n", - "\n", - " [[-36344.2969]],\n", - "\n", - " [[-36484.7969]],\n", - "\n", - " [[-36387.6523]],\n", - "\n", - " [[-36399.8555]],\n", - "\n", - " [[-36379.0234]],\n", - "\n", - " [[-36497.1445]],\n", - "\n", - " [[-36348.5859]],\n", - "\n", - " [[-36518.3945]],\n", - "\n", - " [[-36342.1836]],\n", - "\n", - " [[-36394.4805]],\n", - "\n", - " [[-36308.5078]],\n", - "\n", - " [[-36420.3008]],\n", - "\n", - " [[-36312.6445]],\n", - "\n", - " [[-36345.8242]],\n", - "\n", - " [[-36429.8008]],\n", - "\n", - " [[-36574.4766]]], grad_fn=)\n", - "tensor([[[-35252.2422]],\n", - "\n", - " [[-35195.9336]],\n", - "\n", - " [[-35246.6328]],\n", - "\n", - " [[-35202.2852]],\n", - "\n", - " [[-35231.2930]],\n", - "\n", - " [[-35142.2969]],\n", - "\n", - " [[-35188.7266]],\n", - "\n", - " [[-35345.8945]],\n", - "\n", - " [[-35185.8398]],\n", - "\n", - " [[-35268.7852]],\n", - "\n", - " [[-35191.1523]],\n", - "\n", - " [[-35284.8867]],\n", - "\n", - " [[-35243.7969]],\n", - "\n", - " [[-35284.5820]],\n", - "\n", - " [[-35164.5078]],\n", - "\n", - " [[-35215.3867]],\n", - "\n", - " [[-35087.5312]],\n", - "\n", - " [[-35187.2266]],\n", - "\n", - " [[-35159.5430]],\n", - "\n", - " [[-35170.9141]],\n", - "\n", - " [[-35224.9531]],\n", - "\n", - " [[-35091.2031]],\n", - "\n", - " [[-35226.5898]],\n", - "\n", - " [[-35242.6328]],\n", - "\n", - " [[-35273.9375]],\n", - "\n", - " [[-35130.0625]],\n", - "\n", - " [[-35400.4570]],\n", - "\n", - " [[-35325.2852]],\n", - "\n", - " [[-35204.3867]],\n", - "\n", - " [[-35131.2383]],\n", - "\n", - " [[-35284.7539]],\n", - "\n", - " [[-35200.7344]],\n", - "\n", - " [[-35097.8359]],\n", - "\n", - " [[-35234.5547]],\n", - "\n", - " [[-35205.7188]],\n", - "\n", - " [[-35359.5352]],\n", - "\n", - " [[-35342.3672]],\n", - "\n", - " [[-35284.5820]],\n", - "\n", - " [[-35182.8438]],\n", - "\n", - " [[-35075.5742]],\n", - "\n", - " [[-35116.7734]],\n", - "\n", - " [[-35234.4375]],\n", - "\n", - " [[-35066.2734]],\n", - "\n", - " [[-35235.1602]],\n", - "\n", - " [[-35344.7422]],\n", - "\n", - " [[-35231.9492]],\n", - "\n", - " [[-35181.8828]],\n", - "\n", - " [[-35352.3633]],\n", - "\n", - " [[-35303.3359]],\n", - "\n", - " [[-35109.2266]],\n", - "\n", - " [[-35276.9219]],\n", - "\n", - " [[-35134.9219]],\n", - "\n", - " [[-35242.8594]],\n", - "\n", - " [[-35286.3008]],\n", - "\n", - " [[-35162.1719]],\n", - "\n", - " [[-35424.0898]],\n", - "\n", - " [[-35209.3984]],\n", - "\n", - " [[-35265.9453]],\n", - "\n", - " [[-35390.4883]],\n", - "\n", - " [[-35192.5430]],\n", - "\n", - " [[-35219.2266]],\n", - "\n", - " [[-35135.6758]],\n", - "\n", - " [[-35289.3789]],\n", - "\n", - " [[-35193.6406]],\n", - "\n", - " [[-35266.9961]],\n", - "\n", - " [[-35182.3633]],\n", - "\n", - " [[-35287.1328]],\n", - "\n", - " [[-35184.0352]],\n", - "\n", - " [[-35280.3711]],\n", - "\n", - " [[-35232.4258]],\n", - "\n", - " [[-35193.5156]],\n", - "\n", - " [[-35130.7695]],\n", - "\n", - " [[-35265.0938]],\n", - "\n", - " [[-35309.1953]],\n", - "\n", - " [[-35166.1484]],\n", - "\n", - " [[-35200.9883]],\n", - "\n", - " [[-35321.5781]],\n", - "\n", - " [[-35098.9922]],\n", - "\n", - " [[-35188.2812]],\n", - "\n", - " [[-35208.6484]],\n", - "\n", - " [[-35200.9062]],\n", - "\n", - " [[-35189.1641]],\n", - "\n", - " [[-35070.7500]],\n", - "\n", - " [[-35266.2344]],\n", - "\n", - " [[-35213.1562]],\n", - "\n", - " [[-35259.3906]],\n", - "\n", - " [[-35162.8750]],\n", - "\n", - " [[-35249.8906]],\n", - "\n", - " [[-35224.2539]],\n", - "\n", - " [[-35245.9805]],\n", - "\n", - " [[-35212.7266]],\n", - "\n", - " [[-35341.7344]],\n", - "\n", - " [[-35365.5078]],\n", - "\n", - " [[-35259.1875]],\n", - "\n", - " [[-35201.5234]],\n", - "\n", - " [[-35157.5117]],\n", - "\n", - " [[-35270.2578]],\n", - "\n", - " [[-35239.6562]],\n", - "\n", - " [[-35238.3047]],\n", - "\n", - " [[-35318.3672]],\n", - "\n", - " [[-35150.5039]],\n", - "\n", - " [[-35225.6211]],\n", - "\n", - " [[-35235.4258]],\n", - "\n", - " [[-35270.0156]],\n", - "\n", - " [[-35218.0430]],\n", - "\n", - " [[-35243.7461]],\n", - "\n", - " [[-35209.4766]],\n", - "\n", - " [[-35151.5078]],\n", - "\n", - " [[-35248.3281]],\n", - "\n", - " [[-35298.3125]],\n", - "\n", - " [[-35292.7031]],\n", - "\n", - " [[-35272.4102]],\n", - "\n", - " [[-35250.4766]],\n", - "\n", - " [[-35368.0820]],\n", - "\n", - " [[-35263.5391]],\n", - "\n", - " [[-35277.6992]],\n", - "\n", - " [[-35248.8203]],\n", - "\n", - " [[-35272.7852]],\n", - "\n", - " [[-35227.1250]],\n", - "\n", - " [[-35400.0586]],\n", - "\n", - " [[-35403.3281]],\n", - "\n", - " [[-35161.8047]],\n", - "\n", - " [[-35243.4492]],\n", - "\n", - " [[-35260.8359]],\n", - "\n", - " [[-35260.6250]],\n", - "\n", - " [[-35272.6797]],\n", - "\n", - " [[-35320.2188]],\n", - "\n", - " [[-35193.0508]],\n", - "\n", - " [[-35187.4922]],\n", - "\n", - " [[-35280.6289]],\n", - "\n", - " [[-35252.0508]],\n", - "\n", - " [[-35154.2773]],\n", - "\n", - " [[-35265.2891]],\n", - "\n", - " [[-35130.8555]],\n", - "\n", - " [[-35127.5742]],\n", - "\n", - " [[-35192.8203]],\n", - "\n", - " [[-35238.8203]],\n", - "\n", - " [[-35359.5820]],\n", - "\n", - " [[-35136.0820]],\n", - "\n", - " [[-35338.2500]],\n", - "\n", - " [[-35149.6484]],\n", - "\n", - " [[-35361.9102]],\n", - "\n", - " [[-35293.6523]],\n", - "\n", - " [[-35275.0273]],\n", - "\n", - " [[-35298.4453]],\n", - "\n", - " [[-35136.3633]],\n", - "\n", - " [[-35373.5117]],\n", - "\n", - " [[-35199.3398]],\n", - "\n", - " [[-35188.8203]],\n", - "\n", - " [[-35262.6172]],\n", - "\n", - " [[-35268.4961]],\n", - "\n", - " [[-35298.8867]],\n", - "\n", - " [[-35288.5742]],\n", - "\n", - " [[-35239.6953]],\n", - "\n", - " [[-35254.4180]],\n", - "\n", - " [[-35171.4258]],\n", - "\n", - " [[-35284.1289]],\n", - "\n", - " [[-35268.6055]],\n", - "\n", - " [[-35265.7461]],\n", - "\n", - " [[-35187.2539]],\n", - "\n", - " [[-35055.2109]],\n", - "\n", - " [[-35263.0898]],\n", - "\n", - " [[-35166.0586]],\n", - "\n", - " [[-35216.6641]],\n", - "\n", - " [[-35171.1562]],\n", - "\n", - " [[-35223.7461]],\n", - "\n", - " [[-35096.9141]],\n", - "\n", - " [[-35195.2852]],\n", - "\n", - " [[-35178.0508]],\n", - "\n", - " [[-35183.6055]],\n", - "\n", - " [[-35295.9766]],\n", - "\n", - " [[-35228.3008]],\n", - "\n", - " [[-35205.0625]],\n", - "\n", - " [[-35063.3203]],\n", - "\n", - " [[-35361.5938]],\n", - "\n", - " [[-35266.8789]],\n", - "\n", - " [[-35268.2656]],\n", - "\n", - " [[-35223.3516]],\n", - "\n", - " [[-35242.7891]],\n", - "\n", - " [[-35125.3828]],\n", - "\n", - " [[-35174.7422]],\n", - "\n", - " [[-35216.6250]],\n", - "\n", - " [[-35115.6797]],\n", - "\n", - " [[-35246.3203]],\n", - "\n", - " [[-35095.9844]],\n", - "\n", - " [[-35083.3750]],\n", - "\n", - " [[-35252.5273]],\n", - "\n", - " [[-35215.9102]],\n", - "\n", - " [[-35294.4062]],\n", - "\n", - " [[-35281.0664]],\n", - "\n", - " [[-35202.5625]],\n", - "\n", - " [[-35185.0625]],\n", - "\n", - " [[-35240.1953]],\n", - "\n", - " [[-35274.3633]],\n", - "\n", - " [[-35109.2227]],\n", - "\n", - " [[-35308.1094]],\n", - "\n", - " [[-35092.9766]],\n", - "\n", - " [[-35334.8789]],\n", - "\n", - " [[-35237.2422]],\n", - "\n", - " [[-35140.5039]],\n", - "\n", - " [[-35242.1094]],\n", - "\n", - " [[-35150.6992]],\n", - "\n", - " [[-35336.8086]],\n", - "\n", - " [[-35134.5273]],\n", - "\n", - " [[-35232.7539]],\n", - "\n", - " [[-35202.3516]],\n", - "\n", - " [[-35374.0820]],\n", - "\n", - " [[-35291.4414]],\n", - "\n", - " [[-35260.6953]],\n", - "\n", - " [[-35325.0430]],\n", - "\n", - " [[-35171.7422]],\n", - "\n", - " [[-35136.0547]],\n", - "\n", - " [[-35289.8242]],\n", - "\n", - " [[-35044.9219]],\n", - "\n", - " [[-35232.5156]],\n", - "\n", - " [[-35057.7109]],\n", - "\n", - " [[-35271.9219]],\n", - "\n", - " [[-35271.0508]],\n", - "\n", - " [[-35197.4102]],\n", - "\n", - " [[-35255.3789]],\n", - "\n", - " [[-35281.1641]],\n", - "\n", - " [[-35229.9453]],\n", - "\n", - " [[-35086.4766]],\n", - "\n", - " [[-35099.5859]],\n", - "\n", - " [[-35067.7578]],\n", - "\n", - " [[-35370.8125]],\n", - "\n", - " [[-35136.3398]],\n", - "\n", - " [[-35213.6680]],\n", - "\n", - " [[-35312.7070]],\n", - "\n", - " [[-35290.5938]],\n", - "\n", - " [[-35447.1562]],\n", - "\n", - " [[-35131.7070]],\n", - "\n", - " [[-35276.3594]],\n", - "\n", - " [[-35232.2734]],\n", - "\n", - " [[-35079.2500]],\n", - "\n", - " [[-35251.3086]],\n", - "\n", - " [[-35093.6797]],\n", - "\n", - " [[-35139.8242]],\n", - "\n", - " [[-35061.6562]],\n", - "\n", - " [[-35260.0781]],\n", - "\n", - " [[-35359.6836]],\n", - "\n", - " [[-35281.3789]],\n", - "\n", - " [[-35222.7578]],\n", - "\n", - " [[-35319.8906]],\n", - "\n", - " [[-35194.2227]],\n", - "\n", - " [[-35285.2969]],\n", - "\n", - " [[-35273.0430]],\n", - "\n", - " [[-35175.9297]],\n", - "\n", - " [[-35322.9102]],\n", - "\n", - " [[-35243.3828]],\n", - "\n", - " [[-35226.8750]],\n", - "\n", - " [[-35264.2070]],\n", - "\n", - " [[-35311.0352]],\n", - "\n", - " [[-35066.8828]],\n", - "\n", - " [[-35298.3633]],\n", - "\n", - " [[-35179.2930]]], grad_fn=)\n", - "tensor([[[-34091.0977]],\n", - "\n", - " [[-33999.2578]],\n", - "\n", - " [[-34106.1562]],\n", - "\n", - " [[-33913.9648]],\n", - "\n", - " [[-34083.7891]],\n", - "\n", - " [[-34147.4258]],\n", - "\n", - " [[-34169.0820]],\n", - "\n", - " [[-33905.7812]],\n", - "\n", - " [[-34172.6680]],\n", - "\n", - " [[-34296.4727]],\n", - "\n", - " [[-34136.9062]],\n", - "\n", - " [[-34081.0000]],\n", - "\n", - " [[-34164.8477]],\n", - "\n", - " [[-34049.1680]],\n", - "\n", - " [[-34112.2070]],\n", - "\n", - " [[-34096.7227]],\n", - "\n", - " [[-34087.5430]],\n", - "\n", - " [[-34209.2578]],\n", - "\n", - " [[-34256.0820]],\n", - "\n", - " [[-34092.5469]],\n", - "\n", - " [[-34126.8203]],\n", - "\n", - " [[-34039.4844]],\n", - "\n", - " [[-34118.9609]],\n", - "\n", - " [[-34202.7852]],\n", - "\n", - " [[-34154.7188]],\n", - "\n", - " [[-34126.2617]],\n", - "\n", - " [[-34098.4922]],\n", - "\n", - " [[-33938.9688]],\n", - "\n", - " [[-33979.0273]],\n", - "\n", - " [[-34196.7852]],\n", - "\n", - " [[-34157.6875]],\n", - "\n", - " [[-33999.3086]],\n", - "\n", - " [[-33946.1562]],\n", - "\n", - " [[-34152.2344]],\n", - "\n", - " [[-33993.8906]],\n", - "\n", - " [[-34049.5781]],\n", - "\n", - " [[-33998.9648]],\n", - "\n", - " [[-33999.8828]],\n", - "\n", - " [[-34076.5664]],\n", - "\n", - " [[-34121.8828]],\n", - "\n", - " [[-33978.6836]],\n", - "\n", - " [[-34100.6797]],\n", - "\n", - " [[-34116.8555]],\n", - "\n", - " [[-34139.3594]],\n", - "\n", - " [[-34171.4883]],\n", - "\n", - " [[-34028.0898]],\n", - "\n", - " [[-34158.2812]],\n", - "\n", - " [[-34169.3008]],\n", - "\n", - " [[-34239.2070]],\n", - "\n", - " [[-34057.5820]],\n", - "\n", - " [[-34059.5430]],\n", - "\n", - " [[-34267.6602]],\n", - "\n", - " [[-34222.4844]],\n", - "\n", - " [[-34088.0586]],\n", - "\n", - " [[-34011.0039]],\n", - "\n", - " [[-34073.7617]],\n", - "\n", - " [[-34218.5078]],\n", - "\n", - " [[-34193.3867]],\n", - "\n", - " [[-34149.8672]],\n", - "\n", - " [[-33984.6016]],\n", - "\n", - " [[-33996.7227]],\n", - "\n", - " [[-34020.1797]],\n", - "\n", - " [[-33944.0742]],\n", - "\n", - " [[-34052.6055]],\n", - "\n", - " [[-33920.2500]],\n", - "\n", - " [[-34274.8867]],\n", - "\n", - " [[-34013.2734]],\n", - "\n", - " [[-34076.8281]],\n", - "\n", - " [[-34177.8945]],\n", - "\n", - " [[-34159.5156]],\n", - "\n", - " [[-34106.7500]],\n", - "\n", - " [[-34169.8242]],\n", - "\n", - " [[-33938.6719]],\n", - "\n", - " [[-34175.6758]],\n", - "\n", - " [[-34272.5234]],\n", - "\n", - " [[-34127.1367]],\n", - "\n", - " [[-34139.1172]],\n", - "\n", - " [[-34155.7422]],\n", - "\n", - " [[-34053.9297]],\n", - "\n", - " [[-34066.6367]],\n", - "\n", - " [[-33913.1133]],\n", - "\n", - " [[-33967.5352]],\n", - "\n", - " [[-34078.2148]],\n", - "\n", - " [[-34086.2344]],\n", - "\n", - " [[-34043.8281]],\n", - "\n", - " [[-34169.9766]],\n", - "\n", - " [[-34077.8203]],\n", - "\n", - " [[-34161.7422]],\n", - "\n", - " [[-34083.7773]],\n", - "\n", - " [[-34063.0977]],\n", - "\n", - " [[-34188.4102]],\n", - "\n", - " [[-33919.6680]],\n", - "\n", - " [[-34069.5000]],\n", - "\n", - " [[-34247.8984]],\n", - "\n", - " [[-34073.6602]],\n", - "\n", - " [[-34011.6719]],\n", - "\n", - " [[-34172.8477]],\n", - "\n", - " [[-34082.8516]],\n", - "\n", - " [[-34185.6875]],\n", - "\n", - " [[-34225.8086]],\n", - "\n", - " [[-34200.0352]],\n", - "\n", - " [[-34224.6484]],\n", - "\n", - " [[-34184.1719]],\n", - "\n", - " [[-34113.3984]],\n", - "\n", - " [[-33921.1523]],\n", - "\n", - " [[-34118.6914]],\n", - "\n", - " [[-34040.5000]],\n", - "\n", - " [[-34027.6992]],\n", - "\n", - " [[-34127.2539]],\n", - "\n", - " [[-33971.6719]],\n", - "\n", - " [[-34208.3086]],\n", - "\n", - " [[-34052.3008]],\n", - "\n", - " [[-34083.0703]],\n", - "\n", - " [[-34132.1680]],\n", - "\n", - " [[-34002.8281]],\n", - "\n", - " [[-34200.5391]],\n", - "\n", - " [[-34036.2109]],\n", - "\n", - " [[-34153.7188]],\n", - "\n", - " [[-34106.4648]],\n", - "\n", - " [[-34072.6992]],\n", - "\n", - " [[-34135.4023]],\n", - "\n", - " [[-33966.8945]],\n", - "\n", - " [[-34164.9375]],\n", - "\n", - " [[-34193.1680]],\n", - "\n", - " [[-33990.7305]],\n", - "\n", - " [[-34098.6367]],\n", - "\n", - " [[-34179.2891]],\n", - "\n", - " [[-34142.7969]],\n", - "\n", - " [[-34092.1367]],\n", - "\n", - " [[-33949.8359]],\n", - "\n", - " [[-34240.6836]],\n", - "\n", - " [[-34235.6523]],\n", - "\n", - " [[-34231.6641]],\n", - "\n", - " [[-34090.5703]],\n", - "\n", - " [[-34106.9492]],\n", - "\n", - " [[-34153.1445]],\n", - "\n", - " [[-34210.6992]],\n", - "\n", - " [[-33916.4180]],\n", - "\n", - " [[-34295.9609]],\n", - "\n", - " [[-34242.5898]],\n", - "\n", - " [[-34064.5312]],\n", - "\n", - " [[-34132.0039]],\n", - "\n", - " [[-34001.3672]],\n", - "\n", - " [[-34254.6133]],\n", - "\n", - " [[-34063.9961]],\n", - "\n", - " [[-33925.1406]],\n", - "\n", - " [[-33958.1836]],\n", - "\n", - " [[-34258.8125]],\n", - "\n", - " [[-33945.5312]],\n", - "\n", - " [[-34067.8750]],\n", - "\n", - " [[-34049.6289]],\n", - "\n", - " [[-34123.2578]],\n", - "\n", - " [[-34093.0938]],\n", - "\n", - " [[-34158.4609]],\n", - "\n", - " [[-34127.3203]],\n", - "\n", - " [[-34264.4492]],\n", - "\n", - " [[-34130.4219]],\n", - "\n", - " [[-34001.8398]],\n", - "\n", - " [[-34173.1133]],\n", - "\n", - " [[-34182.4961]],\n", - "\n", - " [[-34083.2578]],\n", - "\n", - " [[-34118.2812]],\n", - "\n", - " [[-33939.2305]],\n", - "\n", - " [[-34146.3711]],\n", - "\n", - " [[-34128.7500]],\n", - "\n", - " [[-34285.4336]],\n", - "\n", - " [[-33990.5703]],\n", - "\n", - " [[-34163.2656]],\n", - "\n", - " [[-34151.8438]],\n", - "\n", - " [[-34074.0195]],\n", - "\n", - " [[-34033.5977]],\n", - "\n", - " [[-34022.4141]],\n", - "\n", - " [[-34344.3086]],\n", - "\n", - " [[-34125.4336]],\n", - "\n", - " [[-34182.3945]],\n", - "\n", - " [[-34137.4141]],\n", - "\n", - " [[-34203.2578]],\n", - "\n", - " [[-34148.1094]],\n", - "\n", - " [[-34006.3203]],\n", - "\n", - " [[-34062.5547]],\n", - "\n", - " [[-33989.2812]],\n", - "\n", - " [[-34032.9609]],\n", - "\n", - " [[-34009.9688]],\n", - "\n", - " [[-34195.8086]],\n", - "\n", - " [[-34032.7109]],\n", - "\n", - " [[-34051.6016]],\n", - "\n", - " [[-34153.7305]],\n", - "\n", - " [[-34163.5078]],\n", - "\n", - " [[-34146.0273]],\n", - "\n", - " [[-34026.3242]],\n", - "\n", - " [[-34097.0000]],\n", - "\n", - " [[-34192.3828]],\n", - "\n", - " [[-34115.8320]],\n", - "\n", - " [[-34232.3750]],\n", - "\n", - " [[-34087.5508]],\n", - "\n", - " [[-34064.6523]],\n", - "\n", - " [[-33983.1719]],\n", - "\n", - " [[-34191.4023]],\n", - "\n", - " [[-34159.5586]],\n", - "\n", - " [[-34116.9023]],\n", - "\n", - " [[-34071.0898]],\n", - "\n", - " [[-34006.4727]],\n", - "\n", - " [[-34026.3945]],\n", - "\n", - " [[-34107.3711]],\n", - "\n", - " [[-34057.7617]],\n", - "\n", - " [[-34215.4219]],\n", - "\n", - " [[-34094.5859]],\n", - "\n", - " [[-33985.7695]],\n", - "\n", - " [[-34096.8398]],\n", - "\n", - " [[-34147.5078]],\n", - "\n", - " [[-34142.5586]],\n", - "\n", - " [[-34138.1562]],\n", - "\n", - " [[-34146.0625]],\n", - "\n", - " [[-34166.0195]],\n", - "\n", - " [[-34095.4727]],\n", - "\n", - " [[-34090.3555]],\n", - "\n", - " [[-34065.7109]],\n", - "\n", - " [[-34038.4453]],\n", - "\n", - " [[-33954.7188]],\n", - "\n", - " [[-33913.2695]],\n", - "\n", - " [[-34184.2695]],\n", - "\n", - " [[-34106.4453]],\n", - "\n", - " [[-34064.3164]],\n", - "\n", - " [[-33947.9180]],\n", - "\n", - " [[-34358.5625]],\n", - "\n", - " [[-34393.1719]],\n", - "\n", - " [[-34061.3359]],\n", - "\n", - " [[-34062.3438]],\n", - "\n", - " [[-34195.1797]],\n", - "\n", - " [[-34062.2656]],\n", - "\n", - " [[-34144.6602]],\n", - "\n", - " [[-34089.5781]],\n", - "\n", - " [[-34133.8125]],\n", - "\n", - " [[-33898.5078]],\n", - "\n", - " [[-33984.8438]],\n", - "\n", - " [[-34250.5312]],\n", - "\n", - " [[-33923.3477]],\n", - "\n", - " [[-34152.7617]],\n", - "\n", - " [[-34085.1992]],\n", - "\n", - " [[-34198.6289]],\n", - "\n", - " [[-34233.3203]],\n", - "\n", - " [[-34039.5312]],\n", - "\n", - " [[-34156.1445]],\n", - "\n", - " [[-34129.9180]],\n", - "\n", - " [[-34093.1602]],\n", - "\n", - " [[-34005.7500]],\n", - "\n", - " [[-34025.0117]],\n", - "\n", - " [[-34170.7695]],\n", - "\n", - " [[-34224.4766]],\n", - "\n", - " [[-34058.2695]],\n", - "\n", - " [[-34102.3867]],\n", - "\n", - " [[-34063.1094]],\n", - "\n", - " [[-34093.5664]],\n", - "\n", - " [[-34090.9219]],\n", - "\n", - " [[-34203.3906]],\n", - "\n", - " [[-34054.3711]]], grad_fn=)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\n", - "KeyboardInterrupt\n", - "\n" - ] - } - ], - "source": [ - "num_epochs = 5\n", - "step_idx = 0\n", - "running_loss = 0.0\n", - "\n", - "# Move the circuit to chosen device\n", - "circuit = circuit.to(device)\n", - "\n", - "for epoch_idx in range(num_epochs):\n", - " for i, (batch, _) in enumerate(train_dataloader):\n", - " # The circuit expects an input of shape (batch_dim, num_channels, num_variables),\n", - " # so we unsqueeze a dimension for the channel.\n", - " batch = batch.to(device).unsqueeze(dim=1)\n", - "\n", - " # Compute the logarithm of the squared scores of the batch, by evaluating the circuit\n", - " log_scores = circuit(batch)\n", - " log_squared_scores = 2.0 * log_scores.real\n", - " \n", - " # Compute the log-partition function\n", - " log_partition_func = circuit_partition_func().real\n", - "\n", - " # Compute the log-likelihoods\n", - " log_likelihoods = log_squared_scores - log_partition_func\n", - "\n", - " # We take the negated average log-likelihood as loss\n", - " loss = -torch.mean(log_likelihoods)\n", - " loss.backward()\n", - " # Update the parameters of the circuits, as any other model in PyTorch\n", - " optimizer.step()\n", - " optimizer.zero_grad()\n", - " running_loss += loss.detach() * len(batch)\n", - " step_idx += 1\n", - " if step_idx % 100 == 0:\n", - " print(f\"Step {step_idx}: Average NLL: {running_loss / (100 * len(batch)):.3f}\")\n", - " running_loss = 0.0" - ] - }, - { - "cell_type": "markdown", - "id": "916638d9-6176-487d-8ac9-b048c81680a9", - "metadata": {}, - "source": [ - "TODO: write" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5148696f-7721-4cae-8027-7faa0dc33515", - "metadata": {}, - "outputs": [], - "source": [ - "with torch.no_grad():\n", - " test_lls = 0.0\n", - "\n", - " for batch, _ in test_dataloader:\n", - " # The circuit expects an input of shape (batch_dim, num_channels, num_variables),\n", - " # so we unsqueeze a dimension for the channel.\n", - " batch = batch.to(device).unsqueeze(dim=1)\n", - "\n", - " # Compute the log-likelihoods of the batch\n", - " log_likelihoods = circuit(batch)\n", - "\n", - " # Accumulate the log-likelihoods\n", - " test_lls += log_likelihoods.sum().item()\n", - "\n", - " # Compute average test log-likelihood and bits per dimension\n", - " average_ll = test_lls / len(data_test)\n", - " bpd = -average_ll / (28 * 28 * np.log(2.0))\n", - " print(f\"Average test LL: {average_ll:.3f}\")\n", - " print(f\"Bits per dimension: {bpd:.3f}\")" - ] - }, - { - "cell_type": "markdown", - "id": "41d299e3-70fb-47d4-a54d-aa8e082a689a", - "metadata": {}, - "source": [ - "TODO: write" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "78fbb0e3-5cef-4277-ab05-b4789d3577a7", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.12" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} From 46f5a567b253809207b3c72d22b4811afb3c5e23 Mon Sep 17 00:00:00 2001 From: loreloc Date: Sat, 12 Oct 2024 11:26:47 +0100 Subject: [PATCH 5/9] updated image_data signature and notebooks --- cirkit/templates/circuit_templates/data.py | 14 +- notebooks/compilation-options.ipynb | 48 ++-- notebooks/learning-a-circuit-with-pic.ipynb | 89 +++++-- notebooks/learning-a-circuit.ipynb | 263 +++++++++++--------- 4 files changed, 251 insertions(+), 163 deletions(-) diff --git a/cirkit/templates/circuit_templates/data.py b/cirkit/templates/circuit_templates/data.py index 176f444d..ce2d76b2 100644 --- a/cirkit/templates/circuit_templates/data.py +++ b/cirkit/templates/circuit_templates/data.py @@ -15,10 +15,10 @@ def image_data( *, input_layer: str, num_input_units: int, - input_params: dict[str, Parameterization], sum_product_layer: str, num_sum_units: int, - sum_weight_param: Parameterization, + sum_weight_param: Parameterization | None = {}, + input_params: dict[str, Parameterization] | None = {}, ) -> Circuit: """Constructs a symbolic circuit whose structure is tailored for image data sets. @@ -35,8 +35,6 @@ def image_data( 'binomial' (encoding a Binomial distribution over pixel channel values), 'embedding' (encoding an Embedding vector over pixel channel values). num_input_units: The number of input units per input layer. - input_params: A dictionary mapping each name of a parameter of the input layer to - its parameterization. sum_product_layer: The name of the sum-product inner layer. It can be one of the following: 'cp' (the canonical decomposition layer, consisting of dense layers followed by a hadamard product layer), 'cpt' (the transposed canonical decomposition layer, consisting @@ -45,7 +43,11 @@ def image_data( layer). num_sum_units: The number of sum units in each sum layer, i.e., either dense or mixing layer. - sum_weight_param: The parameterization to use for sum layers parameters. + input_params: A dictionary mapping each name of a parameter of the input layer to + its parameterization. If it is None, then the default parameterization of the chosen + input layer will be chosen. + sum_weight_param: The parameterization to use for sum layers parameters. If it None, + then a softmax parameterization of the sum weights will be used. Returns: Circuit: A symbolic circuit. @@ -79,6 +81,8 @@ def image_data( input_factory = name_to_input_layer_factory(input_layer, **input_kwargs) # Get the sum weight factory + if sum_weight_param is None: + sum_weight_param = Parameterization(activation='softmax', initialization='normal') sum_weight_factory = parameterization_to_factory(sum_weight_param) # Build and return the symbolic circuit diff --git a/notebooks/compilation-options.ipynb b/notebooks/compilation-options.ipynb index 31c5eac4..c9cf0adf 100644 --- a/notebooks/compilation-options.ipynb +++ b/notebooks/compilation-options.ipynb @@ -34,7 +34,10 @@ " num_input_units=64, # Each input layer consists of 64 Categorical input units\n", " sum_product_layer='tucker', # Use Tucker sum-product layers, i.e., alternate dense sum layers and kronecker product layers\n", " num_sum_units=64, # Each dense sum layer consists of 64 sum units\n", - " sum_weight_param='softmax' # Parameterize the weights of dense sum layers with 'softmax'\n", + " sum_weight_param=circuit_templates.Parameterization(\n", + " activation='softmax', # Parameterize the sum weights by using a softmax activation\n", + " initialization='normal' # Initialize the sum weights by sampling from a standard normal distribution\n", + " )\n", ")" ] }, @@ -175,9 +178,10 @@ "ctx = PipelineContext(\n", " backend='torch', # Use the PyTorch backend\n", " # Specify the backend compilation flags next\n", - " semiring='lse-sum', # Specify how to evaluate sum and product layers\n", - " # In this case we use the numerically-stable 'lse-sum' semiring (R, +, *), i.e.,\n", + " # ---- Specify how to evaluate sum and product layers ---- #\n", + " semiring='lse-sum', # In this case we use the numerically-stable 'lse-sum' semiring (R, +, *), i.e.,\n", " # where: + is the log-sum-exp operation, and * is the sum operation.\n", + " # -------------------------------------------------------- #\n", ")" ] }, @@ -199,8 +203,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 3.26 s, sys: 505 ms, total: 3.77 s\n", - "Wall time: 3.67 s\n" + "CPU times: user 4.57 s, sys: 950 ms, total: 5.52 s\n", + "Wall time: 5.45 s\n" ] } ], @@ -269,7 +273,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "892 ms ± 6.8 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" + "1.2 s ± 14.8 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" ] } ], @@ -310,7 +314,9 @@ " backend='torch', # Use the PyTorch backend\n", " # Specify the backend compilation flags next\n", " semiring='lse-sum', # Use the 'lse-sum' semiring\n", - " fold=True, # <---- Enable folding\n", + " # --------- Enable circuit folding ---------- #\n", + " fold=True,\n", + " # ------------------------------------------- #\n", ")" ] }, @@ -332,8 +338,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 3.49 s, sys: 400 ms, total: 3.89 s\n", - "Wall time: 3.79 s\n" + "CPU times: user 4.48 s, sys: 991 ms, total: 5.47 s\n", + "Wall time: 5.39 s\n" ] } ], @@ -357,7 +363,7 @@ "id": "d16615fd-38e8-4b7f-b03b-8e30502ce965", "metadata": {}, "source": [ - "Note that the compilation procedure took just a little more time, when compared to the compilation with the default compilation options shown above. In addition, we compare the number of layers of an \"unfolded\" circuits with the number of layers of a \"folded\" circuit." + "Note that the compilation procedure took a similar amount of time, when compared to the compilation with the default compilation options shown above. In addition, we compare the number of layers of an \"unfolded\" circuits with the number of layers of a \"folded\" circuit." ] }, { @@ -414,7 +420,7 @@ "id": "f074e168-dee4-4234-8eae-afd28fae317f", "metadata": {}, "source": [ - "As we see in the next code snippet, enabling folding provided an (approximately) **13.6x speed-up** for feed-forward circuit evaluations." + "As we see in the next code snippet, enabling folding provided an (approximately) **20x speed-up** for feed-forward circuit evaluations." ] }, { @@ -427,7 +433,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "65.5 ms ± 24.8 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)\n" + "60 ms ± 15.5 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)\n" ] } ], @@ -496,8 +502,10 @@ " backend='torch', # Use the PyTorch backend\n", " # Specify the backend compilation flags next\n", " semiring='lse-sum', # Use the 'lse-sum' semiring\n", - " fold=True, # Enable folding\n", - " optimize=True, # <---- Enable layer optimizations\n", + " fold=True, # Enable circuit folding\n", + " # -------- Enable layer optimizations -------- #\n", + " optimize=True,\n", + " # -------------------------------------------- #\n", ")" ] }, @@ -519,8 +527,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 3.57 s, sys: 374 ms, total: 3.94 s\n", - "Wall time: 3.84 s\n" + "CPU times: user 4.81 s, sys: 876 ms, total: 5.68 s\n", + "Wall time: 5.61 s\n" ] } ], @@ -583,7 +591,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "33.9 ms ± 99.9 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)\n" + "26.7 ms ± 15.2 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)\n" ] } ], @@ -600,13 +608,13 @@ "id": "11d95c02-2c66-4414-b676-0dec303f2aa9", "metadata": {}, "source": [ - "Note that, we achieved an (approximately) **1.9x speed-up**, when compared to the folded circuit compiled above, and an (approximately) **26.3x speed-up**, when compared to the circuit compiled with no folding and no optimizations." + "Note that, we achieved an (approximately) **2.2x speed-up**, when compared to the folded circuit compiled above, and an (approximately) **44.9x speed-up**, when compared to the circuit compiled with no folding and no optimizations." ] }, { "cell_type": "code", "execution_count": null, - "id": "f3ed0fc0-31b9-428a-ab51-81e7ad7f2e96", + "id": "ae5edd97-7c99-4f7f-a581-402ddf80763c", "metadata": {}, "outputs": [], "source": [] @@ -628,7 +636,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.10" + "version": "3.10.12" } }, "nbformat": 4, diff --git a/notebooks/learning-a-circuit-with-pic.ipynb b/notebooks/learning-a-circuit-with-pic.ipynb index d6879af0..195664ba 100644 --- a/notebooks/learning-a-circuit-with-pic.ipynb +++ b/notebooks/learning-a-circuit-with-pic.ipynb @@ -52,7 +52,10 @@ " num_input_units=64, # Each input layer consists of 64 Categorical input units\n", " sum_product_layer='cp', # Use CP sum-product layers, i.e., alternate dense sum layers and hadamard product layers\n", " num_sum_units=64, # Each dense sum layer consists of 64 sum units\n", - " sum_weight_param='id' # We won't need a reparameterization\n", + " sum_weight_param=circuit_templates.Parameterization(\n", + " activation='none', # Do not use any parameterization\n", + " initialization='normal' # Initialize the sum weights by sampling from a standard normal distribution\n", + " )\n", ")\n", "circuit = compile(symbolic_circuit)" ] @@ -246,7 +249,7 @@ " (3): Conv1d(256, 256, kernel_size=(1,), stride=(1,))\n", " (4): Tanh()\n", " (5): Conv1d(401408, 1568, kernel_size=(1,), stride=(1,))\n", - " (6): Softplus(beta=1.0, threshold=20)\n", + " (6): Softplus(beta=1.0, threshold=20.0)\n", " )\n", " )\n", ")\n", @@ -324,17 +327,17 @@ "name": "stdout", "output_type": "stream", "text": [ - "Step 100: Average NLL: 863.664\n", - "Step 200: Average NLL: 743.751\n", - "Step 300: Average NLL: 704.338\n", - "Step 400: Average NLL: 690.364\n", - "Step 500: Average NLL: 672.917\n", - "Step 600: Average NLL: 671.291\n", - "Step 700: Average NLL: 667.556\n", - "Step 800: Average NLL: 658.785\n", - "Step 900: Average NLL: 661.825\n", - "Step 1000: Average NLL: 654.518\n", - "Step 1100: Average NLL: 657.764\n" + "Step 100: Average NLL: 860.552\n", + "Step 200: Average NLL: 742.246\n", + "Step 300: Average NLL: 710.612\n", + "Step 400: Average NLL: 695.550\n", + "Step 500: Average NLL: 674.847\n", + "Step 600: Average NLL: 672.627\n", + "Step 700: Average NLL: 666.215\n", + "Step 800: Average NLL: 659.338\n", + "Step 900: Average NLL: 661.105\n", + "Step 1000: Average NLL: 654.747\n", + "Step 1100: Average NLL: 656.898\n" ] } ], @@ -386,7 +389,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Average test LL: -651.735\n", + "Average test LL: -651.333\n", "Bits per dimension: 1.199\n" ] } @@ -412,11 +415,65 @@ " print(f\"Average test LL: {average_ll:.3f}\")\n", " print(f\"Bits per dimension: {bpd:.3f}\")" ] + }, + { + "cell_type": "markdown", + "id": "bbd09c7f-34b9-4a94-8b34-4bef6bec98d0", + "metadata": {}, + "source": [ + "Next, similarly to the evaluation of the probabilistic circuit learned in [learning-a-circuit.ipynb](learning-a-circuit.ipynb), we sample some images that will have a higher quality as they the circuit was learned as a PIC." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "9aeb8e76-cd2a-4099-9f54-8a7c17093989", + "metadata": {}, + "outputs": [], + "source": [ + "from cirkit.backend.torch.queries import SamplingQuery\n", + "\n", + "num_samples = 6\n", + "\n", + "sampling_query = SamplingQuery(circuit)\n", + "samples, mixture_samples = sampling_query(num_samples=num_samples)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "068126ac-e87f-4d6f-af2a-5f9655996fbb", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "samples = samples.squeeze(dim=1).view(-1, 28, 28)\n", + "samples = samples.cpu().numpy()\n", + "\n", + "plt.figure(figsize=(num_samples, 1))\n", + "for i in range(num_samples):\n", + " plt.subplot(1, num_samples, i + 1)\n", + " plt.imshow(samples[i], cmap=\"gray\")\n", + " plt.axis(\"off\")\n", + "plt.show()" + ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -430,7 +487,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.5" + "version": "3.10.12" } }, "nbformat": 4, diff --git a/notebooks/learning-a-circuit.ipynb b/notebooks/learning-a-circuit.ipynb index d9376939..78400752 100644 --- a/notebooks/learning-a-circuit.ipynb +++ b/notebooks/learning-a-circuit.ipynb @@ -33,11 +33,13 @@ "source": [ "The **symbolic circuit** is a symbolic abstraction of a tensorized circuit, i.e., a circuit consisting of sum/product/input layers, each grouping several sum/product/input units, respectively. This symbolic representation stores the connections between the layers, the number of units in each layer, and useful metadata about the parameters, such as their shape and parameterization choices. Note that a symbolic circuit does not allocate parameters and cannot be used for learning or inference. By _compiling a symbolic circuit_ using PyTorch, we will later recover a probabilistic circuit that can be learned or be used for inference purposes.\n", "\n", - "In ```cirkit.templates```, we provide several templates that can be used to construct symbolic circuits of different structures. In this notebook, we use a high-level template to build a symbolic circuit specifically for image data. To do so, we need to specify some arguments that will possibly yield different architectures and parameterizations. That is, we specify the shape of the images, and select one of the region graphs that exploits the closeness of patches of pixels, such as the _QuadGraph_ region graph (see (TODO: ref) for more details). Moreover, we select the type of input and inner layers, the number of units within them, and how to parameterize the sum layers. See comments in the code below for more details about each argument." + "In ```cirkit.templates```, we provide several templates that can be used to construct symbolic circuits of different structures. In this notebook, we use a high-level template to build a symbolic circuit specifically for image data. To do so, we need to specify some arguments that will possibly yield different architectures and parameterizations. That is, we specify the shape of the images, and select one of the region graphs that exploits the closeness of patches of pixels, such as the _QuadGraph_ region graph.\n", + "See the [region-graph-and-parameterisations.ipynb](region-graph-and-parameterisations.ipynb) notebook for more details about region graphs. Moreover, we select the type of input and inner layers, the number of units within them, and how to parameterize the sum layers. See comments in the code below for more details about each argument." ] }, { "cell_type": "code", + "execution_count": 13, "id": "52c88f38-1552-4d13-b62d-931493c07c69", "metadata": { "ExecuteTime": { @@ -45,6 +47,7 @@ "start_time": "2024-10-09T14:18:52.822643Z" } }, + "outputs": [], "source": [ "from cirkit.templates import circuit_templates\n", "\n", @@ -53,13 +56,14 @@ " region_graph='quad-graph', # Select the structure of the circuit to follow the QuadGraph region graph\n", " input_layer='categorical', # Use Categorical distributions for the pixel values (0-255) as input layers\n", " num_input_units=64, # Each input layer consists of 64 Categorical input units\n", - " sum_product_layer='cp', # Use CP sum-product layers, i.e., alternate dense sum layers and hadamard product layers\n", + " sum_product_layer='cp', # Use CP sum-product layers, i.e., alternate dense layers with Hadamard product layers\n", " num_sum_units=64, # Each dense sum layer consists of 64 sum units\n", - " sum_weight_param='softmax' # Parameterize the weights of dense sum layers with 'softmax'\n", + " sum_weight_param=circuit_templates.Parameterization(\n", + " activation='softmax', # Parameterize the sum weights by using a softmax activation\n", + " initialization='normal' # Initialize the sum weights by sampling from a standard normal distribution\n", + " )\n", ")" - ], - "outputs": [], - "execution_count": 1 + ] }, { "cell_type": "markdown", @@ -71,6 +75,7 @@ }, { "cell_type": "code", + "execution_count": 2, "id": "23570bfd-a64e-4e19-ba4c-30e489e9d08d", "metadata": { "ExecuteTime": { @@ -78,18 +83,6 @@ "start_time": "2024-10-09T14:18:53.147512Z" } }, - "source": [ - "# Print some information\n", - "print(f'Number of variables: {symbolic_circuit.num_variables}')\n", - "print(f'Number of channels per variable: {symbolic_circuit.num_channels}')\n", - "print()\n", - "\n", - "# Print which structural properties the circuit satisfies\n", - "print(f'Structural properties:')\n", - "print(f' - Smoothness: {symbolic_circuit.is_smooth}')\n", - "print(f' - Decomposability: {symbolic_circuit.is_decomposable}')\n", - "print(f' - Structured-decomposability: {symbolic_circuit.is_structured_decomposable}')" - ], "outputs": [ { "name": "stdout", @@ -105,7 +98,18 @@ ] } ], - "execution_count": 2 + "source": [ + "# Print some information\n", + "print(f'Number of variables: {symbolic_circuit.num_variables}')\n", + "print(f'Number of channels per variable: {symbolic_circuit.num_channels}')\n", + "print()\n", + "\n", + "# Print which structural properties the circuit satisfies\n", + "print(f'Structural properties:')\n", + "print(f' - Smoothness: {symbolic_circuit.is_smooth}')\n", + "print(f' - Decomposability: {symbolic_circuit.is_decomposable}')\n", + "print(f' - Structured-decomposability: {symbolic_circuit.is_structured_decomposable}')" + ] }, { "cell_type": "markdown", @@ -125,6 +129,7 @@ }, { "cell_type": "code", + "execution_count": 3, "id": "a9ea4a4a-649d-462f-bcfd-20a12bd8a052", "metadata": { "ExecuteTime": { @@ -132,6 +137,7 @@ "start_time": "2024-10-09T14:18:53.330911Z" } }, + "outputs": [], "source": [ "import random\n", "import numpy as np\n", @@ -145,9 +151,7 @@ "\n", "# Set the torch device to use\n", "device = torch.device('cuda')" - ], - "outputs": [], - "execution_count": 3 + ] }, { "cell_type": "markdown", @@ -159,6 +163,7 @@ }, { "cell_type": "code", + "execution_count": 4, "id": "af58c11e", "metadata": { "ExecuteTime": { @@ -166,22 +171,21 @@ "start_time": "2024-10-09T14:18:54.991124Z" } }, - "source": [ - "%%time\n", - "from cirkit.pipeline import compile\n", - "circuit = compile(symbolic_circuit)" - ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 1.98 s, sys: 95.4 ms, total: 2.08 s\n", - "Wall time: 2.14 s\n" + "CPU times: user 2.61 s, sys: 280 ms, total: 2.89 s\n", + "Wall time: 2.84 s\n" ] } ], - "execution_count": 4 + "source": [ + "%%time\n", + "from cirkit.pipeline import compile\n", + "circuit = compile(symbolic_circuit)" + ] }, { "cell_type": "markdown", @@ -193,6 +197,7 @@ }, { "cell_type": "code", + "execution_count": 5, "id": "c0a1892e-4a65-4759-bb3a-ccbe6f5e515c", "metadata": { "ExecuteTime": { @@ -200,13 +205,6 @@ "start_time": "2024-10-09T14:18:57.148418Z" } }, - "source": [ - "# Print some statistics\n", - "num_layers = len(list(symbolic_circuit.layers))\n", - "print(f\"Number of layers: {num_layers}\")\n", - "num_parameters = sum(p.numel() for p in circuit.parameters())\n", - "print(f\"Number of learnable parameters: {num_parameters}\")" - ], "outputs": [ { "name": "stdout", @@ -217,7 +215,13 @@ ] } ], - "execution_count": 5 + "source": [ + "# Print some statistics\n", + "num_layers = len(list(symbolic_circuit.layers))\n", + "print(f\"Number of layers: {num_layers}\")\n", + "num_parameters = sum(p.numel() for p in circuit.parameters())\n", + "print(f\"Number of learnable parameters: {num_parameters}\")" + ] }, { "cell_type": "markdown", @@ -237,6 +241,7 @@ }, { "cell_type": "code", + "execution_count": 6, "id": "02854883", "metadata": { "ExecuteTime": { @@ -244,6 +249,7 @@ "start_time": "2024-10-09T14:18:57.224536Z" } }, + "outputs": [], "source": [ "from torch import optim\n", "from torch.utils.data import DataLoader\n", @@ -265,9 +271,7 @@ "# Initialize a torch optimizer of your choice,\n", "# e.g., Adam, by passing the parameters of the circuit\n", "optimizer = optim.Adam(circuit.parameters(), lr=0.01)" - ], - "outputs": [], - "execution_count": 6 + ] }, { "cell_type": "markdown", @@ -279,6 +283,7 @@ }, { "cell_type": "code", + "execution_count": 7, "id": "2f28e9c0", "metadata": { "ExecuteTime": { @@ -286,8 +291,39 @@ "start_time": "2024-10-09T14:18:58.426109Z" } }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Step 100: Average NLL: 3413.503\n", + "Step 200: Average NLL: 1570.938\n", + "Step 300: Average NLL: 943.364\n", + "Step 400: Average NLL: 844.029\n", + "Step 500: Average NLL: 792.305\n", + "Step 600: Average NLL: 771.743\n", + "Step 700: Average NLL: 757.542\n", + "Step 800: Average NLL: 737.154\n", + "Step 900: Average NLL: 734.906\n", + "Step 1000: Average NLL: 719.278\n", + "Step 1100: Average NLL: 718.698\n", + "Step 1200: Average NLL: 711.626\n", + "Step 1300: Average NLL: 709.760\n", + "Step 1400: Average NLL: 702.532\n", + "Step 1500: Average NLL: 694.450\n", + "Step 1600: Average NLL: 697.921\n", + "Step 1700: Average NLL: 688.516\n", + "Step 1800: Average NLL: 691.214\n", + "Step 1900: Average NLL: 684.470\n", + "Step 2000: Average NLL: 684.563\n", + "Step 2100: Average NLL: 685.585\n", + "Step 2200: Average NLL: 677.359\n", + "Step 2300: Average NLL: 679.405\n" + ] + } + ], "source": [ - "num_epochs = 5\n", + "num_epochs = 10\n", "step_idx = 0\n", "running_loss = 0.0\n", "\n", @@ -314,27 +350,7 @@ " if step_idx % 100 == 0:\n", " print(f\"Step {step_idx}: Average NLL: {running_loss / (100 * len(batch)):.3f}\")\n", " running_loss = 0.0" - ], - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Step 100: Average NLL: 3413.503\n", - "Step 200: Average NLL: 1570.939\n", - "Step 300: Average NLL: 943.365\n", - "Step 400: Average NLL: 844.022\n", - "Step 500: Average NLL: 792.295\n", - "Step 600: Average NLL: 771.739\n", - "Step 700: Average NLL: 757.540\n", - "Step 800: Average NLL: 737.136\n", - "Step 900: Average NLL: 734.869\n", - "Step 1000: Average NLL: 719.217\n", - "Step 1100: Average NLL: 718.645\n" - ] - } - ], - "execution_count": 7 + ] }, { "cell_type": "markdown", @@ -346,6 +362,7 @@ }, { "cell_type": "code", + "execution_count": 8, "id": "4e66bd8b", "metadata": { "ExecuteTime": { @@ -353,6 +370,16 @@ "start_time": "2024-10-09T14:21:45.715485Z" } }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Average test LL: -682.916\n", + "Bits per dimension: 1.257\n" + ] + } + ], "source": [ "with torch.no_grad():\n", " test_lls = 0.0\n", @@ -373,18 +400,7 @@ " bpd = -average_ll / (28 * 28 * np.log(2.0))\n", " print(f\"Average test LL: {average_ll:.3f}\")\n", " print(f\"Bits per dimension: {bpd:.3f}\")" - ], - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Average test LL: -711.266\n", - "Bits per dimension: 1.309\n" - ] - } - ], - "execution_count": 8 + ] }, { "cell_type": "markdown", @@ -399,7 +415,9 @@ "id": "573c533c-5f2a-4793-8b0a-77e8c300cb96", "metadata": {}, "source": [ - "We conclude the notebook by showing a simple example of performing probabilistic inference on the learned probabilistic circuit: computing marginal probabilities. More specifically, we show how to compute the marginal probability of the pixels on the right half side of the image, i.e.,\n", + "Probabilistic circuits (PCs) like the one we have learned can be used to answer to a number of probabilistic queries exactly and efficiently. This is very different from other generative models where probabilities can only be approximated at best, such as variational auto-encoders.\n", + "\n", + "Here, we show a simple example of performing probabilistic inference on the learned PC: computing marginal probabilities. More specifically, we show how to compute the marginal probability of the pixels on the right half side of the image, i.e.,\n", "$$\n", "p(\\mathbf{x}_{\\text{R}}) = \\sum_{\\mathbf{x}_{\\text{L}}\\in[0,255]^{28\\times 14}} p(\\mathbf{x}_{\\text{R}}, \\mathbf{x}_{\\text{L}}),\n", "$$\n", @@ -410,6 +428,7 @@ }, { "cell_type": "code", + "execution_count": 9, "id": "20ac5a71-895a-40d0-98a7-17044fe8e714", "metadata": { "ExecuteTime": { @@ -417,6 +436,7 @@ "start_time": "2024-10-09T14:21:48.623516Z" } }, + "outputs": [], "source": [ "import itertools\n", "from cirkit.utils.scope import Scope\n", @@ -427,9 +447,7 @@ "\n", "# Instantiate the integrate query handler\n", "marginal_query = IntegrateQuery(circuit)" - ], - "outputs": [], - "execution_count": 9 + ] }, { "cell_type": "markdown", @@ -441,6 +459,7 @@ }, { "cell_type": "code", + "execution_count": 10, "id": "8b0bd29b-021b-4f21-8610-139faea76a39", "metadata": { "ExecuteTime": { @@ -448,6 +467,15 @@ "start_time": "2024-10-09T14:21:48.680205Z" } }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Average test marginal LL: -378.417\n" + ] + } + ], "source": [ "with torch.no_grad():\n", " test_marginal_lls = 0.0\n", @@ -467,17 +495,7 @@ " # Compute average test marginal log-likelihood\n", " average_marginal_ll = test_marginal_lls / len(data_test)\n", " print(f\"Average test marginal LL: {average_marginal_ll:.3f}\")" - ], - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Average test marginal LL: -392.290\n" - ] - } - ], - "execution_count": 10 + ] }, { "cell_type": "markdown", @@ -486,11 +504,28 @@ "source": [ "## Sampling from the Circuit\n", "\n", - "To visualise the generative capabilities of the circuit, we can sample from it and plot the results. Note that the sampling operation returns samples from the leaves *and* samples from the corresponding mixtures." + "To visualise the generative capabilities of the circuit, we can sample images from it and show them.\n", + "Similarly to the ```IntegrateQuery``` object we used to compute marginal probabilties above, in the following code we use the ```SamplingQuery``` to sample from the joint distribution encoded by the PC. The result of the sampling query consists of two parts: (1) the samples of the observed random variables, i.e., the pixel values of the images, and (2) the samples of the latent variables associated to the sum units of the circuit. This is because the PC we built can be interpreted as modelling the marginal distribution $p(\\mathbf{X}) = \\int_{\\mathrm{dom}(\\mathbf{Z})} p(\\mathbf{X},\\mathbf{Z}) \\mathrm{d}\\mathbf{z}$, where $\\mathbf{Z}$ is a set of finitely-discrete latent random variables, each of them being marginalized out at a sum unit." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "d5d79056-94ec-4604-ab6a-e552e570c31f", + "metadata": {}, + "outputs": [], + "source": [ + "from cirkit.backend.torch.queries import SamplingQuery\n", + "\n", + "num_samples = 6\n", + "\n", + "sampling_query = SamplingQuery(circuit)\n", + "samples, mixture_samples = sampling_query(num_samples=num_samples)" ] }, { "cell_type": "code", + "execution_count": 12, "id": "cfff6092-16e0-4d55-8622-7c30f1ac9227", "metadata": { "ExecuteTime": { @@ -498,25 +533,22 @@ "start_time": "2024-10-09T14:26:18.156380Z" } }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "import einops as E\n", "import matplotlib.pyplot as plt\n", "\n", - "from cirkit.backend.torch.queries import SamplingQuery\n", - "\n", - "device = torch.device('cpu')\n", - "circuit = circuit.to(device)\n", - "\n", - "num_samples = 1\n", - "\n", - "sampling_query = SamplingQuery(circuit)\n", - "samples = sampling_query(num_samples=num_samples)\n", - "\n", - "leaf_samples = samples[0]\n", - "mixtures_samples = samples[1]\n", - "\n", - "leaf_samples = leaf_samples[:, 0, :] # Remove the channel dimension\n", - "samples = E.rearrange(leaf_samples, \"n (h w) -> n h w\", h=28, w=28)\n", + "samples = samples.squeeze(dim=1).view(-1, 28, 28)\n", "samples = samples.cpu().numpy()\n", "\n", "plt.figure(figsize=(num_samples, 1))\n", @@ -525,20 +557,7 @@ " plt.imshow(samples[i], cmap=\"gray\")\n", " plt.axis(\"off\")\n", "plt.show()" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "
" - ], - "image/png": "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" - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "execution_count": 16 + ] } ], "metadata": { @@ -557,7 +576,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.10" + "version": "3.10.12" } }, "nbformat": 4, From d525f535623524f362a690090fe8b962c207f955 Mon Sep 17 00:00:00 2001 From: loreloc Date: Sat, 12 Oct 2024 12:50:12 +0100 Subject: [PATCH 6/9] minor modifications in notebooks --- notebooks/learning-a-circuit-with-pic.ipynb | 36 ++++++++-------- notebooks/learning-a-circuit.ipynb | 48 ++++++++------------- 2 files changed, 36 insertions(+), 48 deletions(-) diff --git a/notebooks/learning-a-circuit-with-pic.ipynb b/notebooks/learning-a-circuit-with-pic.ipynb index 195664ba..8f71e8d9 100644 --- a/notebooks/learning-a-circuit-with-pic.ipynb +++ b/notebooks/learning-a-circuit-with-pic.ipynb @@ -43,7 +43,7 @@ "torch.cuda.manual_seed(42)\n", "\n", "# Set the torch device to use\n", - "device = torch.device('cuda')\n", + "device = torch.device('cuda:1')\n", "\n", "symbolic_circuit = circuit_templates.image_data(\n", " (1, 28, 28), # The shape of MNIST image, i.e., (num_channels, image_height, image_width)\n", @@ -327,22 +327,22 @@ "name": "stdout", "output_type": "stream", "text": [ - "Step 100: Average NLL: 860.552\n", - "Step 200: Average NLL: 742.246\n", - "Step 300: Average NLL: 710.612\n", - "Step 400: Average NLL: 695.550\n", - "Step 500: Average NLL: 674.847\n", - "Step 600: Average NLL: 672.627\n", - "Step 700: Average NLL: 666.215\n", - "Step 800: Average NLL: 659.338\n", - "Step 900: Average NLL: 661.105\n", - "Step 1000: Average NLL: 654.747\n", - "Step 1100: Average NLL: 656.898\n" + "Step 200: Average NLL: 801.550\n", + "Step 400: Average NLL: 697.127\n", + "Step 600: Average NLL: 675.647\n", + "Step 800: Average NLL: 664.668\n", + "Step 1000: Average NLL: 659.616\n", + "Step 1200: Average NLL: 656.548\n", + "Step 1400: Average NLL: 655.648\n", + "Step 1600: Average NLL: 652.786\n", + "Step 1800: Average NLL: 650.173\n", + "Step 2000: Average NLL: 649.453\n", + "Step 2200: Average NLL: 648.295\n" ] } ], "source": [ - "num_epochs = 5\n", + "num_epochs = 10\n", "step_idx = 0\n", "running_loss = 0.0\n", "\n", @@ -366,8 +366,8 @@ " optimizer.zero_grad()\n", " running_loss += loss.detach() * len(batch)\n", " step_idx += 1\n", - " if step_idx % 100 == 0:\n", - " print(f\"Step {step_idx}: Average NLL: {running_loss / (100 * len(batch)):.3f}\")\n", + " if step_idx % 200 == 0:\n", + " print(f\"Step {step_idx}: Average NLL: {running_loss / (200 * len(batch)):.3f}\")\n", " running_loss = 0.0" ] }, @@ -389,8 +389,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "Average test LL: -651.333\n", - "Bits per dimension: 1.199\n" + "Average test LL: -644.892\n", + "Bits per dimension: 1.187\n" ] } ], @@ -447,7 +447,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] diff --git a/notebooks/learning-a-circuit.ipynb b/notebooks/learning-a-circuit.ipynb index 78400752..37f15d33 100644 --- a/notebooks/learning-a-circuit.ipynb +++ b/notebooks/learning-a-circuit.ipynb @@ -13,7 +13,7 @@ "id": "b7bf2b04-012a-4d5f-8700-39e848f6b2c9", "metadata": {}, "source": [ - "In this notebook, we instantiate, learn, and evaluate a probabilistic circuit using ```cirkit```. The probabilistic circuit we build estimates the distribution of MNIST images, which is then evaluated on unseen images and used to compute marginal probabilities. Here, we focus on the simplest experimental setting, where we want to instantiate a probabilistic circuit for MNIST images using some hyperparameters of our own choice, such as the type of the layers, their size and how to parameterize them. Then, we learn the parameters of the circuit and perform inference using PyTorch.\n", + "In this notebook, we instantiate, learn, and evaluate a probabilistic circuit using ```cirkit```. The probabilistic circuit we build estimates the distribution of MNIST images, which is then evaluated on unseen images, compute marginal probabilities, and sample new images. Here, we focus on the simplest experimental setting, where we want to instantiate a probabilistic circuit for MNIST images using some hyperparameters of our own choice, such as the type of the layers, their size and how to parameterize them. Then, we learn the parameters of the circuit and perform inference using PyTorch.\n", "\n", "A key feature of ```cirkit``` is the _symbolic circuit representation_, which allows us to abstract away from the underlying implementation choices. In the next section, we introduce this symbolic representation and show how to construct a symbolic circuit whose structure and parameterization is tailored for image data sets." ] @@ -39,7 +39,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 1, "id": "52c88f38-1552-4d13-b62d-931493c07c69", "metadata": { "ExecuteTime": { @@ -150,7 +150,7 @@ "torch.cuda.manual_seed(42)\n", "\n", "# Set the torch device to use\n", - "device = torch.device('cuda')" + "device = torch.device('cuda:2')" ] }, { @@ -176,8 +176,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 2.61 s, sys: 280 ms, total: 2.89 s\n", - "Wall time: 2.84 s\n" + "CPU times: user 2.76 s, sys: 215 ms, total: 2.97 s\n", + "Wall time: 2.91 s\n" ] } ], @@ -296,29 +296,17 @@ "name": "stdout", "output_type": "stream", "text": [ - "Step 100: Average NLL: 3413.503\n", - "Step 200: Average NLL: 1570.938\n", - "Step 300: Average NLL: 943.364\n", - "Step 400: Average NLL: 844.029\n", - "Step 500: Average NLL: 792.305\n", - "Step 600: Average NLL: 771.743\n", - "Step 700: Average NLL: 757.542\n", - "Step 800: Average NLL: 737.154\n", - "Step 900: Average NLL: 734.906\n", - "Step 1000: Average NLL: 719.278\n", - "Step 1100: Average NLL: 718.698\n", - "Step 1200: Average NLL: 711.626\n", - "Step 1300: Average NLL: 709.760\n", - "Step 1400: Average NLL: 702.532\n", - "Step 1500: Average NLL: 694.450\n", - "Step 1600: Average NLL: 697.921\n", - "Step 1700: Average NLL: 688.516\n", - "Step 1800: Average NLL: 691.214\n", - "Step 1900: Average NLL: 684.470\n", - "Step 2000: Average NLL: 684.563\n", - "Step 2100: Average NLL: 685.585\n", - "Step 2200: Average NLL: 677.359\n", - "Step 2300: Average NLL: 679.405\n" + "Step 200: Average NLL: 2492.220\n", + "Step 400: Average NLL: 893.696\n", + "Step 600: Average NLL: 782.024\n", + "Step 800: Average NLL: 747.348\n", + "Step 1000: Average NLL: 727.092\n", + "Step 1200: Average NLL: 715.162\n", + "Step 1400: Average NLL: 706.146\n", + "Step 1600: Average NLL: 696.185\n", + "Step 1800: Average NLL: 689.865\n", + "Step 2000: Average NLL: 684.516\n", + "Step 2200: Average NLL: 681.472\n" ] } ], @@ -347,8 +335,8 @@ " optimizer.zero_grad()\n", " running_loss += loss.detach() * len(batch)\n", " step_idx += 1\n", - " if step_idx % 100 == 0:\n", - " print(f\"Step {step_idx}: Average NLL: {running_loss / (100 * len(batch)):.3f}\")\n", + " if step_idx % 200 == 0:\n", + " print(f\"Step {step_idx}: Average NLL: {running_loss / (200 * len(batch)):.3f}\")\n", " running_loss = 0.0" ] }, From 2f22db5108e12531f9ba17de32a7e6df4854035b Mon Sep 17 00:00:00 2001 From: loreloc Date: Sat, 12 Oct 2024 12:50:35 +0100 Subject: [PATCH 7/9] add second part of sum of squares circuits notebook --- notebooks/sum-of-squares-circuits.ipynb | 160 +++++++++++++----------- 1 file changed, 89 insertions(+), 71 deletions(-) diff --git a/notebooks/sum-of-squares-circuits.ipynb b/notebooks/sum-of-squares-circuits.ipynb index 081b9c55..9b14e9cf 100644 --- a/notebooks/sum-of-squares-circuits.ipynb +++ b/notebooks/sum-of-squares-circuits.ipynb @@ -109,7 +109,9 @@ " - Pre-condition: ```c``` is a _smooth_ and _decomposable_ circuit.\n", " - Post-condition: ```c'``` is a circuit exactly encoding the integral of ```c``` over the whole variables domain.\n", "\n", - "In order to satisfy these pre-conditions, we construct a complex circuit from a region graph that is structured-decomposable. This will yield a circuit that is compatible with itself, and therefore we apply the ```multiply``` operator as to square it." + "In order to satisfy these pre-conditions, we construct a complex circuit from a region graph that is structured-decomposable. This will yield a circuit that is compatible with itself, and therefore we can apply the ```multiply``` operator as to square it. Then, the circuit resulting from the multiply operator is smooth and decomposable and therefore it satisfies the pre-conditions of the ```integrate``` operator.\n", + "\n", + "We build the symbolic circuit below and show its structural properties." ] }, { @@ -286,34 +288,22 @@ "name": "stdout", "output_type": "stream", "text": [ - "Step 100: Average NLL: 2127.237\n", - "Step 200: Average NLL: 895.312\n", - "Step 300: Average NLL: 811.160\n", - "Step 400: Average NLL: 784.650\n", - "Step 500: Average NLL: 759.404\n", - "Step 600: Average NLL: 733.968\n", - "Step 700: Average NLL: 729.767\n", - "Step 800: Average NLL: 699.855\n", - "Step 900: Average NLL: 703.793\n", - "Step 1000: Average NLL: 687.243\n", - "Step 1100: Average NLL: 684.919\n", - "Step 1200: Average NLL: 677.487\n", - "Step 1300: Average NLL: 672.656\n", - "Step 1400: Average NLL: 674.011\n", - "Step 1500: Average NLL: 657.926\n", - "Step 1600: Average NLL: 665.834\n", - "Step 1700: Average NLL: 654.318\n", - "Step 1800: Average NLL: 657.123\n", - "Step 1900: Average NLL: 653.287\n", - "Step 2000: Average NLL: 650.353\n", - "Step 2100: Average NLL: 655.398\n", - "Step 2200: Average NLL: 641.939\n", - "Step 2300: Average NLL: 648.654\n" + "Step 300: Average NLL: 1277.903\n", + "Step 600: Average NLL: 759.341\n", + "Step 900: Average NLL: 711.138\n", + "Step 1200: Average NLL: 683.216\n", + "Step 1500: Average NLL: 668.198\n", + "Step 1800: Average NLL: 659.092\n", + "Step 2100: Average NLL: 653.012\n", + "Step 2400: Average NLL: 644.388\n", + "Step 2700: Average NLL: 641.965\n", + "Step 3000: Average NLL: 640.378\n", + "Step 3300: Average NLL: 636.618\n" ] } ], "source": [ - "num_epochs = 10\n", + "num_epochs = 15\n", "step_idx = 0\n", "running_loss = 0.0\n", "\n", @@ -345,8 +335,8 @@ "\n", " running_loss += loss.detach() * len(batch)\n", " step_idx += 1\n", - " if step_idx % 100 == 0:\n", - " print(f\"Step {step_idx}: Average NLL: {running_loss / (100 * len(batch)):.3f}\")\n", + " if step_idx % 300 == 0:\n", + " print(f\"Step {step_idx}: Average NLL: {running_loss / (300 * len(batch)):.3f}\")\n", " running_loss = 0.0" ] }, @@ -368,8 +358,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "Average test LL: -684.520\n", - "Bits per dimension: 1.260\n" + "Average test LL: -680.237\n", + "Bits per dimension: 1.252\n" ] } ], @@ -422,7 +412,11 @@ "id": "0a0433a0-bded-4481-bc2a-b02757154177", "metadata": {}, "source": [ - "TODO: write" + "As we also observed above, the complex squared circuit we have built encodes a probability distribution that is the sum of two squares (real and imaginary part of the complex circuit). In the paper [Sum of Squares Circuits](https://arxiv.org/abs/2408.11778), a sum of exponentially many squared circuits is modelled, which can be more expressive than both a single squared circuit with real parameters and a structured-decomposable circuit with positive parameters only. In this section, we construct and learn such a model using cirkit.\n", + "\n", + "Given a complex circuit $c_2$ like the one we have previously built, we construct a monotonic PC $c_1$ that has the same structure of $c_2$. By sharing the same structure, we can model the distribution $p(\\mathbf{X})$ as proportional to the product between $c_1$ and the modulus squaring of $c_2$, i.e., $p(\\mathbf{X}) = \\frac{1}{Z} c_1(\\mathbf{X}) |c_2(\\mathbf{X})|^2$, where $Z = \\int_{\\mathrm{dom}(\\mathbf{X})} c_1(\\mathbf{x}) |c_2(\\mathbf{x})|^2 \\mathrm{d}\\mathbf{x}$ is the partition function. Since $c_1$ implicitly encodes a mixture model of an exponential number of components w.r.t. its circuit depth, the product of $c_1(\\mathbf{X})$ and $|c_2(\\mathbf{X})|^2$ results in a mixture model of an exponentialy number of squared circuits that share parameters. See the Appendix C.3 of the paper [Sum of Squares Circuits](https://arxiv.org/abs/2408.11778) for more details.\n", + "\n", + "Here, we start by constructing the monotonic and the complex circuits." ] }, { @@ -458,7 +452,9 @@ "id": "681c7b8f-a43f-4fd1-a03e-a7e115942ae9", "metadata": {}, "source": [ - "TODO: write" + "The function above is very similar to the function we used to construct a symbolic complex circuit. The only difference is that we parameterize the embeddings and the sum weights using a softmax activation function, thus guaranteeig the non-negativity of the parameters, and therefore the outputs of $c_1$.\n", + "\n", + "By using the same region graph, we construct the symbolic complex and monotonics circuits." ] }, { @@ -468,11 +464,11 @@ "metadata": {}, "outputs": [], "source": [ - "# Build a symbolic complex circuit by overparameterizing a Quad-Tree (4) region graph, which is structured-decomposable\n", - "symbolic_complex_circuit = build_symbolic_complex_circuit('quad-tree-4')\n", + "# Build a symbolic monotonic circuit, i..e., c_1, by overparameterizing a Quad-Tree (4) region graph\n", + "symbolic_monotonic_circuit = build_symbolic_monotonic_circuit('quad-tree-4')\n", "\n", - "# Build a symbolic monotonic circuit, with the same region graph\n", - "symbolic_monotonic_circuit = build_symbolic_monotonic_circuit('quad-tree-4')" + "# Build a symbolic complex circuit, i.e., c_2, by overparameterizing the same region graph\n", + "symbolic_complex_circuit = build_symbolic_complex_circuit('quad-tree-4')" ] }, { @@ -480,7 +476,9 @@ "id": "33f99834-9b1c-4408-b36f-c0b1e9544e53", "metadata": {}, "source": [ - "TODO: write" + "Since we used the same region graph, the two circuits will be _compatible_, thus satisfying the pre-conditions of the ```multiply``` operator.\n", + "\n", + "In the following code snipped, we construct the symbolic circuit computing the partition function of our model, i.e., $Z = \\int_{\\mathrm{dom}(\\mathbf{X})} c_1(\\mathbf{x}) |c_2(\\mathbf{x})|^2 \\mathrm{d}\\mathbf{x}$." ] }, { @@ -490,13 +488,13 @@ "metadata": {}, "outputs": [], "source": [ - "# Construct the circuit computing c_+(X) |c(X)|^2 = c_+(X) c(X) c(X)^*\n", + "# Construct the circuit computing c_1(X) |c_2(X)|^2 = c_1(X) c_2(X) c_2(X)^*\n", "symbolic_expsos_circuit = SF.multiply(\n", " symbolic_monotonic_circuit,\n", " SF.multiply(symbolic_complex_circuit, SF.conjugate(symbolic_complex_circuit))\n", ")\n", "\n", - "# Construct the circuit computing Z, i.e., the integral of c_+(X) |c(X)|^2 over the complete domain of X\n", + "# Construct the circuit computing Z, i.e., the integral of c_1(X) |c_2(X)|^2 over the complete domain of X\n", "symbolic_circuit_partition_func = SF.integrate(symbolic_expsos_circuit)" ] }, @@ -505,7 +503,9 @@ "id": "3143823e-5d2f-4e09-b107-ad70f89b4263", "metadata": {}, "source": [ - "TODO: write" + "As done in the previous section, we compile the circuits we need during learning. We observe we can decompose the log-likelihood $\\log p(\\mathbf{x})$ of a data point $\\mathbf{x}$ as\n", + "$$\\log p(\\mathbf{x}) = -\\log Z + \\log c_1(\\mathbf{x}) + 2 \\log |c_2(\\mathbf{x})|,$$\n", + "thus requiring us to compile three circuits: (1) the monotonic circuit $c_1$, (2) the complex circuit $c_2$, and (3) the circuit computing $Z$." ] }, { @@ -526,7 +526,7 @@ " optimize=True # Optimize the layers of the circuit\n", ")\n", "\n", - "with ctx: # Compile the circuits computing log c_+(X), log |c(X)|, and log |Z|\n", + "with ctx: # Compile the circuits computing log c_1(X), log |c_2(X)|, and log |Z|\n", " monotonic_circuit = compile(symbolic_monotonic_circuit)\n", " complex_circuit = compile(symbolic_complex_circuit)\n", " circuit_partition_func = compile(symbolic_circuit_partition_func)" @@ -537,7 +537,7 @@ "id": "fddab9ad-4d72-4c8a-9657-dbc552c311cb", "metadata": {}, "source": [ - "TODO: write" + "In the following, we use Adam as optimizer in PyTorch and optimize the learnable parameters of both the monotonic and complex circuits." ] }, { @@ -554,6 +554,14 @@ "optimizer = optim.Adam(itertools.chain(monotonic_circuit.parameters(), complex_circuit.parameters()), lr=0.01)" ] }, + { + "cell_type": "markdown", + "id": "24ca1d9e-3fa3-4c49-96dc-4267f6fac04c", + "metadata": {}, + "source": [ + "As done for the complex squared circuit above, we optimize the parameters by minimizing the negative log-likelihood computed on MNIST images." + ] + }, { "cell_type": "code", "execution_count": 14, @@ -564,34 +572,22 @@ "name": "stdout", "output_type": "stream", "text": [ - "Step 100: Average NLL: 1970.952\n", - "Step 200: Average NLL: 835.667\n", - "Step 300: Average NLL: 773.546\n", - "Step 400: Average NLL: 754.928\n", - "Step 500: Average NLL: 731.176\n", - "Step 600: Average NLL: 710.194\n", - "Step 700: Average NLL: 707.972\n", - "Step 800: Average NLL: 680.812\n", - "Step 900: Average NLL: 683.363\n", - "Step 1000: Average NLL: 666.073\n", - "Step 1100: Average NLL: 665.810\n", - "Step 1200: Average NLL: 658.401\n", - "Step 1300: Average NLL: 655.889\n", - "Step 1400: Average NLL: 654.304\n", - "Step 1500: Average NLL: 639.108\n", - "Step 1600: Average NLL: 645.786\n", - "Step 1700: Average NLL: 637.203\n", - "Step 1800: Average NLL: 637.141\n", - "Step 1900: Average NLL: 635.162\n", - "Step 2000: Average NLL: 631.744\n", - "Step 2100: Average NLL: 635.326\n", - "Step 2200: Average NLL: 622.690\n", - "Step 2300: Average NLL: 630.649\n" + "Step 300: Average NLL: 1192.256\n", + "Step 600: Average NLL: 731.775\n", + "Step 900: Average NLL: 689.649\n", + "Step 1200: Average NLL: 665.281\n", + "Step 1500: Average NLL: 651.504\n", + "Step 1800: Average NLL: 642.295\n", + "Step 2100: Average NLL: 636.493\n", + "Step 2400: Average NLL: 628.150\n", + "Step 2700: Average NLL: 626.221\n", + "Step 3000: Average NLL: 623.579\n", + "Step 3300: Average NLL: 620.558\n" ] } ], "source": [ - "num_epochs = 10\n", + "num_epochs = 15\n", "step_idx = 0\n", "running_loss = 0.0\n", "\n", @@ -624,8 +620,8 @@ "\n", " running_loss += loss.detach() * len(batch)\n", " step_idx += 1\n", - " if step_idx % 100 == 0:\n", - " print(f\"Step {step_idx}: Average NLL: {running_loss / (100 * len(batch)):.3f}\")\n", + " if step_idx % 300 == 0:\n", + " print(f\"Step {step_idx}: Average NLL: {running_loss / (300 * len(batch)):.3f}\")\n", " running_loss = 0.0" ] }, @@ -634,7 +630,7 @@ "id": "69680885-e0bb-4fc0-8079-1a3d905160d3", "metadata": {}, "source": [ - "TODO: write" + "Then, we test the model by computing the bits-per-dimension on unseen MNIST images." ] }, { @@ -647,8 +643,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "Average test LL: -666.170\n", - "Bits per dimension: 1.226\n" + "Average test LL: -667.903\n", + "Bits per dimension: 1.229\n" ] } ], @@ -685,7 +681,29 @@ "id": "62af142a-e055-4915-9a4f-3512660d4790", "metadata": {}, "source": [ - "TODO: write" + "Note that we achieved a reduction in terms of bits-per-dimension when compared to the complex squared circuit alone. In particular, this reduction has been achieved with a small increase in the total number of parameters given by the monotonic circuit." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "62c9a36b-de54-4bdc-8c6f-218473665e19", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Monotonic circuit - Num. of parameters: 807044\n", + "Complex circuit - Num. of parameters: 13385792\n" + ] + } + ], + "source": [ + "num_monotonic_params = sum(t.numel() for t in monotonic_circuit.parameters() if t.requires_grad)\n", + "num_complex_params = sum(2 * t.numel() for t in complex_circuit.parameters() if t.requires_grad)\n", + "print(f\"Monotonic circuit - Num. of parameters: {num_monotonic_params}\")\n", + "print(f\"Complex circuit - Num. of parameters: {num_complex_params}\")" ] } ], From e3e7e80b4698b828306c3cf21972326a88226d69 Mon Sep 17 00:00:00 2001 From: loreloc Date: Sat, 12 Oct 2024 13:26:23 +0100 Subject: [PATCH 8/9] updated notebooks with respect to API changes --- notebooks/README.md | 4 + notebooks/learning-a-circuit-with-pic.ipynb | 2 +- notebooks/learning-a-circuit.ipynb | 2 +- .../region-graphs-and-parametrisation.ipynb | 139 +++++++++--------- 4 files changed, 76 insertions(+), 71 deletions(-) diff --git a/notebooks/README.md b/notebooks/README.md index ba6a26c2..3a544998 100644 --- a/notebooks/README.md +++ b/notebooks/README.md @@ -17,3 +17,7 @@ graph TD; A[Learning a circuit]-->B[Compilation Options]; A-->C[Region Graphs and Parametrisation]; A-->D[Probabilistic Integral Circuits]; + B-->E[Sum of Squares Circuits]; + C-->E; +``` + diff --git a/notebooks/learning-a-circuit-with-pic.ipynb b/notebooks/learning-a-circuit-with-pic.ipynb index 8f71e8d9..09505f88 100644 --- a/notebooks/learning-a-circuit-with-pic.ipynb +++ b/notebooks/learning-a-circuit-with-pic.ipynb @@ -43,7 +43,7 @@ "torch.cuda.manual_seed(42)\n", "\n", "# Set the torch device to use\n", - "device = torch.device('cuda:1')\n", + "device = torch.device('cuda')\n", "\n", "symbolic_circuit = circuit_templates.image_data(\n", " (1, 28, 28), # The shape of MNIST image, i.e., (num_channels, image_height, image_width)\n", diff --git a/notebooks/learning-a-circuit.ipynb b/notebooks/learning-a-circuit.ipynb index 37f15d33..1829b323 100644 --- a/notebooks/learning-a-circuit.ipynb +++ b/notebooks/learning-a-circuit.ipynb @@ -150,7 +150,7 @@ "torch.cuda.manual_seed(42)\n", "\n", "# Set the torch device to use\n", - "device = torch.device('cuda:2')" + "device = torch.device('cuda')" ] }, { diff --git a/notebooks/region-graphs-and-parametrisation.ipynb b/notebooks/region-graphs-and-parametrisation.ipynb index 57a5f1ad..6deb4284 100644 --- a/notebooks/region-graphs-and-parametrisation.ipynb +++ b/notebooks/region-graphs-and-parametrisation.ipynb @@ -98,7 +98,7 @@ "outputs": [ { "data": { - "image/png": "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XJAnTx506dJF58K5QYMG8PX1xbVr17Tav06dOvj7779RqlSpVPdzdnYGAMTHx+s0HlIuW8wHotTYYk6cOXMGGTNmTPOLbUBAAOLj43H+/HmdxkPKZYv5kJwff/wRHz9+xOzZs9PdhqlZZSE/depU+Pn5Yf/+/WjdujVmzJiBESNGoFChQhg3bhzKlSuHR48epXj8+fPnUapUKZw+fRodOnTAb7/9hu7du+Off/5B9erVsXjx4hSPnT17Nvz8/BAWFobu3btj9uzZaN++Pfbv34+yZctiy5YtWj+P//77Dy9evND6rEjevHlRt25duLq6prrfyZMn4erqimLFimk9FlIuW80HopTYak48fvwY3t7ecHBwSHW/z3Pjb926pfVYSLlsNR/U7d+/HyEhIZg8eTK++OKLdLVhFsJCjRkzRgAQEREROh23bds2AUD07dtXxMfHazx+8OBB4ejoKIKCglLs08PDQ8ybN0/j8bdv34oaNWoIR0dHcfnyZY3H//jjDwFAjBs3TuOx6Oho4e/vLzJmzChu374tPda5c2fh4OCgcUxMTIx48uRJqs9XV7t37xaOjo5i1KhRBm2XjIv5YLh8WL58uQAgjh07pndbZD7MCd1zokWLFsLHxyfN/d68eSMAiIkTJ2rdNpkX80G/z4h3796JggULiqpVq4rExETVdgcHB9G5c+d0tWkqVlfIt2rVSnh4eIi4uLgU9wkKChLOzs4iNjY22T779++f4rERERHC1dVVtGrVStoeGRkpvLy8RPPmzVM89vnz5yJz5syiV69e0vaUXpT6ioyMFI8fPxZ37twR+/btE927dxcODg6iZ8+eIiEhweD9kfEwHwyHhbx1YE7o7qeffhIAxMOHD1Pd7/79+wKAGDNmjN59kmkwH/QzePBg4eTkJP79919puxIKeaubWrN27Vo8e/YMTk5OKe5TokQJxMbG4vnz58k+3q9fvxSPzZUrFwIDA7F9+3Z8+PBBtX3Tpk14+fIlfv755xSP9fb2RqNGjbBz504tnon+evXqhezZs6NgwYIICAjA0qVL8fvvv2PhwoWwt7e6/3pKBvOBSGbLOdG0aVMAwLJly1Ldb8KECQDAu2faAFvOh88uX76MGTNmYMiQIShRooRR+zIGq8vS5F6MHz58QFRUFBISElQxkPLFni4uLqn2Ua1aNaxbtw6hoaEoX748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iIiIiEiBWMgTERERESkQC3kiIiIiIgViIU9EREREpEAs5ImIiIiIFIiFPBERERGRArGQJyIiIiJSIBbyREREREQKxEKeiIiIiEiBWMgTERERESkQC3kiIiIiIgViIU9EREREpEAs5ImIiIiIFIiFPBERERGRArGQJyIiIiJSIEdTdGJnZ2eKbshEhBDmHoKiMR+sC/NBP8wH68J80B9zwroYOyd4Rp6IiIiISIFYyBMRERERKRALeSIiIiIiBWIhT0RERESkQCzkiYiIiIgUiIU8EREREZECsZAnIiIiIlIgFvJERERERArEQp6IiIiISIFYyBMRERERKRALeSIiIiIiBWIhT0RERESkQCzkiYiIiIgUiIU8EREREZECsZAnIiIiIlIgFvJERERERArkaO4BEJFt+OKLL6T42rVrUtyoUSONY06fPm3UMRERESkZz8gTERERESkQC3kiIiIiIgViIU9EREREpECcI6+D2rVrS3H16tV1Oj5nzpxSXK9ePZ3HsGzZMimeP3++FL98+VLnNolMoVOnTlKcJUsWKVbPDyIiIkodz8gTERERESkQC3kiIiIiIgViIU9EREREpECcI/9/1Oe/A8DgwYOluGrVqlLs5uZm1DEl55dffpHigIAAKa5Ro4Yph0OktYIFC6b6uHp+AcDGjRuNNRwiIjIg9Wv41N/T1a+TOnPmTKrtqV9H1bZtW419vLy8pPjXX3+V4vj4+FT7sAY8I09EREREpEAs5ImIiIiIFIiFPBERERGRAtnsHHknJycpVp97ntw+EyZMkGL1+V2RkZFSHBoaKsW5cuWS4qxZs2r0efXqVSneuXOnFKuvPV+4cGGNNogsUXh4uLmHQGQwdnZ2UlyyZEkp/vHHH6U4KChIig8fPizFzZo1k2IhhJ4jJDKepk2bamz79ttvpThjxoxSfOzYMSnOkCFDqn1MmTJFinv06JHmuNT7OHLkSJrHKB3PyBMRERERKRALeSIiIiIiBWIhT0RERESkQDY7Rz4xMVGKu3XrprHP7du3Uz1GV+pzhJObM1ytWjUprlu3rhSrz5tUn0NGZKmyZcuW6uNbtmwxzUCIdKQ+Hx4ARowYIcXjxo2T4tevX0vx6tWrpbhXr15SXLNmTSm+du2aRp+xsbFS/ObNmxRGTGRc7dq109imPide3ePHj1N93NFRLkmLFi2q87gq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/2zW3nvNmuSmm27K2e+RRx5Jjh8/nixatCgZO3Zs8sADDyQ33HBDcvLkyWTXrl3Jxo0bk0mTJiXLli3r1J/9tttuS3744Yekra3tok/doGcxHzo/H/r27Zu0tLQk06ZNS8aPH59MnTo1mTBhQjJkyJDkyJEjSWtra/Lpp58m11xzTdLS0lLwWch0T+bEpf0bsXLlyqRXr15RvPCGzjMfeuB8qO6LZS/uf1/925n/rr322mDf9vb2dMGCBemVV16ZNjQ0pCNGjEinT5+efvTRR2mapuk333yTTp48OW1ubr7gOU+cOJEeOHAgnT9/fjp69Oi0d+/e6dChQ9MZM2aku3fvLjj2vXv3pvPnz0/HjBmT9unTJx02bFg6efLk9L333kvPnz+fs/3FXjc8adKkdOjQoenevXs7/4O7gObm5jRJkrStra2k41A95sOlz4cTJ06kK1asSMePH582Njam9fX1aWNjY3r33XenK1euTE+ePFnU8egezIlLnxMdHR1p375909mzZxe1H92X+dBz50Ndml5k0RMAANBt1dQaeQAA6CkUeQAAiJAiDwAAEVLkAQAgQoo8AABESJEHAIAIKfIAABAhRR4AACKkyAMAQIQUeQAAiJAiDwAAEVLkAQAgQoo8AABESJEHAIAIKfIAABAhRR4AACKkyAMAQIQUeQAAiJAiDwAAEVLkAQAgQoo8AABESJEHAIAIKfIAABAhRR4AACKkyAMAQIQUeQAAiJAiDwAAEerVFSepq6vritPQRdI0rfYQomY+1BbzoTTmQ20xH0pnTtSWSs8JV+QBACBCijwAAERIkQcAgAgp8gAAECFFHgAAIqTIAwBAhBR5AACIkCIPAAARUuQBACBCijwAAERIkQcAgAgp8gAAECFFHgAAIqTIAwBAhBR5AACIUK9qDyBm48ePD/LmzZuDvGLFiiAvXry44mMCAKBncEUeAAAipMgDAECEFHkAAIiQNfIlmDZtWpAHDBgQ5KampiCvWbMmyL/88ktlBgZdoKGhIcijRo0K8sMPP5x3/3nz5gX5qquuKnjOt956K8iff/55kDds2FDwGIX8+++/QU7TtORjAkAluCIPAAARUuQBACBCijwAAETIGvkK2rhxY5Dr6+urNBIoTmNjY85nixYtCvL06dODPHbs2JLOef78+YLbLFiwIG8uhz59+gT57NmzZT8H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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAu4AAAMUCAYAAADjY6IBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAACD00lEQVR4nO3deZxO9f//8edYxjJjBmOXPcaeQrI1KAmTpZQkaz5CfKRvez6WxKciUVSyVIqyhIjQQvZQaMbyQSFkX8a+zZzfH35zDb3PjDPXzFzXnJnH/Xab2208r3PO+z3XXO/xus513ucdYFmWJQAAAADpWhZ/dwAAAADArVG4AwAAAC5A4Q4AAAC4AIU7AAAA4AIU7gAAAIALULgDAAAALkDhDgAAALgAhTsAAADgAhTuAAAAgAtQuAOAl5YvX66AgAAtX77c310BAGQCFO4A0sSnn36qgICARL/WrVvn7y6mO3v37vU8P2+88YbtNh07dlRAQICCg4Nvyhs1aqSAgAA99NBDiR531KhRniz+Tcfs2bNv2jYqKkrt2rVTqVKllDNnThUvXlxNmzbV+++/L0kaMmRIkr/X+K9GjRol+nPGvzY2btzo9KkBAEjK5u8OAMjYXn/9dZUpU8bIb7/9dj/0xh1y5sypL7/8UgMHDrwpP3/+vL755hvlzJkz0X2//fZb/frrr6pZs2ay212zZo0aN26skiVL6l//+peKFCmi/fv3a926dRo7dqz69eunhx9++Kbf3blz59S7d2+1bdtWDz/8sCcvXLhwstsHACSNwh1AmmrevLlq1arl7264SosWLTRnzhxt2bJFd9xxhyf/5ptvdOXKFT344IP66aefjP1Kliyps2fPaujQoZo/f36y2x0+fLhCQ0O1YcMG5c2b96bHjh49KkmqXr26qlev7smPHz+u3r17q3r16nryySeT3SYAwDkulQHgV4MHD1aWLFn0448/3pT37NlTgYGB2rJliyTpypUrGjRokGrWrKnQ0FAFBQWpYcOGWrZs2U373XhZyPjx41W2bFnlzp1bDzzwgPbv3y/LsjRs2DDddtttypUrl1q3bq2TJ0/edIzSpUsrMjJSS5cuVY0aNZQzZ05VrlxZc+bMcfQz/fLLL3rwwQcVGhqq3LlzKyIiQqtXr3b8nNStW1dlypTR9OnTb8qnTZumBx98UPnz57fdL0+ePBowYIAWLFig3377zXF78f744w9VqVLFKNolqVChQsk+XnJ07dpVwcHB+uuvvxQZGang4GAVL15c48ePl3T9Ep4mTZooKChIpUqVMp6bkydP6vnnn1e1atUUHByskJAQNW/e3PP6udG+ffvUqlUrBQUFqVChQhowYICWLFliO1/Bye/y7NmzevbZZ1W6dGnlyJFDhQoVUtOmTb36HQBAUijcAaSpmJgYHT9+/KavEydOeB4fOHCgatSooaeeekpnz56VJC1ZskQTJ07UoEGDPGecz5w5o0mTJqlRo0Z66623NGTIEB07dkzNmjXT5s2bjXanTZumDz74QP369dP//d//6eeff9Zjjz2mgQMHavHixXrppZfUs2dPLViwQM8//7yx/65du9S+fXs1b95c//3vf5UtWzY9+uij+v7775P8eX/66Sfde++9OnPmjAYPHqwRI0bo9OnTatKkidavX+/4eevQoYO++uorWZYl6fqZ7aVLl+qJJ55Icr/+/fsrX758GjJkiOO24pUqVUq//vqroqOjk71vaoiNjVXz5s1VokQJvf322ypdurT69u2rTz/9VA8++KBq1aqlt956S3ny5FHnzp21Z88ez75//vmn5s2bp8jISI0ePVovvPCCoqKiFBERob///tuz3fnz59WkSRP98MMP+ve//63XXntNa9as0UsvvWT0x+nvslevXvrwww/1yCOP6IMPPtDzzz+vXLlyafv27Wn7hAHIfCwASAOffPKJJcn2K0eOHDdtGxUVZQUGBlo9evSwTp06ZRUvXtyqVauWdfXqVc82165dsy5fvnzTfqdOnbIKFy5sde/e3ZPt2bPHkmQVLFjQOn36tCd/5ZVXLEnWHXfccdNxO3ToYAUGBlqXLl3yZKVKlbIkWV9//bUni4mJsYoWLWrdeeednmzZsmWWJGvZsmWWZVlWXFycVb58eatZs2ZWXFycZ7sLFy5YZcqUsZo2bZrkcxbf95EjR1rR0dGWJGvlypWWZVnW+PHjreDgYOv8+fNWly5drKCgoJv2jYiIsKpUqWJZlmUNHTrUkmT9+uuvxnH/2fdZs2Z5sqVLl1pZs2a1smbNatWtW9d68cUXrSVLllhXrlxJtM/Hjh2zJFmDBw9O8me7UfxrY8OGDZ6sS5culiRrxIgRnuzUqVNWrly5rICAAOurr77y5Dt27DDavHTpkhUbG3tTO3v27LFy5Mhhvf76657snXfesSRZ8+bN82QXL160Klas6PXvMjQ01HrmmWcc//wA4C3OuANIU+PHj9f3339/09d333130zZVq1bV0KFDNWnSJDVr1kzHjx/XZ599pmzZEqbhZM2aVYGBgZKkuLg4nTx5UteuXVOtWrVsL0l49NFHFRoa6vl3nTp1JElPPvnkTcetU6eOrly5ooMHD960f7FixdS2bVvPv0NCQtS5c2dt2rRJhw8ftv1ZN2/erF27dumJJ57QiRMnPJ8wnD9/Xvfdd59WrFihuLg4R89blSpVVL16dX355ZeSpOnTp6t169bKnTv3LfeNP+s+dOhQR23Fa9q0qdauXatWrVppy5Ytevvtt9WsWTMVL17cq2vmvdGjRw/P93nz5lV4eLiCgoL02GOPefLw8HDlzZtXf/75pyfLkSOHsmS5/l9abGysTpw4oeDgYIWHh9/0+li8eLGKFy+uVq1aebKcOXPqX//61039SM7vMm/evPrll19uOrMPAGmByakA0tTdd9/taHLqCy+8oK+++krr16/XiBEjVLlyZWObzz77TO+884527Nihq1evenK7u9aULFnypn/HF/ElSpSwzU+dOnVTfvvttysgIOCmrEKFCpKuX0dfpEgRo81du3ZJkrp06WL/Q+r6pUP58uVL9PEbPfHEE3rnnXc0YMAArVmzRq+++qqj/UJDQ/Xss89q8ODB2rRpk+P2JKl27dqaM2eOrly5oi1btmju3Ll699131a5dO23evNn295JacubMqYIFC96UhYaG6rbbbjN+F6GhoTf9zuLi4jR27Fh98MEH2rNnj2JjYz2PhYWFeb7ft2+fypUrZxzvn3c5Ss7v8u2331aXLl1UokQJ1axZUy1atFDnzp1VtmxZhz85ADhD4Q4gXfjzzz89xVJUVJTx+BdffKGuXbuqTZs2euGFF1SoUCFlzZpV//3vf/XHH38Y22fNmtW2ncRy6/9fS54S8WdgR44cqRo1athu88/7ryelQ4cOeuWVV/Svf/1LYWFheuCBBxzv279/f7377rsaOnSoxowZ43i/eIGBgapdu7Zq166tChUqqFu3bpo1a5YGDx6c7GM5lZLf2YgRI/Sf//xH3bt317Bhw5Q/f35lyZJFzz77rONPOW6UnN/lY489poYNG2ru3LlaunSpRo4cqbfeektz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toG0ULRoUX93AUg3IiMjjSwwMNDr40VHR6ekO0CK2NVLM2fONLLEbrIREBBgZDNmzDCykydPetG7jIUz7gAAAIALULgDAAAALkDhDgAAALgAhTsAAADgAgGWZVmONrSZOOBPjz32mJG9//77RlawYEFfdMeW3cRYu8kWs2fPNrK1a9ca2YULF1KlX77m8CXmKultPKQnuXPnts137dplZMWKFTMyuwng9evXT3nH0gnGQ+YSEhJim//+++9GVrJkSUfH/O9//2tkr732WvI6lk4wHtwnX758RrZlyxYjK168uONj/vnnn0ZWr149Izt27JjjY7qRk/HAGXcAAADABSjcAQAAABegcAcAAABcgMIdAAAAcAFXrJxqx25Frp9++snIIiIijKx///5GFh4ebmRpMbF17969RvbLL78YmVsnogI9evSwzQsXLmxkcXFxRvbtt9+mep8Af6lWrZptXqJECSNzOlFz4cKFKeoTkBLNmjUzsuRMRLVz3333GVlGn4jqLc64AwAAAC5A4Q4AAAC4AIU7AAAA4AIU7gAAAIALuHbl1NQWFhZmZHny5DGyu+++28jsVnGVpIcffthR27t37zaydu3aGZndSntuwMp4GVfVqlWNbNWqVbbbBgcHG5nd89i+fXsjs1td2K0YD5nLpEmTbPNu3bo52v/AgQNGdueddxrZyZMnk9exdILxkL7ZrYS9YcMGI6tYsaKj47Vs2dI2X7x4cfI6lkGxcioAAACQQVC4AwAAAC5A4Q4AAAC4AIU7AAAA4AJMTk0FiT03derUMbKRI0caWf369Y3s0KFDRma3Wll0dLSTLvoVk48yrnvuucfIEpucasfudV6hQgUju3jxYvI6lo4xHjKu3r17G9n48eNtt3X6OihXrpyR2a3A7VaMh/TNrj5ZsWKFo3337dtnZDVq1LDd9syZM8nqV0bF5FQAAAAgg6BwBwAAAFyAwh0AAABwAQp3AAAAwAWy+bsDGUFikwnWrVtnZJGRkUa2ceNGI7ObkLR06VIjq169upEdP37ctj9ASmTLZv65eO2114wsOROzRo8ebWQZaSIqMq5SpUoZ2YgRI1J0zMmTJxvZwYMHU3RMICXsVvh1+jd+2rRpRsYk1JTjjDsAAADgAhTuAAAAgAtQuAMAAAAuQOEOAAAAuACTU30sJibGyO6++24j+/XXX42sdOnSRvbiiy86yoCUuuuuu4ysefPmRpaclRAXLlyYoj4B/tKnTx8jCw0NNbLEJvLZ3USgZ8+eKe8YkMac/o0fM2aM42PmyZPHyHLkyGFkJUuWNLI9e/YY2alTpxy37TaccQcAAABcgMIdAAAAcAEKdwAAAMAFKNwBAAAAF6BwBwAAAFyAu8qkA3aznydOnGhkw4cPN7LWrVsb2eDBg42MZeSRUu3bt0/R/sOGDTOynTt3puiYgC9UrVrVyJ544gkjS84dlb744osU9Qlwo6eeeso2/89//mNkJUqUcHTM77//3sgefPDB5HXMRTjjDgAAALgAhTsAAADgAhTuAAAAgAtQuAMAAAAuwOTUdOr99983sl69ehlZ+fLljcxu2W0mpyKl7rrrrhTtP3ny5FTqCeBbdhOrixUr5mjf7du32+aDBg1KUZ+A9G7Hjh1GlidPHtttAwMDjez48eNGliNHDiNzOok1o+CMOwAAAOACFO4AAACAC1C4AwAAAC5A4Q4AAAC4AJNT06lz5845yoC0EBkZaWQRERFGdvnyZSPr16+f7TEPHDiQ8o4Baaxs2bJGlpJVGN944w3bnL/ncINdu3Z5vW/+/Pkdb/v1118b2fPPP29kY8aMMbL777/fyOxWO46Ojnbcn/SMM+4AAACAC1C4AwAAAC5A4Q4AAAC4AIU7AAAA4AJMTk2n7FYRs8uAtDB+/HgjsyzLyL799lsjmzRpUpr0CfCFKVOmGJnTv707d+40si+//DLFfQL85bvvvjMyu1V/c+XKlaJ2Fi1aZGS33367kd15551GFhQUZGQhISEp6k96xhl3AAAAwAUo3AEAAAAXoHAHAAAAXIDCHQAAAHABJqemUx06dDCycuXKGZndapTnz59Pkz4hY7rvvvuMrGDBgkZ24cIFI3vnnXfSpE+AL/Tu3dvI7r33Xq+PN2fOnJR0B0h3fv/9dyPr3r27kU2fPj1F7UyePNnI7G6IYOePP/4wsk2bNqWoP+kZZ9wBAAAAF6BwBwAAAFyAwh0AAABwAQp3AAAAwAWYnJoOtG/f3sg+/PBDR/t+9dVXRnb27NkU9wmZx4svvmhkditFDh061MjWrVuXJn0CUtsjjzxiZE5XCLYTGxtrZNu2bUt+xwCX+fHHH/3W9qxZs4xswoQJRnbx4kVfdMcvOOMOAAAAuACFOwAAAOACFO4AAACAC1C4AwAAAC6Q4SenVqhQwch27tzpk7azZTOf3tdee83IXn75ZSPLkSOHkdmtYDZ8+HAve4fM6J577jGy+++/38jOnTtnZIsWLUqTPgG+UK1atVQ93qOPPmpk33zzTaq2AaRHJ0+eNDK7OsauPsmaNavtMe1WfG/YsKGR2U0Av3Lliu0xMyrOuAMAAAAuQOEOAAAAuACFOwAAAOACFO4AAACAC2Soyal2EyHsJt7VqVPH6zaqVKliZLVr17bd9tlnnzWy6tWrO2rHbmWyzp07G1lMTIyj4wGJsVsp8vXXXzeyX3/91RfdAdJEzZo1vd532LBhRrZgwYKUdAdwrbi4OCMbOXKkkV24cMHI7G7QIUnvvfeekW3evDn5ncsEOOMOAAAAuACFOwAAAOACFO4AAACAC1C4AwAAAC4QYNnNTLPbMCAgrfuSYnaT50qWLGlkdqvb1ahRw8jKli1rZLlz5zYyu1VOJftJf5cuXTKy//u//zOyjz/+2MhiY2Nt20nvHL7EXMUN48GO3cqpq1atMrLSpUsb2YEDB9KiS5kO48E/GjRoYGQrVqwwstmzZxvZiBEjjIyJc6mD8QAkcDIeOOMOAAAAuACFOwAAAOACFO4AAACAC1C4AwAAAC5A4Q4AAAC4QIa6q0yPHj2MzO7uLKnNbvlfSXr33XeNbOzYsUaW0e/WwV0D0g+7u8VMmTLFyNq2bWtkMTExadGlTIfxACRgPAAJuKsMAAAAkEFQuAMAAAAuQOEOAAAAuACFOwAAAOACGWpyKtInJh8BCRgPQALGA5CAyakAAABABkHhDgAAALgAhTsAAADgAhTuAAAAgAtQuAMAAAAuQOEOAAAAuACFOwAAAOACFO4AAACAC1C4AwAAAC5A4Q4AAAC4AIU7AAAA4AIU7gAAAIALULgDAAAALkDhDgAAALhAgGVZlr87AQAAACBpnHEHAAAAXIDCHQAAAHABCncAAADABSjcAQAAABegcAcAAABcgMIdAAAAcAEKdwAAAMAFKNwBAAAAF6BwBwAAAFyAwh0AAABwAQp3AAAAwAUo3AEAAAAXoHAHAAAAXIDCHQAAAHABCncAAADABTJl4R4QEKCAgAANGTLEr/1Yvny5py/Lly/3a1+QeTEegASMByAB4yH98XnhfuOT7+8XQmYTFxenGTNmqE2bNipRooRy5syp3Llzq0yZMmrfvr2+++47f3cx02E8+E9sbKymTZumli1bqkiRIgoMDFThwoXVqFEjTZgwQdeuXfN3FzMdxoPvde3a1fOcO/369NNP/d3tTIHx4B+lS5d2NA5Kly7tl/5l80ur8LlTp06pdevWWrlypfHY3r17tXfvXs2cOVOPPPKIpk2bphw5cvihl4BvHDp0SA8//LDWrVt3U3706FEdPXpUP//8syZOnKgFCxaoaNGifuolkD6Fh4f7uwtApkXhnkk8/vjjnqK9TJkyeuGFF1StWjVdvXpVv/76q9566y0dP35cX3/9tQoUKKCPPvrIzz0G0sbFixfVokULbd68WZJ0//33q1evXipTpoxOnDih2bNna9KkSfr1118VGRmp1atXK2fOnP7tNJBGhg8frueffz7JbU6dOqVGjRopLi5OFSpUUN26dX3UO8B/WrdurTfeeCPRxwMDA33YmwQU7pnAxo0btXTpUklS2bJltXnzZuXJk8fzeOPGjfXYY4/pjjvu0OnTpzVx4kS9/vrrKlSokL+6DKSZ8ePHe4r2bt26afLkyQoICPA83rRpU91zzz3q3r27fvvtN40bN+6WhQ3gVsWLF1fx4sWT3ObDDz9UXFycJKlTp06+6Bbgd3nz5lXVqlX93Q1DppycmtmsWbPG8/2zzz57U9Eer2TJkurWrZuk69fC//LLLz7rH+BL8dfnBgUF6d13372paI/XrVs31a9fX5I0cuRIxcbG+rKLQLoydepUSdcnKlK4A/7lusL9/PnzmjFjhnr06KEaNWooNDRU2bNnV8GCBRUREaFRo0bp3LlzyTrmDz/8oFatWqlo0aLKmTOnypYtq759++rgwYOO9v/tt9/Uq1cvhYeHKzg4WEFBQQoPD1fv3r21c+dOb37MVHXlyhXP92XLlk10u3Llytnug/SL8ZA8Fy9e1NatWyVJdevWVWhoaKLbPvjgg5KuX/duNzcE6Q/jIfXt2rXLMxckIiJCpUqV8nOP4BTjIYOyfGzZsmWWJEuSNXjw4GTvHxER4dk/sa8yZcpY27dvT/QYN7Y/ZMiQRI8TGhpqrVixItHjxMbGWgMGDLACAgISPUa2bNmsCRMm3PK5WLZsme02pUqV8mzjrfnz53uO8d577yW63YABAzzbRUVFed0enGM82D8XaTUeDhw44Nm/Y8eOSW778ccfe7YdOnSoV+0heRgP9s9FWv7/cCsDBw70tDFlypQ0awcmxoP9c5HW4yH+OF26dEnRcdKK665xv3btmqpVq6ZWrVqpVq1aKlasmCzL0r59+zR37lzNnDlTe/bsUZs2bbR58+YkJ5UtXLhQGzduVHh4uF588UVVr15dMTExmjVrliZOnKiYmBhFRkYqOjpaJUqUMPbv16+fPvjgA0nSvffeq65du6ps2bLKnTu3tmzZojFjxmjr1q16+umnVaRIEbVq1SrNnpekNGvWTGXKlNGePXs0duxYde/eXUFBQTdtc+DAAc8lBA0aNEiX13XBxHhInuDgYM/3MTExSW574+Pbtm1Lsz4h9TAeUpdlWfriiy8kSblz51a7du383CMkB+MhZVasWKEaNWrojz/+UGxsrAoXLqy7775bHTp0UOvWrW0vs/QJX79TSOk7yJ07dyb5+Pfff29lyZLFkmRNmjTJdhvd8A7vrrvuss6ePWtsM3XqVM82jz76qPH40qVLPY8n1s7FixetJk2aWJKsUqVKWVevXr3pcV++g1y7dq1VoEABS5JVrlw566OPPrJWrVplLVu2zBo1apRVqFAhS5JVtmzZWz7HSD2MhwS+Gg9Fixa1JFkFChSwLl++nOh2Dz30kKetunXret0enGM8JEgPZ9yXL1/u+BMqpD7GQwJ/nHFP6qt+/frWgQMHUtSOt1xXuDvRpk0bS5IVGRlp+/iNT/7GjRsTPU7z5s09H98cOnTopsfiX2CPPPJIkn3Ztm2bp62lS5fe9Jiv/zDv37/fev75563s2bMbL8Lg4GBr2LBh1okTJ1LcDpxjPCTw1Xh4+umnPccYMWKE7TYrV670/IcmyapatarX7cE5xkOC9FC4d+/ePdH+Ie0xHhL4cjyUL1/eatWqlTVu3Dhr+fLl1qZNm6xly5ZZI0aMsEqUKOFpo1KlStbp06dT1JY3XDc59Z+OHTumXbt2KTo62vNVsGBBSdKWLVuS3LdatWqqWbNmoo93795d0vWPm25cYvfMmTOef9/qo8NKlSqpQIECkqS1a9fe6scx7N27V9b1N1jJ3vdGlmXpq6++0syZM3X16lXj8XPnzmnatGmaN29eitqBfzEebu2ll17y3Fnptdde04ABA7Rr1y5dvXpVhw8f1vjx49WiRQtly5ZwJeHFixe9bg/+w3jw3qVLlzR79mxJ128Zed9996V6G/AtxoMz69ev1zfffKNnnnlGERERqlGjhho1aqRXXnlFW7du1QMPPCBJ2r59u4YOHZqitrzhysJ99erVat++vcLCwlSoUCFVqFBB1apV83xNnDhRknT8+PEkj1O7du0kH7/77rs930dFRXm+37Rpk+eeth06dLjlsrjx/Th8+LBXP29KxcXFqX379nrhhRf0119/6amnntJvv/2mixcv6ty5c1q1apVatWqlHTt26KmnntKzzz7rl37CO4yH5ClTpoxmzJih4OBgWZalMWPGqEKFCgoMDFTRokXVt29fXbhwQePGjfPsY3cLVaRPjIfUMW/ePJ05c0aS9OSTTypLFleWC5ke4yH58ubNm+hjefLk0cyZM5U/f35J0scff+zzu/C5biQOGTJEDRo00MyZM3Xy5Mkkt73VWbJbLTBUuHBhz/c3tnX06FEHPTVduHDBq/1S6sMPP9SsWbMkXX/+Jk2apDvvvFM5c+ZUUFCQ6tevr2+++cZzf96xY8dqwYIFfukrkofx4J3mzZvrt99+U+fOnW/6Ix0QEKDGjRtr5cqVN02Oypcvnx96ieRiPKSe+Hu3S1Lnzp392BN4i/GQNkJDQ/X4449Lun7LzY0bN/q0fVfdVebHH3/0fCxRtmxZPf/882rQoIFKliypoKAgz0fbgwYN0rBhw255PG9nBN+4GMuECRNUr149R/v56z//SZMmSbr+TvHll19OdLsRI0bo888/lyRNmTJFDz30kE/6B+8wHlKmfPny+uyzzxQXF6dDhw7pwoULKlasmOeOS6tWrfJsW6VKFX91Ew4xHlLPkSNHPKtt16xZU5UrV/Zzj5BcjIe0deOYcHoP+9TiqsI9/iOdfPnyad26dZ5rs/7pVu8s4x05csTx4/Efi0hSWFiY5/vcuXOn+1snbt++XdL1F1qOHDkS3e62225T4cKFdeTIEe3YscNX3YOXGA+pI0uWLLZLvv/666+e72/8GBjpE+Mh9UybNs1TcHXp0sXPvYE3GA9py2+3gpTLLpWJX/GwcePGib4IJTn+2GLDhg2OH7/xxVajRg3PL2316tWO2vKn+HfW165du+W28RNXb5yYh/SJ8ZC24i8vy5UrF58+uQDjIfXEXyaTPXt2dejQwc+9gTcYD2nrxrU9ihUr5tO2XVW4xxee58+fT3SbTZs26ZdffnF0vKioKG3atCnRx6dMmSJJypo1qxo1auTJCxYsqHvuuUeSNH36dB07dsxRe/5SpkwZSVJ0dLROnz6d6HbR0dGed9/x+yD9YjyknaVLl3r+k+nYsWOSk5WQPjAeUkdUVJTnDiMtWrTw3OUD7sJ4SDsxMTH66quvJF3/FKFWrVo+bd9VhXv58uUlXb/2dPfu3cbjx44d80ywdKpnz562L+zp06dr0aJFkqQ2bdqoaNGiNz0+cOBASddvddSuXbskC+LLly9r/PjxunTpUrL6JkmlS5f2zLb2VvzZwsuXL+u5556zvVXSpUuX9O9//9vz78jISK/bg28wHryX1DWJUVFRevLJJyVd/5h3xIgRKWoLvsF4SB2fffaZ53smpboX48E7ixcvTnKi7rlz5/TYY4/pxIkTkqSnnnoqyUuQ04Jfr4fYvHmzPv3001tu16RJE5UsWVKdO3fWggULdP78eUVEROjll1/23Fd0zZo1Gj16tA4fPqy6des6ugdorVq1tHHjRtWqVUsvvfSSqlWrppiYGM2ePVsTJkyQdH1C56hRo4x9W7Roof79+2vs2LFasWKFKlWqpF69eqlBgwYKCwvT+fPntXv3bq1cuVJz5szRqVOn/Hat4HPPPafJkyfr6NGj+uSTT7Rr1y716tVLFStWVGxsrDZt2qT33nvP89FPpUqV1LVrV7/0NTNjPPhO8+bNVahQIbVu3Vo1atRQcHCw/v77by1atEiTJ0/W5cuXlTNnTn355ZdJfsyMtMN48L3Y2FhNnz5d0vXrlDmBk34wHnzjzTffVMeOHfXwww+rQYMGKleunIKDgxUTE6M1a9boo48+0l9//SVJCg8P15AhQ3zfSV+v+HTj6ldOv+bOnevZv1u3bolulzVrVmvMmDHW4MGDk1w9K/6xwYMH37TtP79CQkKs5cuXJ/qzxMXFWUOHDrWyZct2y58hKCjIunDhQqLPRVqvBLZp0yarTJkyt+xnjRo1rL1796aoLTjHeLB/LtJ6PFSpUiXJ/pUoUcL68ccfU9QGko/xYP9c+Grl1O+++85zvD59+qTKMeE9xoP9c5GW4yEiIsLR8xwREWEdOHDA63ZSwlWXykjXr6P6/PPP1bBhQ+XJk0c5cuRQqVKl1KlTJ61Zs0b9+/dP1vGGDBmixYsXq2XLlipcuLACAwNVunRp9enTR1u3blVERESi+wYEBGjQoEHauXOnXnzxRdWqVUv58+dX1qxZlSdPHlWuXFkdO3bUZ599pkOHDilXrlwp/fG9VqNGDUVFRWn8+PF64IEHVKRIEQUGBipHjhwqUaKEWrVqpc8//1zr169XqVKl/NZPJA/jwTujRo1Snz59dMcdd6hgwYLKnj27ihQpokaNGum9997T9u3b1aRJE7/1D95hPKRM/O2AJS6TyQgYD8k3atQovfnmm2rdurUqVqyoAgUKKFu2bAoJCVHFihXVpUsXLV68WMuWLbO9G5kvBFhWGqyVDAAAACBVue6MOwAAAJAZUbgDAAAALkDhDgAAALgAhTsAAADgAhTuAAAAgAtQuAMAAAAu4Hjl1NRcUhmZS0a84yjjAd5iPAAJGA9AAifjgTPuAAAAgAtQuAMAAAAuQOEOAAAAuACFOwAAAOACFO4AAACAC1C4AwAAAC5A4Q4AAAC4AIU7AAAA4AIU7gAAAIALULgDAAAALkDhDgAAALgAhTsAAADgAhTuAAAAgAtQuAMAAAAuQOEOAAAAuACFOwAAAOACFO4AAACAC1C4AwAAAC5A4Q4AAAC4QDZ/d8BtAgMDjSxHjhy227788stG1rRpUyMLDQ01svDwcC96BwAA4FtjxowxsuDgYCM7evSo7f5//fWXkdWqVcvI7OqlRx55xMgCAgKMrEePHkY2efJk2/6kZ5xxBwAAAFyAwh0AAABwAQp3AAAAwAUo3AEAAAAXoHAHAAAAXIC7yiShYMGCRjZlyhQja968ue3+drOaLcsyspiYGCNr3LixkeXNm9fIfv75ZyM7efKkbX8AAABS4r777jOyPn36GFnWrFmNzK4ukuxrIzuXLl3yet8mTZoYGXeVAQAAAJAmKNwBAAAAF6BwBwAAAFyAwh0AAABwASan/n8lS5Y0suXLlzvaLqXslvD9/vvvHe178OBBI2vVqpWRbdmyJfkdAwAAuEFwcLCR2U1EtbNkyRLb/MMPP3S0/19//WVkTuuyn376ydF26R1n3AEAAAAXoHAHAAAAXIDCHQAAAHABCncAAADABQIsh0tOJbbalRuFhIQY2bp164ysQoUKKWrH6cqpqe3AgQNGds899xjZ4cOH07wvkm9+Zl/LSOPBqcKFCxtZvXr1jOzhhx+23b9jx45G9sMPPxjZ0KFDjWz16tVOuugKjAfv2f1NbtmypZHZTdCfP3++ozb+85//GJndDQROnz5tZG+88YajNpJj4cKFRrZz585Ub8dfGA/pW1BQkJGtXbvWyKpUqWJkdmMkIiLCtp3o6Ojkdy4DcjIeOOMOAAAAuACFOwAAAOACFO4AAACAC1C4AwAAAC6QKSenfvLJJ0bWqVMnr4+3f/9+23zq1KlGZjepo2jRokY2ceJEr/tz/PhxI6tZs6aR2a26mhaYfJS+5ciRw8jsXn/33XefkRUoUMDIEpv0fPToUSOrWLGikeXOndvIRowYYWRDhgwxstjYWNu20xPGg/d+//13I6tcubLXx/PFDQQSe26ctrN161Yju+OOO1LUp/SE8ZC+2d2AYOXKlY72feSRR4xs3rx5Ke1ShsbkVAAAACCDoHAHAAAAXIDCHQAAAHABCncAAADABbL5uwNpzW4ST+vWrb0+3r59+4ysWbNmttvu3r3byOwmAo4fP97r/tjp0aOHkflqIircZ+TIkUZmt8qp3WvfbsLqqlWrHLfdtGlTI1u8eLGRvfbaa0b2xRdfGNn//vc/x23Dfd59910j69+/v5FVrVrVF93xCbuVvoG00LZtWyP7+uuvHe07fPhwI2MiatrgjDsAAADgAhTuAAAAgAtQuAMAAAAuQOEOAAAAuECGmpyaL18+I2vVqpWROZ3s89133xnZ//3f/xmZ3SRUSXr00UeNrHnz5kbWuXNnR/2xs2zZMiOLjo72+njIOOxWIJ08ebKRtWnTxsg++OADI3vllVeM7Ny5c9517v9r2bKlo+3GjRtnZImNO2Rcdqtez58/38gaN27si+44kthrPCWrdQNp4eWXXzYyu5U8x4wZY2R2K1kjbXDGHQAAAHABCncAAADABSjcAQAAABegcAcAAABcIENNTrWbiDp48GBH++7du9fInnrqKSM7evSokSU2yejTTz81MruJHk5NmTLFyOxWDbx48aLXbSDjaN++vZE99thjRmY3YfW5554zsqtXr6ZOx27wxBNPONpu06ZNRhYbG5va3YELnThxwshmz57th57YK1GihL+7ADgSExPjaLvbbrvNyBo1amRkP/74Y0q7BBuccQcAAABcgMIdAAAAcAEKdwAAAMAFKNwBAAAAF8hQk1P/+OMPr/fdsGGDkdlNRLVbUfJf//qX1+0m5tixY0Y2evRoI2MiKhJjN5nZblXdnj17+qI7atasmZEFBwcbWUBAgJFlycI5BmQsdq9zO7z24SuDBg0ysurVqxtZu3btjKxt27ZGdvr0aSOzW/1YkjZv3mxkX375pe22mR1/EQAAAAAXoHAHAAAAXIDCHQAAAHABCncAAADABTLU5NRz5855va/dxAq7VcRy585tZE4nGSVm4cKFRma34uuOHTtS1A4yrkceecTI7Fbp7datW5r35YEHHrDNZ86caWQ5cuQwMrt+x8XFpbxjQDridBXtnDlzGtmjjz5qZHb/Dzltw+4mB99++62jfZFxrFu3zshq1qxpZHaryr/00ktGFhYWZmQvvPCCbdtXrlwxsj59+hiZ3Y1E5syZY2SrVq2ybScj4Iw7AAAA4AIU7gAAAIALULgDAAAALkDhDgAAALhAgOVw9kpKJ2D6y7x584zsoYce8knbdivenTlzxsgaNmxoZL///nua9MkfnE6QcpP0Nh6mTZtmZDVq1DCyOnXqGFlKJnXbrbo6cuRI223tXvt2q+W1aNHCyHr06GFkia3Al94xHtI3uwl15cuXd7Rv69atjax9+/a225YsWTJ5HbuFlExO3b9/v5GVKVMmxX1ygvGQcUVGRhrZww8/bLut3TjJlSuX122/+eabRjZs2DAjS2+rzzsZD5xxBwAAAFyAwh0AAABwAQp3AAAAwAUo3AEAAAAXoHAHAAAAXCCbvzuQ1kaNGmVkdjOd04LdMu12s82LFCliZDt37jSyS5cupU7H4Go5cuQwsvDwcCMbN26ckTm9g8ztt99uZG+//baRNW3a1Mjslp+WpL59+xrZa6+9ZmR2d5UBfMXubkUpeU0mdoeR1L6bytmzZ43s1KlTjvb9+OOPU7UvgCR9++23jjJJev31143M7v+6Xr16GVnv3r2N7OWXXzayrVu3GpndHdnSO864AwAAAC5A4Q4AAAC4AIU7AAAA4AIU7gAAAIALZPjJqfnz5/d3F26SO3duI1u0aJGRzZgxw8heeuklIztw4EDqdAyuYbcU+Z133mlkdpNEq1evbmR2r6uGDRsa2fnz542sbt26RhYdHW1kidm9e7fjbQFfuOOOO/zdhZucPn3ayN544w0j27Rpk5H9/PPPadElINXt3bvX0XYDBgwwst9//93IJk+ebGSjR482MianAgAAAEgTFO4AAACAC1C4AwAAAC5A4Q4AAAC4QIaanGo38fP5559P1TaOHTtmZGFhYbbbZs2a1et22rdvb2TFixc3skaNGnndBjIOu9UZDx8+bGR2qzVu377dyGbPnm1kb731lpEdOXLEaRdt2e1v97NkycI5BvhGqVKljKx///5GZjexev78+UaW2GvXbmXt+vXrG9m6dets9wdwnd1qx3aTU+1uVvLggw8a2eLFi1OnY2mE/w0BAAAAF6BwBwAAAFyAwh0AAABwAQp3AAAAwAVcOznVbqLml19+aWT16tVzdLzjx48bmd0KXXar09lNJJWk+++/38jsVpp0KiQkxMhCQ0ONLCYmxus2kP5du3bNyD799FMjy5s3r5F9/fXXRvbNN98Y2blz57zqW3Lt2rXLyOwm0NpN5AN8ZezYsUZWokQJI0vOa9duW7sMQNIiIyMdbXfmzBkjW79+fWp3J81xxh0AAABwAQp3AAAAwAUo3AEAAAAXoHAHAAAAXMC1k1Nz5cplZE4notrp0aOHkX377bdGVrp0aSOzmxQrScHBwUaWksmp1atXN7LWrVsb2dSpU71uA+mf3YqN3bt390NPAABIG3ar0o8ZM8bIOnbsaGR2K3DPnDnTyE6ePOld5/yIM+4AAACAC1C4AwAAAC5A4Q4AAAC4AIU7AAAA4AKunZya2t5++20jGzp0qJEVKFDAyLJnz257zMKFCxtZaq+MV61atVQ9HuBLV65cMbILFy4YWe3atY3sk08+SZM+Ab6wdu1aI7ObeA4kR/PmzY3s0qVLRrZq1Soju3r1aqr2xW717kaNGtlu+/DDDzvatnjx4kZmV1dNmDDByPr372/btttwxh0AAABwAQp3AAAAwAUo3AEAAAAXoHAHAAAAXIDJqf9fhQoV/N2FW3rvvfeMbNCgQX7oCZA6/vzzTyPbvHmzkd1///1GFhoaamQxMTGp0i8grR04cMDITpw44YeeICOxWwl0+fLlRvbFF18Y2WeffWZkOXLkMDK7VeE7dOhgZPfdd5+R2a2GKjm/cceaNWuMbOTIkUY2f/58R8dzI864AwAAAC5A4Q4AAAC4AIU7AAAA4AIU7gAAAIALuHZyqt0kNLtV526//XZfdCdFfvjhByP7+eefjcxuJbCLFy+mSZ+A9OTIkSNGxkRU+FNERISRBQQEGFmWLPbnx1asWJHqfQJ++eUXI7ObCN29e3cj69y5s5HZvaazZs3qZe+kQ4cO2eYrV640srlz5xqZ3aTTzFYHccYdAAAAcAEKdwAAAMAFKNwBAAAAF6BwBwAAAFzAtZNTjx07ZmRDhw41ssqVKzs63lNPPWVkhQoVMjK71UvPnz9ve0y7yUd2q35duXLFyK5evWp7TCAzKl68uJHlz5/fyOxWDQTSwkMPPWRkdqs/xsXF2e6fkVd2RPrSrl07I7OrZexWkLdbOfX06dNG9uOPPxrZwoULjWzt2rW2fbS7AQHsccYdAAAAcAEKdwAAAMAFKNwBAAAAF6BwBwAAAFyAwh0AAABwgQDLbhq83YY2y94CTjh8ibkK4yHt2C19Xb9+fSOrVKmSkf3vf/9Lkz6lJsaD+1StWtXIfvrpJyOzu9NRYs9NyZIljezgwYNe9M7dGA9AAifjgTPuAAAAgAtQuAMAAAAuQOEOAAAAuACFOwAAAOAC2fzdAQC4lV9++cXIdu/e7YeeIDM6dOiQkdlNhK5bt66RnT171vaYsbGxKe8YgEyHM+4AAACAC1C4AwAAAC5A4Q4AAAC4AIU7AAAA4AJMTgWQ7n3zzTdGxuQ++MqJEyeM7KOPPjKyo0ePGtl7771ne8zDhw+nvGMAMh3OuAMAAAAuQOEOAAAAuACFOwAAAOACFO4AAACACwRYlmU52jAgIK37ggzK4UvMVRgP8BbjAUjAeAASOBkPnHEHAAAAXIDCHQAAAHABCncAAADABSjcAQAAABdwPDkVAAAAgP9wxh0AAABwAQp3AAAAwAUo3AEAAAAXoHAHAAAAXIDCHQAAAHABCncAAADABSjcAQAAABegcAcAAABcgMIdAAAAcIH/B2ZWj+mKP4weAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -236,7 +236,10 @@ " num_input_units=64, # Each input layer consists of 64 Categorical input units\n", " sum_product_layer='cp', # Use CP sum-product layers, i.e., alternate dense sum layers and hadamard product layers\n", " num_sum_units=64, # Each dense sum layer consists of 64 sum units\n", - " sum_weight_param='softmax' # Parameterize the weights of dense sum layers with 'softmax'\n", + " sum_weight_param=circuit_templates.Parameterization(\n", + " activation='softmax', # Parameterize the sum weights by using a softmax activation\n", + " initialization='normal' # Initialize the sum weights by sampling from a standard normal distribution\n", + " )\n", ")\n", "```\n", "\n", @@ -283,7 +286,10 @@ " num_input_units=64, # Each input layer consists of 64 Categorical input units\n", " sum_product_layer='cp', # Use CP sum-product layers, i.e., alternate dense sum layers and hadamard product layers\n", " num_sum_units=64, # Each dense sum layer consists of 64 sum units\n", - " sum_weight_param='softmax' # Parameterize the weights of dense sum layers with 'softmax'\n", + " sum_weight_param=circuit_templates.Parameterization(\n", + " activation='softmax', # Parameterize the sum weights by using a softmax activation\n", + " initialization='normal' # Initialize the sum weights by sampling from a standard normal distribution\n", + " )\n", " )\n", " return circuit\n", "\n", @@ -335,30 +341,33 @@ "outputs": [], "source": [ "from cirkit.symbolic.circuit import Circuit\n", - "from cirkit.templates.region_graph import RandomBinaryTree\n", + "from cirkit.templates.region_graph import RandomBinaryTree, RegionGraph\n", "from cirkit.symbolic.layers import CategoricalLayer\n", - "from cirkit.templates.circuit_templates._factories import name_to_parameter_factory, name_to_initializer\n", + "from cirkit.templates.circuit_templates.utils import Parameterization, parameterization_to_factory\n", "\n", "NUM_INPUT_UNITS = 64\n", "NUM_SUM_UNITS = 64\n", "\n", - "def define_circuit_from_rg(rg, sum_prod_layer='cp'):\n", - "\n", + "def define_circuit_from_rg(rg: RegionGraph, sum_prod_layer: str = 'cp') -> Circuit:\n", " # Here is where Overparametrization comes in\n", - " input_factory = lambda x, y, z: CategoricalLayer(scope=x,\n", - " num_categories=PIXEL_RANGE+1,\n", - " num_channels=1, # These are grayscale images\n", - " num_output_units=NUM_INPUT_UNITS # Overparametrization\n", - " )\n", + " input_factory = lambda scope, y, z: CategoricalLayer(\n", + " scope=scope,\n", + " num_categories=PIXEL_RANGE+1,\n", + " num_channels=1, # These are grayscale images\n", + " num_output_units=NUM_INPUT_UNITS # Overparametrization\n", + " )\n", + "\n", " # Note that below intialisation is needed\n", - " sum_weight_init = name_to_initializer('normal')\n", - " sum_weight_params = name_to_parameter_factory('softmax', initializer=sum_weight_init)\n", + " sum_weight_param = Parameterization(activation='softmax', initialization='normal')\n", + " sum_weight_factory = parameterization_to_factory(sum_weight_param)\n", " \n", - " circuit = Circuit.from_region_graph(rg,\n", - " input_factory=input_factory,\n", - " sum_weight_factory= sum_weight_params,\n", - " num_sum_units=NUM_SUM_UNITS,\n", - " sum_product=sum_prod_layer)\n", + " circuit = Circuit.from_region_graph(\n", + " rg,\n", + " input_factory=input_factory,\n", + " sum_weight_factory= sum_weight_factory,\n", + " num_sum_units=NUM_SUM_UNITS,\n", + " sum_product=sum_prod_layer\n", + " )\n", " return circuit" ] }, @@ -457,15 +466,7 @@ "execution_count": 5, "id": "b05a9ebc-394c-49e9-b2fe-23b541641146", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ERROR! Session/line number was not unique in database. History logging moved to new session 3\n" - ] - } - ], + "outputs": [], "source": [ "from cirkit.templates.region_graph import QuadTree\n", "\n", @@ -690,14 +691,14 @@ "Step 300: Average NLL: 1183.784\n", "Step 400: Average NLL: 981.932\n", "Step 500: Average NLL: 932.100\n", - "Step 600: Average NLL: 924.787\n", - "Step 700: Average NLL: 918.032\n", - "Step 800: Average NLL: 907.464\n", - "Step 900: Average NLL: 911.107\n", - "Step 1000: Average NLL: 904.106\n", - "Step 1100: Average NLL: 907.956\n", - "Average test LL: 902.902\n", - "Bits per dimension: 1.661\n", + "Step 600: Average NLL: 924.785\n", + "Step 700: Average NLL: 918.109\n", + "Step 800: Average NLL: 907.476\n", + "Step 900: Average NLL: 911.195\n", + "Step 1000: Average NLL: 904.251\n", + "Step 1100: Average NLL: 907.762\n", + "Average test LL: 903.237\n", + "Bits per dimension: 1.662\n", "\n", "Training circuit with region graph \"quad-tree-2 + cp.T\"\n", "Step 100: Average NLL: 3511.839\n", @@ -720,13 +721,13 @@ "Step 300: Average NLL: 1125.442\n", "Step 400: Average NLL: 888.607\n", "Step 500: Average NLL: 816.974\n", - "Step 600: Average NLL: 792.850\n", - "Step 700: Average NLL: 772.091\n", - "Step 800: Average NLL: 750.501\n", - "Step 900: Average NLL: 744.235\n", - "Step 1000: Average NLL: 731.285\n", - "Step 1100: Average NLL: 728.470\n", - "Average test LL: 720.184\n", + "Step 600: Average NLL: 792.889\n", + "Step 700: Average NLL: 772.103\n", + "Step 800: Average NLL: 750.479\n", + "Step 900: Average NLL: 744.230\n", + "Step 1000: Average NLL: 731.415\n", + "Step 1100: Average NLL: 728.526\n", + "Average test LL: 720.130\n", "Bits per dimension: 1.325\n", "\n", "Training circuit with region graph \"quad-graph + cp.T\"\n", @@ -747,17 +748,17 @@ "Training circuit with region graph \"quad-graph + Tucker\"\n", "Step 100: Average NLL: 3550.641\n", "Step 200: Average NLL: 1989.352\n", - "Step 300: Average NLL: 1108.914\n", - "Step 400: Average NLL: 885.228\n", - "Step 500: Average NLL: 808.847\n", - "Step 600: Average NLL: 778.896\n", - "Step 700: Average NLL: 760.512\n", - "Step 800: Average NLL: 741.714\n", - "Step 900: Average NLL: 737.141\n", - "Step 1000: Average NLL: 721.132\n", - "Step 1100: Average NLL: 721.241\n", - "Average test LL: 713.684\n", - "Bits per dimension: 1.313\n" + "Step 300: Average NLL: 1108.909\n", + "Step 400: Average NLL: 885.218\n", + "Step 500: Average NLL: 808.929\n", + "Step 600: Average NLL: 779.488\n", + "Step 700: Average NLL: 761.050\n", + "Step 800: Average NLL: 742.020\n", + "Step 900: Average NLL: 737.168\n", + "Step 1000: Average NLL: 720.782\n", + "Step 1100: Average NLL: 720.701\n", + "Average test LL: 713.140\n", + "Bits per dimension: 1.312\n" ] } ], @@ -911,9 +912,9 @@ " \n", " quad-graph\n", " 421,306,626\n", - " 713.684\n", - " 1.313\n", - " 721.132\n", + " 713.140\n", + " 1.312\n", + " 720.701\n", " Tucker\n", " \n", " \n", @@ -935,9 +936,9 @@ " \n", " quad-tree-2\n", " 217,845,760\n", - " 720.184\n", + " 720.130\n", " 1.325\n", - " 728.470\n", + " 728.526\n", " Tucker\n", " \n", " \n", @@ -951,9 +952,9 @@ " \n", " random-binary-tree\n", " 217,845,760\n", - " 902.902\n", - " 1.661\n", - " 904.106\n", + " 903.237\n", + " 1.662\n", + " 904.251\n", " Tucker\n", " \n", " \n", @@ -979,23 +980,23 @@ "text/plain": [ " # trainable parameters test loss \\\n", "quad-graph 25,641,474 711.308 \n", - "quad-graph 421,306,626 713.684 \n", + "quad-graph 421,306,626 713.140 \n", "quad-tree-2 19,251,328 714.139 \n", "quad-graph 19,259,778 717.598 \n", - "quad-tree-2 217,845,760 720.184 \n", + "quad-tree-2 217,845,760 720.130 \n", "quad-tree-2 16,048,192 724.648 \n", - "random-binary-tree 217,845,760 902.902 \n", + "random-binary-tree 217,845,760 903.237 \n", "random-binary-tree 19,251,328 914.781 \n", "random-binary-tree 16,048,192 916.002 \n", "\n", " test bits per dimension train loss (min) \\\n", "quad-graph 1.309 718.698 \n", - "quad-graph 1.313 721.132 \n", + "quad-graph 1.312 720.701 \n", "quad-tree-2 1.314 722.298 \n", "quad-graph 1.321 719.495 \n", - "quad-tree-2 1.325 728.470 \n", + "quad-tree-2 1.325 728.526 \n", "quad-tree-2 1.333 726.819 \n", - "random-binary-tree 1.661 904.106 \n", + "random-binary-tree 1.662 904.251 \n", "random-binary-tree 1.683 911.700 \n", "random-binary-tree 1.686 912.927 \n", "\n", @@ -1073,7 +1074,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.2" + "version": "3.10.12" } }, "nbformat": 4, From 59fe8c37388239698f0fc61bcf7f13afb2eb8897 Mon Sep 17 00:00:00 2001 From: loreloc Date: Sat, 12 Oct 2024 13:32:30 +0100 Subject: [PATCH 9/9] formatting --- cirkit/templates/circuit_templates/data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cirkit/templates/circuit_templates/data.py b/cirkit/templates/circuit_templates/data.py index 9b123675..fc61d792 100644 --- a/cirkit/templates/circuit_templates/data.py +++ b/cirkit/templates/circuit_templates/data.py @@ -89,7 +89,7 @@ def image_data( # Get the sum weight factory if sum_weight_param is None: - sum_weight_param = Parameterization(activation='softmax', initialization='normal') + sum_weight_param = Parameterization(activation="softmax", initialization="normal") sum_weight_factory = parameterization_to_factory(sum_weight_param) # Build and return the symbolic circuit