{ "cells": [ { "cell_type": "markdown", "id": "483c8e4b", "metadata": { "id": "483c8e4b" }, "source": [ "# Tridiagonal Matrix Systems\n", "\n", "Tridiagonal matrix systems are common in machine learning, signal processing and control. We saw an example of such systems in the previous tutorial on [total variation denoising](14_total_variation.ipynb). An $n$-by-$n$ tridiagonal system can be expressed as,\n", "\n", "$$\n", "Ax = d\n", "$$\n", "\n", "where $A$ has the form\n", "\n", "$$\n", "A = \\begin{bmatrix}\n", " b_1 & c_1 & & & 0 \\\\\n", " a_2 & b_2 & c_2 & \\phantom{\\ddots} & 0 \\\\\n", "\t\t& a_3 & b_3 & \\ddots & \\\\\n", "\t\t& & \\ddots & \\ddots & c_{n-1} \\\\\n", "\t\t0 & & & a_{n} & b_n \n", "\\end{bmatrix}\n", "$$\n", "\n", "Assuming $A$ is full rank we can obtain the solution $x = A^{-1} d$ using standard techniques such as Gaussian elimination or LU-decomposition. When the matrix $A$ is diagonally dominant or positive definite then faster techniques such as the [Thomas algorithm](https://en.wikipedia.org/wiki/Tridiagonal_matrix_algorithm) can be used. However, the Thomas algorithm is iterative so only good for single-threaded hardware or when batch sizes are large (so that each system in the batch can be solved in parallel). A more sophisticated algorithm based on [cyclic reduction](https://en.wikipedia.org/wiki/Cyclic_reduction) can be used to parallelize the solution of tridiagonal systems. This algorithm works by repeatedly eliminating odd and even rows from $A$ resulting in two independent half-size systems that can be solved in parallel, recursively applying cyclic reduction on each system.\n", "\n", "\n", "## Differentiable tridiagonal solvers\n", "\n", "Since we can write the solution in closed form, i.e., $x = A^{-1} d$, it is straightforward to derive gradients in the backward pass of a neural network containing tridiagonal systems. Let $v^T = \\frac{\\text{d} L}{\\text{d} x}$ and $w^T = v^T A^{-1}$. Then we have\n", "\n", "$$\n", "\\begin{align*}\n", "\\frac{\\text{d} L}{\\text{d} d} &= w^T \\\\\n", "\\frac{\\text{d} L}{\\text{d} b} &= -w^T \\odot x^T \\\\\n", "\\frac{\\text{d} L}{\\text{d} a} &= -w_{2:n}^T \\odot x_{1:n-1}^T \\\\\n", "\\frac{\\text{d} L}{\\text{d} c} &= -w_{1:n-1}^T \\odot x_{2:n}^T\n", "\\end{align*}\n", "$$\n", "\n", "where $\\odot$ is the Hadamard (i.e., elementwise) product. The last three expressions can be derived by recognizing that\n", "\n", "$$\n", "\\begin{align*}\n", "\\frac{\\text{d} L}{\\text{d} A_{ij}}\n", "&= \\frac{\\text{d} L}{\\text{d} x} \\frac{\\text{d} x}{\\text{d} A_{ij}} \\\\\n", "&= v^T \\frac{\\text{d} A^{-1} d}{\\text{d} A_{ij}} \\\\\n", "&= -v^T A^{-1} \\frac{\\text{d} A}{\\text{d} A_{ij}} A^{-1} d \\\\\n", "&= -w^T E_{ij} x \\\\\n", "&= -w_i x_j.\n", "\\end{align*}\n", "$$\n", "\n", "where the third line uses the identity for derivative of the inverse of a matrix. We can obtain $w$ by solving $A^T w = v$. Importantly, we can reuse any factorization of $A$ in the forward pass to reduce computational effort in the backward pass, or simply reapply a fast solution method such as the Thomas algorithm or cyclic reduction. Using the latter, the backward pass takes (approximately) the same amount of compute as the forward pass.\n" ] }, { "cell_type": "code", "execution_count": 1, "id": "14c76f1d48c205c8", "metadata": { "ExecuteTime": { "end_time": "2024-01-02T05:36:32.461475Z", "start_time": "2024-01-02T05:36:29.927092Z" }, "executionInfo": { "elapsed": 4604, "status": "ok", "timestamp": 1700025038962, "user": { "displayName": "Yiran Mao", "userId": "13786949685567971366" }, "user_tz": -600 }, "id": "14c76f1d48c205c8" }, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "import torch\n", "from torch import optim\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 2, "id": "788d42ccf471b1cf", "metadata": { "ExecuteTime": { "end_time": "2024-01-02T05:36:32.470593Z", "start_time": "2024-01-02T05:36:32.464457Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2.1.0\n", "device cpu will be used\n" ] } ], "source": [ "device = torch.device(\"cuda\") if torch.cuda.is_available() else torch.device(\"cpu\")\n", "\n", "print(torch.__version__)\n", "print(\"device {} will be used\".format(device))" ] }, { "cell_type": "markdown", "id": "2b57b73e", "metadata": {}, "source": [ "## Profiling\n", "\n", "We will use the example of [total variation denoising](14_total_variation_denoising.ipynb) to profile different implementations of tridiagonal solvers. Note that in this case the matrix $A$ is symmetric (i.e., $a = c$). Here we are only profiling the forward pass (since the backward pass for the total variation problem is a pass through operation). Since PyTorch does not provide a native implementation we have written our own version. We compare against the standard linear equation solver (`torch.linalg.solve`) and via Cholesky factorization for different batch and problem sizes. As we will see, the standard solvers (which have been heavily optimized within PyTorch) are very competitive and modern hardware when batches or problems are small. Specialized solvers excel when batches or problems get large.\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "bbb1218d8201b062", "metadata": { "ExecuteTime": { "end_time": "2024-01-02T05:36:48.020545Z", "start_time": "2024-01-02T05:36:32.472606Z" }, "colab": { "base_uri": "https://localhost:8080/", "height": 557 }, "executionInfo": { "elapsed": 4211, "status": "ok", "timestamp": 1700025046431, "user": { "displayName": "Yiran Mao", "userId": "13786949685567971366" }, "user_tz": -600 }, "id": "bbb1218d8201b062", "outputId": "b5478e3f-7558-4680-9e0b-3ddf01577ada" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[0.2988710403442383, 0.05745100975036621, 2.019347667694092, 0.08419442176818848], [0.30745482444763184, 0.28026723861694336, 2.5934691429138184, 0.13468408584594727], [3.3263895511627197, 3.040201187133789, 3.650071859359741, 0.18850922584533691], [25.522920608520508, 46.511597871780396, 2.7463231086730957, 1.296722650527954]]\n", "[[0.015673398971557617, 0.03155827522277832, 0.49911022186279297, 0.08276534080505371], [0.020987749099731445, 0.04229736328125, 1.0198423862457275, 0.08311057090759277], [0.19519853591918945, 0.0523066520690918, 2.4532077312469482, 0.09502673149108887], [0.45531129837036133, 0.1985795497894287, 6.446474313735962, 0.12085866928100586], [0.8849658966064453, 0.43800997734069824, 10.210390567779541, 0.12988996505737305]]\n", "Done.\n" ] } ], "source": [ "import time\n", "import sys\n", "sys.path.append(\"../\")\n", "\n", "from ddn.pytorch.tridiagsolve import tridiagsolve\n", "\n", "\n", "def tvsolver(x, lmd, maxiters=100, solver='linalg'):\n", " \"\"\"\n", " Pytorch solver for the 1D total variation denoising problem. Operates on a batch of inputs\n", " x of size (b, n) all with same lambda. Solver can be 'linalg', 'cholesky', 'tridiagthomas',\n", " 'tridiagcyclic'.\n", " \"\"\"\n", "\n", " # initialize u to x\n", " b, n = x.shape\n", " u = x.clone()\n", " \n", " # iterate\n", " Dx = (x[:, :-1] - x[:, 1:]).view(b, n - 1, 1)\n", " neg_ones = -1.0 * torch.ones((b, n - 2), dtype=x.dtype, device=x.device) \n", " for _ in range(maxiters):\n", " L = torch.abs(u[:, :-1] - u[:, 1:]) / lmd\n", " \n", " if solver == 'linalg':\n", " H = torch.diag_embed(L + 2.0) + torch.diag_embed(neg_ones, offset=1) + torch.diag_embed(neg_ones, offset=-1)\n", " w = torch.linalg.solve(H, Dx)\n", " elif solver == 'cholesky':\n", " H = torch.diag_embed(L + 2.0) + torch.diag_embed(neg_ones, offset=1) + torch.diag_embed(neg_ones, offset=-1)\n", " w = torch.cholesky_solve(Dx, torch.linalg.cholesky(H))\n", " elif solver == 'tridiagcyclic':\n", " w = tridiagsolve(L + 2.0, neg_ones, neg_ones, Dx, method='cyclic')\n", " elif solver == 'tridiagthomas':\n", " w = tridiagsolve(L + 2.0, neg_ones, neg_ones, Dx, method='thomas')\n", " else:\n", " print(\"Unknown method: {}\".format(solver))\n", " return x\n", " \n", " u = x.clone()\n", " u[:, 1:] += w.view(b, n - 1)\n", " u[:, :-1] -= w.view(b, n - 1)\n", " \n", " return u\n", "\n", "\n", "# experiment setup\n", "torch.manual_seed(0)\n", "methods = ['linalg', 'cholesky', 'tridiagthomas', 'tridiagcyclic']\n", "exprs = {\n", " 'by_batch' : [(1, 256), (10, 256), (100, 256), (1000, 256)],\n", " 'by_signal_length' : [(1, 64), (1, 128), (1, 256), (1, 512), (1, 1024)]\n", "}\n", "\n", "# run experiments\n", "elapsed_time = {k: [[] for j in range(len(exprs[k]))] for k in exprs}\n", "for i, k in enumerate(exprs):\n", " for j, (b, s) in enumerate(exprs[k]):\n", " # generate signal\n", " x = (torch.floor(torch.linspace(-5, 5, s)).view(1, s).repeat(b, 1) + \\\n", " 0.5 * torch.randn((b, s), dtype=torch.float32)).to(device)\n", " \n", " # find denoised signal\n", " for m in methods:\n", " print(\"profiling '{}' on input of size {}...\".format(m, (b, s)), end='\\r')\n", " # profile\n", " start = time.time()\n", " u = tvsolver(x, 10.0, 100, m)\n", " elapsed_time[k][j].append(time.time() - start)\n", "\n", " print(elapsed_time[k])\n", "\n", "print(\"Done.\")" ] }, { "cell_type": "code", "execution_count": 4, "id": "ace3f770", "metadata": {}, "outputs": [ { "data": { "image/png": "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ARh9+/ZNcR+1atUyv//0uF3hcejQIaNPnz5mIbZy5cpkt9OmTRtjypQpxrFjx8zXLTIy0vjxxx/TXLSk9nsiJibGaNy4sQH2P+J8+OGHxvnz5w3DsP8+OnLkiPH1118br7/+eqL1En7nBwQEGE5OTsbrr79uXLhwwTAMwwgLCzPeeustc/+TJ0++3cuVSGRkpPm+K168uLFx48Z0rW8YKRceqQkNDTXuvvtuAzBq1aplREVFmfMuX75slClTxgCMVq1aGStXrjTnh4aGGp988on5h5BPP/003XlFsosKD8kTbi48UvtrUuHChY3nnnsuyfqpFR6388ADDxiA8c477ySZd/PZkuQOFg3DMHr37m3+VfTatWtm/4cffmgARrt27dKVp0uXLike+Cb45JNPDMCoXr16ov7vvvvOzLt48eIk60VERBjlypXLksIjKirK+Pnnn42SJUuay9z6V+LMLDwqV65sREZGJln3119/NZc5ceJEonk3H8y1bNnSiIuLS7L+Z599ZgCGp6eneaCW3Pq3uvlAPqWDleHDhxuAUb58+STzWrdubf4F+uYDlgRLly41t58TC4/ChQsbISEhSea/+eab5jJVq1ZN9ntLOIBu3bp1knkZ+Tzczs3vp6CgoCR/+TcMw9i9e7d59uajjz5KNO/nn3823yuXL19Osu6WLVvM7W/fvj1d2W4tkm/+HZhwds/Z2dlo167dHX2ODcMwTp48abi7uxs2m804duxYkvlp+T0xadIk86/3v//+e5r3ffPv/JR+b3fu3NkAjDZt2qR5uwnee++9RGcSKleubAwaNMj46quvjM2bNyf5bN8qvYVHTEyM+RkuXrx4kjOmL730kll0pLTvH3/80QCM4ODg2+YTsYoKD8kTbv5P6HZfyf1HkJHC48svvzQA47777ksyL+E/H09PT/NMx632799vZvv111/N/q+//toAjJo1a6b5UoGLFy+af/XetWtXisuFhISY+zx79qzZ36lTJwPsl62kJCFXRgsPb29v80AoODg40eURgPG///0vybqZWXgk99dxw7AfACQcKP7xxx+J5t18MLdo0aJk1z927Ji5zO7du1Nc/1Y3H8gfOHAg2W3ffDbo5stuLl68aL5+yR3cJ2jatGmOLTxGjBiR7LqrV6++7V+uZ82aZQBGwYIFE/Vn9PNwOze/n/7v//4vxeV6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xowZdOzYkaJFixIREUF0dDR33XUXnTp1YsqUKeaj10VyIpuR8D+RiGS6/v37M336dPr163dHAxeKZKZevXoxZ84cBg4cyOTJk62OI7d49tlnmTBhAg0bNmTt2rVWxxERyXQ64yEikg/s37/f/It+wrX7knNcuXLFvG/rqaeesjiNiEjWUOEhIpJHvPXWW0yYMIHjx4+bTyqKiIjgu+++o2XLlkRFRVG5cuVkR0cW61y/fp1hw4Zx5coVSpYsmaU3lYuIWMnl9ouIiEhusH37dn755ReeffZZXF1d8fX1JTQ01CxCihcvzg8//JDqmAGSfT799FM+/fRTzp8/bz6d7ZNPPkkySKmISF6hwkNEJI944YUXKFasGGvXruXMmTNcunQJX19fKlasSMeOHRk6dGiyI2eLNUJDQzl27BgeHh7UqFGD119/nS5dulgdS0Qky+jmchERERERyXK6x0NERERERLKcCg8REREREclyKjxERERERCTLqfAQEREREZEsp8JDRERERESyXJ5+nG6RIkWIiIigVKlSVkcREREREck0x48fx9vbm7Nnz1odJc3y9BmPiIgIYmJirI4hIiIiIpKpYmJiiIiIsDpGuuTpMx4JZzp27dplcRIRERERkcxTtWpVqyOkW54+4yEiIiIiIjmDCg8REREREclyKjxERERERCTLqfAQEREREZEsp8JDRERERESynAoPERERERHJcio8REREREQky+XpcTwywjAMDMOwOoZInmGz2bDZbFbHEBEREYuo8LjBMAzCw8O5cuUKkZGRxMXFWR1JJM9xc3PD19eXoKAgnJ2drY4jIiIi2UiFBxAfH8/Zs2cJCwuzOopInhYdHc3FixeJiIigVKlSKj5ERETyERUeQFhYmFl0BAYG4uvri7u7uy4LEclE8fHxREREcO7cOaKiorh48SKFChWyOpaIiIhkExUewOXLlwEoVKgQQUFBFqcRyZucnJzw9/cH4PTp04SHh6vwEBERyUfy/VOtDMPg+vXrAPj5+VmcRiTv8/b2BuyXXekBDiIiIvmHCo+bDnx0vblI1nNycvzaUeEhIiKSf+T7wkNERERERLKeCg8REREREclyKjxERERERCTLqfCQFNlsNsqUKZOo7+jRo9hsNlq0aGFJpmnTpmGz2Rg1apQl+xcREREhLgaWfwgRIVYnyVVUeIiIiIiIpMfWGbD8fRhfA1aNtTpNrqFxPCRdihcvzp49e/Dy8rI6ioiIiEj2i46AFR/emA6HS0eszZOLqPCQdHF1daVy5cpWxxARERGxxvov4eo5+7SLB7R43do8uYgutZJ0Sekej5vvvTh+/Dg9e/akYMGCeHp6UqdOHRYuXJhkW4ZhMHfuXLp3707FihXx9vbG19eXevXq8eWXXxIfH5+ubOfPn+fxxx+ncOHCeHl5UatWLebMmWP5fSkiIiKSR0RchNXjHe36T4J/cevy5DI64yGZ6ujRo9StWxcPDw+aNGnCuXPnWLduHY888gh//vkn7dq1M5e9fv06PXv2pECBAlSpUoVatWoREhLCunXreOaZZ9i4cSPTpk1L035DQkJo1KgRhw4domTJkrRs2ZJz587Rp08fhg4dmkXfrYiIiOQrq8baL68C8PCHJs9bGie3UeEhmWr69Ok8++yzfPLJJ7i42N9e48eP5/nnn+fdd99NVHi4uLiwYMECOnbsiJubm9l/4cIFOnTowPTp0xk4cCDNmjW77X5fe+01Dh06RKdOnZg7dy7u7u4ALFmyhA4dOmTydykiIiL5zuVjsOlbR7vpi+BZwLo8uZAKjzQwDIMrUbFWx0gXPw8XbDZbtu+3bNmyjB071iw6AJ555hlGjx7N+vXriY6ONosMFxcXOnfunGQbBQsWZMyYMbRt25ZffvnltoXH1atXmT17Ni4uLowfP94sOgBat25N9+7dmTFjRiZ9hyIiIpIvLXsf4qLt037Fod4T1ubJhVR4pMGVqFiqj/7H6hjpsm1kO/w9XbN9vy1atMDVNfF+XVxcKFu2LFu2bOHixYsULVo00fz//vuPf/75h2PHjhEZGYlhGISH209jHjhw4Lb73Lp1K1FRUTRp0oSSJUsmmf/YY4+p8BAREZE7d3YnbP/O0W7xOrh6Wpcnl1LhIZmqRIkSyfb7+PgA9vs6EkRHR9O/f3/mzp2b4vYSCpDUnD59GiDZogOgVKlSt92GiIiISIqWjAYM+3TBylC9h6Vxcis91UoyVXou7/rkk0+YO3cu99xzD3/++Sfnzp0jOjoawzDYt28fYL/MLaP7Ts82RERERBI5uhoO3HTlS+uR4Ky/3d8JvWpp4OfhwraR7W6/YA7i55Hzf7Q//fQTgFl83Ozw4cNp3k7CpVvHjx9Pdv6JEyfuMKGIiIjka4YBi0Y62iUbQKX7rcuTy+X8o9McwGazWXK/RF53+fJlIPlLpL7//vs0b6dWrVq4u7uzfv16Tp48meRyr/nz52csqIiIiORPexbCqc2OdptRYMHDe/IKXWollqlYsSIAEydOTNQ/f/78dN0M7uvrS8+ePYmNjeWFF14gOjranLd8+fJU7yERERERSVZcLCx529Gu1AFKN7QuTx6gwkMs88orr+Ds7Mxrr71GnTp16NmzJ3Xr1uWxxx7jhRdeSNe2PvjgA+666y7mz59PhQoV6NGjB61bt6Z169Y88YT9cXc3jxUiIiIikqr/ZsHFG0/XtDlB67eszZMHqPAQyzRr1ozVq1fTqlUrDh8+zG+//YabmxsLFizgmWeeSde2ChUqxLp16xg4cCDXrl3j559/5uLFi0ydOpXu3bsDEBQUlBXfhoiIiOQ10ZGwbIyjXb0nFLrbujx5hM3Iw4/8qVq1KgC7du1KcZn4+HjzCUqVKlXCyUm1WF7z4Ycf8tprr/HBBx/w6quvWh0n39NnTkREcrxVYx2XWTm7w3NbwT/5IQOskpbj3JxG/+NLnrF169YkfStXruT999/HxcWFrl27WpBKREREcpXIS7D6U0e7/hM5rujIrfRUK8kzGjVqRLFixbj77rvx9vbm4MGD/Pvvv4DjHhARERGRVK0aC9ev2Kfd/aHJcGvz5CEqPCTPeP311/n999/ZsGEDYWFh+Pn50a5dO4YOHcqDDz5odTwRERHJ6UKPw8ZvHO2mL4BXoHV58hgVHpJnjBw5kpEjR95+QREREZHkLBsDcTcey+9bFOoNsTZPHqN7PEREREREzu2CbTeN/dXidXDzsi5PHqTCQ0RERERkydvAjYe9BleEGr0sjZMXqfAQERERkfzt2FrY/5ej3fotcNYdCZlNhYeIiIiI5F+GAYtuuke0RF2o3NG6PHmYCg8RERERyb/2/g4nNzrabUaDzWZdnjxMhYeIiIiI5E9xsbBktKNd4T4o09i6PHmcCg8RERERyZ+2zYGQ/TcaNmijx/JnJRUeIiIiIpL/REfax+1IUL0HFK5qXZ58QIWHiIiIiOQ/G7+G8NP2aWc3aPm6tXnyARUeIiIiIpK/RF6C1eMc7XpPQEAp6/LkEyo8JMNatGiBzWbj6NGjeWI/N5s2bRo2m41Ro0Zl2z5FREQki60eB1Fh9ml3P2j6orV58gkVHiIiIiKSf4SdhA1fO9qNh4FXoHV58hEVHiIiIiKSfywfA3HX7dM+RaDBU9bmyUdUeIiIiIhI/nB+D/w3x9Fu8Rq4eVuXJ59R4SGpOn78OEOHDqVChQp4eHgQFBREvXr1eP/997l27VqS5X/++WcaNGiAt7c3gYGB9OjRg5MnTya77cjISN555x3uuecePD098ff3p1mzZsybNy/dOS9cuMBLL71EpUqV8PDwoECBAtx///2sXLky2eU3bNhAp06dKF26NO7u7hQpUoR69erx+uuvc/Xq1TTtc+zYsTg5OVGlShVWrFiBzWajceOUBx0aPXo0NpuNd999N93fn4iIiGSCJW+DEW+fDioPNftYmyefUeEhKVq5ciXVqlXjiy++ID4+nocffpiGDRsSEhLC//3f/3Hu3LlEy3/55Zc8+uijGIZB+/bt8fHxYd68ebRq1SpJkRIeHk6zZs146623OH/+PB07dqRx48Zs3LiRHj168Pzzz6c55969e6lZsyZjx44lLi6ODh06UK1aNZYuXUrLli2ZM2dOouV///13GjVqxMKFCylTpgydO3emRo0ahISE8MEHHxASEnLbfb7xxhu89NJL1KlTh1WrVtG8eXNq167N2rVr2bVrV5Ll4+PjmTp1Ks7OzgwYMCDN35uIiIhkkuPrYd8fjnbrt8DZxbo8+ZBe7bQwDMeTD3ILD3+w2e549cuXL9OlSxfCwsIYN24cw4YNw3bT9lauXEmBAgUSrfPll1+yaNEiWrVqBdjPaLRt25a1a9cyd+5cBg4caC77xhtvsGXLFtq0acNPP/2Ej48PYC8imjdvzvjx42nXrh0dOnRINWdcXByPPfYYp06dYvz48Tz77LNmzn///Ze2bdvyxBNP0KZNGwoVKgTAxx9/jGEYbNy4kdq1ayfa3saNGwkKCkpxf/Hx8Tz11FN88803tGrVil9++cXMPmTIEJ544gkmTZrEuHHjEq33zz//cOzYMR588EGKFy+e6vckIiIimcwwYNFNo5IXrw13P2RdnnxKhUdaRIXBh6WtTpE+rx4Dz4A7Xv3bb7/lwoULdOzYMdmzD82aNUvS98ILL5hFB4CXlxcvvvgia9euZeXKlWbhERERweTJk3FycuLLL780D9wBKleuzIgRI3juuef47LPPblt4LFy4kJ07d9KjRw+ee+65RPNq1qzJm2++yfPPP8+sWbMYPnw4AOfPn8ff3z9J0QFQr169FPcVHR1N7969+eGHH+jUqRNz587F3d3dnN+zZ09eeuklZs6cyQcffJBo3qRJkwB4/PHHU/1+REREJAvs+xNOrHe0276doT/Qyp3RpVaSrMWLFwP2v+KnVbt27ZL0VaxYEYAzZ86YfVu2bOHatWvUq1ePChUqJFmnTx/79ZZr1qzBMIxU97lo0SIAHnnkkWTnN2nSBIBNmzaZfbVr1yY0NJRBgwaxc+fOVLefICIigo4dO/LDDz8wYMAAfvjhh0SFBYC3tze9evXi4sWL/PTTT2b/+fPn+fXXXylWrNhtCykRERHJZPFxsGS0o12+LZRpYl2efEyFhyTrxIkTAJQrVy7N65QoUSJJX8LZjOvXr5t9p0+fBqBMmTLJbicgIAB/f3+uXr3KlStXUt1nwmCC3bp1w2azJfmqU6cOQKL7Nt5//32qV6/OlClTuPfeeylYsCAPP/wwU6dOTZTzZp9++imLFi2iQ4cOTJ48GWdn52SXe/LJJwH7GaME06ZNIyYmhoEDB6a4noiIiGSRbXPhwt4bDRu0GZnq4pJ1dKlVWnj42y9dyk08/DNlM7Z0nIZMz7JpXf52y8TFxQFw//33m/dwJKdy5crmdMmSJdm8eTNLly7lt99+Y8WKFSxcuJBff/2Vjz76iLVr1ya5fyXhCVn//PMPCxYsoEuXLsnup1q1ajRo0IBly5Zx6NAhypUrx+TJk7HZbAwaNOi236+IiIhkophrsOx9R7taNyhyr3V58jkVHmlhs2XofoncqGTJkuzdu5eDBw8mOmjPDMWKFQPgyJEjyc4PCwsjLCwMb29vfH19U91WwlmWJ598koceSvtNYi4uLrRr1868POz48eMMGDCApUuX8sEHH/Dhhx8mWr5WrVr83//9H+3ataNHjx44OzvTqVOnZLf95JNPsn79eiZPnsx9993H/v37adeuXYpneERERCSLbPwWrpyyTzu7Qcs3rM2Tz+lSK0lWmzZtAPjmm28yfdu1a9fG09OTjRs3cuDAgSTzZ82aBdjvz7jdGY+EnD///HOGMpUqVYpXX30VgB07diS7TP369fn777/x9PSkW7du/Prrr8ku17VrVwoUKMC0adP46quvAN1ULiIiku2uXYZVYx3tuoOhQC57WFAeo8JDkjV48GCCg4NZuHAhEyZMSHKT96pVqwgLu7NHDHt7ezNw4EDi4+N55plniIiIMOft37/fHGDv2Wefve22unTpQuXKlZk2bRoffvghMTExieZHR0fz448/Jiomxo0bl2QMEoC//voLsBchKWnQoAF//fUX7u7uPPbYY/z+++9JlvH09KRv376cOXOG7777zryHRERERLLR6k8hKtQ+7eYLTV+yMo2gwkNSEBgYyPfff4+vry/PPvssFSpUoFu3bjz44IOULVuWZs2acfny5Tve/pgxY6hduzaLFi2ibNmydO3alQceeIDq1atz9uxZnnvuOR544IHbbsfFxYWffvqJkiVL8tprr1G6dGnat29P165dadiwIYULF+bRRx/l0KFD5jqjR4+mWLFi1KpVi27dutG1a1cqV67MuHHjCA4O5uWXX051n40aNeLPP//Ezc2NRx991CxYbnbz08D69++Pq6trOl4dERERyZArp2HDREe78TDwTnmcLskeKjwkRS1btuS///7jiSeeIDY2lp9//pn169dTqFAhxowZQ5EiRe54276+vqxYsYLRo0cTHBzMr7/+yqpVq6hTpw5z5sxh/Pjxad5W5cqV+e+//xg1ahSFChVi9erV/P7771y4cIFmzZoxdepU85IsgM8//5zu3bsTGRnJn3/+yV9//YWzszMvvfQS27dvT9OTvJo0acLvv/+Oi4sLnTp1Mh/rm+Duu+8272UZPHhwmr8XERERyQTLx0BslH3auxA0fNraPAKAzbjdQAm5WNWqVQHYtWtXisvEx8ezb98+ACpVqoSTk2oxybi1a9fSuHFjmjdvzvLly62Ok6PoMyciIlnqwj74sgEY8fb2A59A3bz3ZMm0HOfmNPofXyQLvP++/dF9Q4cOtTiJiIhIPrPkbUfREVgOavW1No+Y9DhdkUyydu1aJk+ezM6dO9m4cSO1a9emc+fOVscSERHJP05shL2/Odqt3wRn3WeZU6jwEMkk+/fvZ8qUKfj6+vLggw8yYcIEXUYkIiKSXQwDFt00KnmxWlDlEcviSFIqPEQySf/+/enfv7/VMURERPKnA//A8bWOdptR9kGgJcfQn2NFREREJHeLj4PFoxztcq2hbHPL4kjysqTwuHTpEoUKFcJms1G5cuVUl50xYwb16tXDx8eHwMBAOnTowNq1a1NdR0RERETEtP07OL/b0W4zyrIokrIsKTyGDx9OSEhImpbr168fO3fupE2bNtSrV49FixbRrFkzfvrpp6yIJiIiIiJ5SUwULHvf0b73MShazbo8kqJMLzyWLFnC9OnTefzxx1NdbunSpYwbN46goCC2bdvGzz//zF9//cXKlStxdnZmwIABGRoZW0RERETygU2TIOyEfdrJFVr+n7V5JEWZWnhcu3aNJ598kipVqvDSSy+luuzYsWMBGDFiBBUqVDD7GzZsyJNPPklYWBhTpkzJzHgiIiIikpdEhcGq/znadQdB4F3W5ZFUZWrhMXr0aA4dOsRXX32Fq2vKz0yOiopiyZIlAHTp0iXJ/IS+hQsXZmY8EREREclL1oyHazeukHHzgaap/+FbrJVphcf27dsZO3YsAwYMoFmzZqkuu3fvXq5fv07BggUpUaJEkvm1atUytykiIiIiksSVM7DuS0e70XPgU9C6PHJbmVJ4xMfH8/jjjxMQEMBHH3102+WPHz8OkGzRAeDt7U1AQACXL18mPDw8MyKKiIiISF6y4gOIvWaf9i4IDZ+xNo/cVqYMIPj555+zceNGpk6dSlBQ0G2Xv3r1KgBeXl4pLuPt7U1oaChXr17F19c31e1VrVo12f5Dhw5Rrly52+YRERERkVwk5ABsneloN38V3H2syyNpkuEzHidOnGDEiBE0b948zaM2G4YBgC2V0SQTlpHca/ny5dhstnSP5m2z2ShTpkymbCu7jBo1CpvNxrRp06yOIiIikvcteRuMOPt0gbugVj9r80iaZLjwePrpp4mOjuarr75K8zoJZzAiIiJSXCYyMhIAH5/bV6+7du1K9ktnOzLm6NGj2Gw2WrRoYXUUy/Xv3x+bzcby5cutjiIiIpK/ndwMe351tFu/CS5u1uWRNMvwpVa//fYbAQEBPPXUU4n6o6KiAPv9HAkHrr/99hs+Pj6UKlUKgJMnTya7zYiICEJDQwkICLjtZVaSc9WrV489e/bg7++fo7YlIiIiuZRhwKKRjnbR6lClk3V5JF0y5R6P0NBQVqxYkey8a9eumfNiY2MBqFSpEu7u7ly4cIGTJ08mucl869atAFSrplEnczMvLy8qV66c47YlIiIiudTBxXBstaPdZjQ4Zfp42JJFMvyTMgwj2a8jR44A9iIjoS8gIAAAT09PWrVqBcD8+fOTbDOhr2PHjhmNJ3do1KhR3HWXfQCeFStWYLPZzK+E+ywS7sWIjo7m7bffpnLlyri7u/PII48Aqd+XERERwauvvkqpUqXw8PCgcuXKfPLJJyne25PStkJDQ/n888+57777KF26NO7u7gQFBdG+fXsWLVqU4vd3+PBhunbtSmBgID4+PjRp0oS///472f3YbDamT58OQMuWLRO9FkePHk2y7R07dvDQQw9RoEABvL29ad68OWvXrk0xy8yZM2nSpAl+fn54eXlRrVo1xowZY541vNnNl3wtXryY5s2b4+vrS6FChXj88ccJCwsD4Pz58wwZMoRixYrh4eFBvXr1kr1MLCoqismTJ/Pwww9TtmxZPD09CQgIoFmzZsybNy/ZvDExMXz99dfUq1eP4OBgvLy8KFOmDB07dkxxHRERkQyLj4fFoxztsi2hXEvL4kj6ZcoZjzsxfPhw/vzzT959910eeOABc/TydevW8fXXX+Pn58egQYOsipfv1ahRg0cffZQFCxZQuHBh2rdvb85r0qSJOR0fH88jjzzCypUrad68OdWqVbvtk82uX79Ou3btWLt2LcHBwTz44IOEh4fz2muvcejQoXTlXL9+Pc899xwlS5akYsWKNGzYkOPHj/PPP//wzz//MGnSJAYOHJhonQMHDtCoUSNCQkKoVKkSNWvW5OjRo3To0IGnn346yT769evH6tWrOXToEPfddx9FihQx5916D9LmzZt55plnKFGiBK1bt+bgwYOsXLmS1q1bs2nTJu65555Eyw8ZMoRvvvkGDw8PWrVqhZeXF8uXL+eNN95g4cKFLFmyBE9PzySZfvrpJyZMmEDNmjVp164dGzduZNKkSRw4cID58+fTsGFDoqKiqF+/PmfOnGHDhg20b9+eTZs2ce+995rbOXr0KIMHD6Zw4cJUrlyZevXqcfbsWdauXcuqVavYu3cvo0aNSrTvPn368N133xEcHEyjRo3w8vLi1KlTrFq1iqtXr9K9e/c0//xERETSbMcPcG6no91mlGVR5A4ZWeTIkSMGYFSqVCnFZYYNG2YAhpeXl/Hwww8b999/v+Hi4mI4OTkZ8+fPz3CGKlWqGFWqVEl1mbi4OGP37t3G7t27jbi4uAzvMy9J+Bk2b9482fmAARjly5c3Tp48mWT+smXLDMDo169fov7333/fAIx69eoZoaGhZv+WLVsMPz8/AzBKly6dpm0dPnzYWLNmTZJ9b9261QgICDD8/PyM8PDw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RXHfl79yqu8+9d4rqu++oQCqllfVzw+lvfvbI4/a/uy2n9a8CqC2l4f7NrdjKYrSNqwGvnm04TaKtm8/f8S1Z1eSV173Mj7/ttDJq/fv75U3UD3cNrvO0bse3nkD1dl1foHq7K/uOnkD1cNfnX3KBKiz7uftVo9g8/mct3v+YPNFar86+QLkb38Zzv128fh+8ivB5nOrBxERdT9RCzxSUlIAAPX19brptrZJbNoSu4H4m83vryfkcsh67fOoHZuIiIiIKNZEbcZVfn4+AOD8+fO66dp2LR8REREREcWvqAUe1157LQDg4MGDuuna9pEjR162OhERERERUWRELfAYP348UlNTUVhYiEOHDvmkv/HGGwCA22677XJXjYiIiIiIwixqgYfZbMbKlSsBACtXrvSY67Fx40YcOXIEEyZMwPXXXx+tKhIRERERUZhEbXI5APziF7/A7t27sW/fPlx11VWYOHEizpw5g7/85S9IT0/HSy+9FM3qERERERFRmET1dp4JCQn46KOPsG7dOiQmJuLNN9/E6dOnceedd+LQoUMYNGhQNKtHRERERERhoki83zAjAG05XX/L7RIRERERxaN4vM6Nao8HERERERFdGRh4EBERERFRxDHwICIiIiKiiGPgQUREREREEcfAg4iIiIiIIo6BBxERERERRRwDDyIiIiIiijgGHkREREREFHEMPIiIiIiIKOIYeBARERERUcQpIiLRrkSkpKSkwG63o6CgINpVISIiIiIKm8LCQphMJtTW1ka7KkHr1j0eSUlJMJlMUTt+YWEhCgsLo3Z8ou6CbYkofNieiMIj2m3JZDIhKSkpasfvjG7d4xFtw4YNAwAcO3YsyjUhim9sS0Thw/ZEFB5sS6Hr1j0eREREREQUGxh4EBERERFRxDHwICIiIiKiiGPgQUREREREEcfAg4iIiIiIIo6rWhERERERUcSxx4OIiIiIiCKOgQcREREREUUcAw8iIiIiIoo4Bh5ERERERBRxDDyIiIiIiCjiGHgQEREREVHEMfAgIiIiIqKI61aBx+OPPw6DwYC//e1vHttPnDiBTZs2YenSpRg4cCAURYGiKCgpKQnr8c+cOYP/+I//wMyZMzFw4EBYLBZkZGRg+vTpePvtt/2W69+/v6tOeo/jx4/7LVtTU4NHH30Uw4cPR1JSElJTUzF8+HD84z/+I+rq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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# plot results by batch\n", "\n", "plt.figure(figsize=(6, 4), dpi=150)\n", "plt.plot(elapsed_time['by_batch'])\n", "plt.gca().set_xticks(range(len(exprs['by_batch'])))\n", "plt.gca().set_xticklabels(exprs['by_batch'])\n", "plt.title('Elapsed Running Time by Batch Size')\n", "plt.legend(methods)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 5, "id": "2b590bc0", "metadata": {}, "outputs": [ { "data": { "image/png": "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iq+JEye6hkjVqyv861//cp0TCXgOec6cORP5+fnQ6/UwGAw+191Xvf32267nKSkpmDdvHqZMmYK5c+fio48+Qnp6Os6cOYO8vDxUVVVh4MCBmp3ICxcu4IcffkDnzp0DXuqVghMpsTdy5EicPn0azZs3R0FBgeb/vnPnzh6XBM7Ly8OcOXPQrl07pKWloXnz5igqKsKuXbtgtVqRmZmJuXPn+mwnKysLTz75JObPn49u3brh9ttvh4jg22+/RVlZGQYMGKB5l2rGXuhESty99dZbeOihh9C5c2ekpqYiOjoaP//8M/bv3w8AmDZtmuYBueXLl2P58uUA4Jpsf+TIEY/5OkuXLnWdDfD5559j8eLFABx38Z02bZpme5555hmfCa2Mu7qLlPgC6v6bCgD//Oc/kZ+fj9WrV6Nz5864+eabUVhYiH379iEtLc1nlL8h8VVf27dvh16vb9Bppi7ShJWXl0tiYqJ06dJFszwnJ0cABHzMnj3bY501a9YIABk7dmyd23PixAl55JFHpHXr1mI0GqVly5YyatQo2bdvX9DbUNuclZXlt87YsWMFgBQUFNS5jRS8SIqvzMzMWvfl7oEHHqi1vr+vh5ycHBk6dKgkJyeLwWCQhIQE6dmzpyxZskSsVqvmOu+8844AkPnz59fpfZG2SIm9du3a1bqfzMxMj3V27twpY8eOleuvv16uvPJKMRgM0qxZM+nTp4+8+eabfmNI9cEHH0ivXr0kLi5OzGazpKeny6JFi8RisWjWZ+yFTqTE3XvvvSfDhw+Xjh07SkJCghiNRrn66qtl2LBh8tVXX/ldb/bs2bW2Lycnx1V/xYoVQX1Puq+jYtzVXaTEl0jdf1NVZ8+elcmTJ0ubNm0kKipK2rRpI5MmTZIzZ8741G1IfAVqc15enmb5kSNHRFEUGTx4cNCfQyBNOoEQEZk6dWpIO9OTJ08Wo9EoRUVFIdleqJWXl0tSUpL06NEj3E25LFxu8VVfd911l8TExMjvv/8e7qY0GYy94DD2QotxFxzGXf0wvhrPiy++KABkw4YNIdlek08gTp06JXFxcTJixIiQbO+6666Thx9+OCTbagwLFiwQALJly5ZwN+WycLnFV30UFBQIAJk1a1a4m9KkMPZqx9gLPcZd7Rh39cf4ahzl5eWSnJwsGRkZIdtmk08gRETmzJkjOp1OCgsLw92URqUGyIABA8LdlMvK5RJf9XX33XdLixYtpLS0NNxNaXIYe4Ex9hoH4y4wxl3DML5Cb+HChQJAvvvuu5BtUxEJ8v7aRERERER02WvSl3ElIiIiIqLQYgJBRERERERBYwJBRERERERBYwJBRERERERBYwJBRERERERBYwJBRERERERBYwJBRERERERBYwJBRERERERBYwJBRERERERBYwJBRERERERBYwJBRERERERBYwJBRERERERBYwJBRERERERBYwJBRERERERBYwJBRERERERB+3+iBCBtpWbAtwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# plot results by signal length\n", "\n", "plt.figure(figsize=(6, 4), dpi=150)\n", "plt.plot(elapsed_time['by_signal_length'])\n", "plt.gca().set_xticks(range(len(exprs['by_signal_length'])))\n", "plt.gca().set_xticklabels(exprs['by_signal_length'])\n", "plt.title('Elapsed Running Time by Signal Length')\n", "plt.legend(methods)\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "4e3ac1b5", "metadata": {}, "source": [ "## Learning Example\n", "\n", "Let's now demonstrate how to use our differentiable tridiagonal solver, implemented in `TriDiagSolveFcn`, to learn the parameters of a tridiagonal matrix. We will initialize the parameters of the matrix and righthand side randomly. We'll then learn $a$ and $c$ such that the solution $Ax = d$ gives $x = 1_n$." ] }, { "cell_type": "code", "execution_count": 6, "id": "f214ace9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " a_initial: tensor([-0.2577, -0.0752, -0.3647, -0.1889, -0.9270, -0.2033, -0.3066])\n", " c_initial: tensor([-0.5082, -0.1552, -0.2035, -0.2370, -0.0803, -0.0464, -0.3889])\n", " x_initial: tensor([0.2840, 0.3946, 0.2905, 0.3417, 0.4354, 0.4891, 0.4016, 0.4642])\n", " a_final: tensor([-0.7688, -0.8491, -0.9494, -0.7388, -1.1895, -0.7244, -1.1993])\n", " c_final: tensor([-1.8452, -0.7186, -0.7440, -0.7861, -0.6422, -0.4729, -0.9389])\n", " x_final: tensor([0.9965, 1.0009, 1.0013, 1.0030, 1.0018, 1.0013, 0.9996, 0.9985])\n", "A_final @ x_target: tensor([0.4653, 0.7679, 0.5128, 0.5767, 0.8791, 0.7630, 0.6491, 0.8140])\n", " A_final @ x_final: tensor([0.4556, 0.7718, 0.5125, 0.5810, 0.8802, 0.7641, 0.6486, 0.8115])\n", " d_true: tensor([0.4556, 0.7718, 0.5125, 0.5810, 0.8802, 0.7641, 0.6486, 0.8115])\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzAAAAIqCAYAAAD7Mq9SAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAABcSAAAXEgFnn9JSAABtdklEQVR4nO3deXhU5cH+8XuyTjYSsrCEgIQQjIBBNpFNUayogKCidWtR7PJKsSi2KlVfXOpSKyhFrT+rUK1LgQAqoG8VZW0grIKAgIbNSIAkJCH7en5/hJnMmAnZJpmc5Pu5rlzMPGd7TuYoc/NsFsMwDAEAAACACXh5ugIAAAAAUF8EGAAAAACmQYABAAAAYBoEGAAAAACmQYABAAAAYBoEGAAAAACmQYABAAAAYBoEGAAAAACmQYABAAAAYBoEGAAAAACmQYABAAAAYBoEGAAAAACm4ePpCqB2Xbp0UUFBgXr06OHpqgAAAABuc/z4cQUFBenkyZMNPpYWmFasoKBAZWVlnq4GAAAA4FZlZWUqKCho1LG0wLRitpaXffv2ebgmAAAAgPv069ev0cfSAgMAAADANAgwAAAAAEyDAAMAAADANAgwAAAAAEyDAAMAAADANAgwAAAAAEyDAAMAAADANAgwAAAAAEyDAAMAAADANAgwAAAAAEyDAAMAAADANAgwAAAAAEyDAAMAAADANAgwAAAAAEyDAAMAAADANAgwAAAAAEyDAAMAAADANHw8XQG0TimHs7TvxFmdyCnSVQmdNKJ3pKerBAAAABBg4NoHW4/r469PSJKC/H0IMAAAAGgV6EIGl7qGBthfp+cWebAmAAAAQDUCDFzqFma1vz6RU+zBmgAAAADVCDBwKTqsugXmRA4tMAAAAGgdCDBwybEL2YncIhmG4cHaAAAAAFUIMHCpm0MLTHFZpbILyzxYGwAAAKAKAQYudQjwUaCft/093cgAAADQGhBg4JLFYmEcDAAAAFodAgxqRYABAABAa0OAQa2iQ6unUk7PZSplAAAAeB4BBrVybIH5kRYYAAAAtAIEGNSKLmQAAABobQgwqBVdyAAAANDaEGBQK8cWmFNni1VWUenB2gAAAAAEGJxHF4cWmEqjKsQAAAAAnkSAQa2svt6KDPazv6cbGQAAADyNAIPzYiA/AAAAWhMCDM6rq0M3shM5tMAAAADAswgwOC9aYAAAANCaEGBwXt0IMAAAAGhFCDA4r66hDgGGQfwAAADwMAIMzis6zHEMDC0wAAAA8CwCDM7LcQxMblGZCkrKPVgbAAAAtHcEGJxXVLC/fL0t9vfpubTCAAAAwHMIMDgvLy+LujhMpfwjUykDAADAgwgwqJPjQP50xsEAAADAgwgwqBNTKQMAAKC1MHWAKS4u1pw5c9SnTx9ZrVZFR0dr2rRpSktLq/c5ysvL9eSTT2r8+PHq1auXQkJCZLVaFR8fr9/97nc6fvy4y+PuvvtuWSyWWn/eeOMNd92mxznOREYXMgAAAHiSj6cr0FjFxcUaO3askpOT1bVrV02aNElHjx7VokWLtGrVKm3evFlxcXH1Os9TTz2l4OBgJSYmavDgwSotLdXXX3+t119/Xe+//76++uorDRo0yOXx48aNU5cuXWqUX3jhhU2+x9bCqQsZg/gBAADgQaYNMM8995ySk5M1fPhwff755woODpYkzZs3Tw899JCmTZum9evX13keq9WqTZs2adiwYfLxqf51VFRU6IknntDzzz+v6dOna8uWLS6Pf/TRRzVmzBi33FNrRRcyAAAAtBam7EJWVlamBQsWSJJee+01e3iRpFmzZikxMVEbNmzQjh076jyXj4+PRo4c6RReJMnb21tPP/20rFarUlJSVFBQ4N6bMJGujotZ5hbLMAwP1gYAAADtmSkDzKZNm5STk6O4uDgNHDiwxvYpU6ZIklauXNmk61gsFnl5ecnLy6tGwGlPHBezLC2vVFZBqQdrAwAAgPbMlN/Kd+/eLUm1jkuxldv2awzDMPTCCy+osLBQV199tfz9/V3ut3z5ci1btkwVFRWKjY3VxIkTlZCQ0OjrtkYdrL4K8fdRXkm5pKpuZJHBrn8fAAAAQHMyZYCxzQwWExPjcrutvLYZxGrzyCOP6NSpUzp79qz27Nmj1NRUJSQk6M0336z1GFtXNsdz3HfffZo/f369W2369evnsjw1NbVeExG0hK5hVuWdypckncgpVqLrXz0AAADQrEwZYPLzq75IBwYGutweFBTktF99LVu2TKmpqfb3/fv31/vvv6/Y2Nga+w4cOFDDhw/XVVddpZiYGJ08eVKfffaZHn/8cb3++uvy8/PTyy+/3KDrt2bRYQE6ZA8wDOQHAACAZ5gywNgGkVsslvNub6jvv/9ekpSZmakdO3boscce0+DBg/XWW29p6tSpTvvOnDnT6X1sbKymT5+uyy+/XIMHD9aCBQs0a9Ysde/evc7r7tu3z2V5bS0znhDNTGQAAABoBUw5iD8kJESSap0ZrLCwUJKcZidriMjISI0bN05ffvmloqOjdd999+mHH36o17H9+/fXDTfcoIqKCq1Zs6ZR12+NokOrZyJLz2UxSwAAAHiGKQNMjx49JElpaWkut9vKbfs1VmhoqCZMmKCioiJ98cUX9T4uPj5ekpSent6k67cmji0wP9ICAwAAAA8xZYAZMGCAJGnnzp0ut9vKExMTm3ytyMhISVJGRka9j8nOzpbU+Bag1qhrKF3IAAAA4HmmDDAjR45UaGioUlNTtWvXrhrbk5KSJEkTJkxo8rXWr18vSfWeDaykpESrV6+WJA0ePLjJ128tujm0wGTkl6i0vNKDtQEAAEB7ZcoA4+fnpxkzZkiSZsyY4TQWZt68edqzZ49GjRqloUOH2stfffVVJSQkaPbs2U7n+uSTT/TZZ5/VGPhfWFioxx57TOvXr1eXLl107bXX2rcdPHhQH3/8sSoqKpyOycjI0G233aYffvhBAwYM0IgRI9x2z57WOdRftjkTDEM6dZZxMAAAAGh5ppyFTJIef/xxrVmzRsnJyYqPj9fo0aN17NgxpaSkKCIiQosWLXLaPzMzUwcPHqwxLmXnzp166qmnFB0drYEDByo0NFQnT57U119/rTNnzig0NFRLlixx6g6Wnp6uyZMnKyIiQgkJCerWrZtOnz6tHTt2KC8vTzExMVqyZEmts6SZkb+PtyKD/ZWRVyKpahxM93DX01gDAAAAzcW0AcZqtWrt2rV6/vnn9cEHH+ijjz5Sx44dNXXqVD3zzDP1mr5Ykm666Sbl5eVp48aN2rZtm86cOaOAgAD17t1bv/3tb3X//fera9euTsf06dNHDzzwgLZs2aLU1FRt3bpV/v7+6tOnjyZOnKiZM2eqY8eOzXHbHhUdFmAPMOm5jIMBAABAy7MYjV00Bc3Otg5MbevEtLTp7+/Qp9+clCT9cdyF+t2VvT1cIwAAAJhRU77nmnIMDDyDmcgAAADgaQQY1JvjWjAEGAAAAHgCAQb1Fh1qtb8+kcMsZAAAAGh5BBjUm1MLDIP4AQAA4AEEGNSbY4DJKy7X2eIyD9YGAAAA7REBBvUWEeQnP+/qRyadbmQAAABoYQQY1JuXl0VdwxzGwdCNDAAAAC2MAIMGiWYqZQAAAHgQAQYN4tgCQxcyAAAAtDQCDBqkG2vBAAAAwIMIMGiQrg5dyH4kwAAAAKCFEWDQINGOXchy6UIGAACAlkWAQYM4rgWTnlskwzA8WBsAAAC0NwQYNEjnDtUtMGUVhrILWcwSAAAALYcAgwbpYPWR1bf6sTmdRzcyAAAAtBwCDBrEYrGoU0h1K8ypsyUerA0AAADaGwIMGqxzB3/761NnaYEBAABAyyHAoME6OYyDOU2AAQAAQAsiwKDBOtOFDAAAAB5CgEGDdXLoQsYgfgAAALQkAgwazHkMDC0wAAAAaDkEGDSYYxcyxsAAAACgJRFg0GBOg/jzSlRZaXiwNgAAAGhPCDBoMMcxMOWVhrILSz1YGwAAALQnBBg0WIi/jwJ8ve3vGQcDAACAlkKAQYNZLBbngfzMRAYAAIAWQoBBo7CYJQAAADyBAING6RTisBYMXcgAAADQQggwaJTODi0wdCEDAABASyHAoFFYzBIAAACeQIBBo3RmDAwAAAA8gACDRolyHAOTRwsMAAAAWgYBBo3i1AKTV6LKSsODtQEAAEB7QYBBozgGmIpKQ1kFpR6sDQAAANoLAgwaJdjfR0F+3vb3pxgHAwAAgBZAgEGjOS1myVTKAAAAaAEEGDQai1kCAACgpRFg0GhOi1kSYAAAANACCDBoNKfFLOlCBgAAgBZg6gBTXFysOXPmqE+fPrJarYqOjta0adOUlpZW73OUl5frySef1Pjx49WrVy+FhITIarUqPj5ev/vd73T8+PFaj62srNQrr7yiiy++WAEBAYqKitItt9yi/fv3u+P2Wr1OISxmCQAAgJZlMQzDlAt4FBcXa+zYsUpOTlbXrl01evRoHT16VFu3blVUVJQ2b96suLi4Os+Tn5+vkJAQBQcHKzExUdHR0SotLdXXX3+t48ePKzQ0VF999ZUGDRrkdJxhGLr11luVlJSksLAwjR07VpmZmdqwYYOsVqvWrl2rYcOGNeke+/XrJ0nat29fk87TXD7++kfN/PfXkqTEmFB9MmOUZysEAAAAU2jK91zTtsA899xzSk5O1vDhw3Xo0CEtXrxYKSkpmjt3rjIyMjRt2rR6ncdqtWrTpk3Kzs7Wf//7Xy1dulQff/yxDh8+rNmzZys3N1fTp0+vcdyiRYuUlJSk+Ph4HThwQElJSVq3bp2WLl2qoqIi3XnnnSovL3f3bbcqzmNgaIEBAABA8zNlC0xZWZk6deqknJwc7dy5UwMHDnTaPmDAAO3Zs0fbt2/X4MGDG32d8vJyhYSEqLi4WPn5+QoKCrJv69evn/bv368VK1Zo8uTJTsdNmjRJn3zyiZKSknTzzTc3+vqtvQXmSGaBrnxpnSTJyyJ99+z18vayeLZSAAAAaPXaXQvMpk2blJOTo7i4uBrhRZKmTJkiSVq5cmWTrmOxWOTl5SUvLy/5+PjYy48cOaL9+/crICBA48ePb7brt3aO0yhXGlJWPjORAQAAoHmZMsDs3r1bkmqMS7Gxldv2awzDMPTCCy+osLBQV111lfz9q7+s287bv39/+fr6Nsv1zSDI30fB/tXB7nQeAQYAAADNy6fuXVof28xgMTExLrfbys83g5grjzzyiE6dOqWzZ89qz549Sk1NVUJCgt58881mvb6tCe2nUlNT6zURgSd16uCv/IyqsT6nzharf7dQD9cIAAAAbZkpA0x+fr4kKTAw0OV221gV2371tWzZMqWmptrf9+/fX++//75iY2Nb5Ppm1DnEqsMZBZJYzBIAAADNz5QBxjbvgMXiesB4Y+cl+P777yVJmZmZ2rFjhx577DENHjxYb731lqZOnVrv6zdUbYOXamuZaU06OS5myUxkAAAAaGamHAMTEhIiSSooKHC5vbCwUJIUHBzcqPNHRkZq3Lhx+vLLLxUdHa377rtPP/zwQ72vbytv7PXNxHEqZcbAAAAAoLmZMsD06NFDkpSWluZyu63ctl9jhYaGasKECSoqKtIXX3zR4tc3A8eZyE7TAgMAAIBmZsoAM2DAAEnSzp07XW63lScmJjb5WpGRkZKkjIyMGtffu3evysrKmvX6rZ3TYpZ5BBgAAAA0L1MGmJEjRyo0NFSpqanatWtXje1JSUmSpAkTJjT5WuvXr5ckp9nAYmNjddFFF6moqEirV69u1uu3do4tMAziBwAAQHMzZYDx8/PTjBkzJEkzZsxwGosyb9487dmzR6NGjdLQoUPt5a+++qoSEhI0e/Zsp3N98skn+uyzz2oM/C8sLNRjjz2m9evXq0uXLrr22mudts+aNUuS9PDDD+v06dP28uXLl+uTTz5RbGysJk+e7Jb7bc0cW2Cy8ktUXlHpwdoAAACgrTPlLGSS9Pjjj2vNmjVKTk5WfHy8Ro8erWPHjiklJUURERFatGiR0/6ZmZk6ePCg0tPTncp37typp556StHR0Ro4cKBCQ0N18uRJff311zpz5oxCQ0O1ZMmSGgPyp02bpk8//VQrVqxQQkKCxo4dq8zMTK1fv15Wq1Xvvfeey0Uu2xrHWcgqDSmroNQp1AAAAADuZMoWGEmyWq1au3atnnjiCQUGBuqjjz7S0aNHNXXqVO3atUu9e/eu13luuukmzZo1S926ddO2bdu0ZMkSbdu2TRdccIFmz56tb7/9VqNHj65xnJeXl5YuXaq5c+cqOjpaq1at0jfffKMbb7xR27dv14gRI9x9y61SoJ+PQqzVOZiplAEAANCcLEZjF01Bs7OtA1PbOjGtxdi565R6bjHLf/xyiH7Wt7OHawQAAIDWrCnfc03bAoPWw2kmMlpgAAAA0IwIMGgyFrMEAABASyHAoMkcB/KzmCUAAACaEwEGTdYphC5kAAAAaBkEGDRZ5w4sZgkAAICWQYBBkzEGBgAAAC2FAIMm6+zQhSyroERlFZUerA0AAADaMgIMmsxxEL9hSJn5tMIAAACgeRBg0GRWX291sPrY3zMOBgAAAM2FAAO3cBoHw0xkAAAAaCYEGLiFY4A5xUB+AAAANBMCDNyiUwiLWQIAAKD5EWDgFp06sJglAAAAmh8BBm7huJgla8EAAACguRBg4BZOY2CYhQwAAADNhAADt2AMDAAAAFoCAQZu4dgCk1VQqtLySg/WBgAAAG0VAQZuEeXQAiNJGfl0IwMAAID7EWDgFlZfb4UF+trf040MAAAAzYEAA7dxHAfDVMoAAABoDgQYuE2nkOpxMBn5pR6sCQAAANoqAgzcJjLYz/46k7VgAAAA0AwIMHCbiODqLmRZBQQYAAAAuB8BBm4T6RBgMvPoQgYAAAD3I8DAbSIcu5AxjTIAAACaAQEGbhPl1IWMFhgAAAC4HwEGbhPBIH4AAAA0MwIM3MZxDExeSbmKyyo8WBsAAAC0RQQYuI1jC4xENzIAAAC4HwEGbuPv460Qq4/9fRYD+QEAAOBmBBi4leNAfmYiAwAAgLsRYOBWzgP56UIGAAAA9yLAwK2cFrMsoAUGAAAA7kWAgVvRAgMAAIDmRICBW0U6LWZJCwwAAADciwADt4pkED8AAACaEQEGbhXp0IUsK58uZAAAAHAvAgzcihYYAAAANCdTB5ji4mLNmTNHffr0kdVqVXR0tKZNm6a0tLR6nyMnJ0cffPCB7rjjDvXt21dBQUEKCQnRsGHDNH/+fJWVlbk87u6775bFYqn154033nDXbZpKhEOAOVNQqopKw4O1AQAAQFvjU/curVNxcbHGjh2r5ORkde3aVZMmTdLRo0e1aNEirVq1Sps3b1ZcXFyd53nppZf07LPPysvLSwMHDtTEiROVkZGh//73v9q6dauSkpL0n//8R4GBgS6PHzdunLp06VKj/MILL2zyPZqRYxeySkPKLix1apUBAAAAmsK0Aea5555TcnKyhg8frs8//1zBwcGSpHnz5umhhx7StGnTtH79+jrPExwcrD/96U+aPn26unXrZi//7rvvdPXVV2vTpk3685//rOeee87l8Y8++qjGjBnjlntqC4L9feTn46XS8kpJVd3ICDAAAABwF1N2ISsrK9OCBQskSa+99po9vEjSrFmzlJiYqA0bNmjHjh11nuvRRx/Vs88+6xReJCk+Pl4vvPCCJOnDDz90Y+3bNovFoijHqZQZyA8AAAA3MmWA2bRpk3JychQXF6eBAwfW2D5lyhRJ0sqVK5t0nQEDBkiSTpw40aTztDeO3cgYyA8AAAB3MmUXst27d0uSBg0a5HK7rdy2X2MdPnxYklyOcbFZvny5li1bpoqKCsXGxmrixIlKSEho0nXNLsJpJjJaYAAAAOA+pgwwx48flyTFxMS43G4rt+3XWPPnz5ckTZo0qdZ9bF3ZbB555BHdd999mj9/vnx86vfr7devn8vy1NTUek1E0NrQAgMAAIDmYsouZPn5+ZJU68xgQUFBTvs1xhtvvKE1a9YoLCxMjz76aI3tAwcO1BtvvKFDhw6psLBQhw8f1muvvaawsDC9/vrr+uMf/9joa5udUwtMHgEGAAAA7mPKFhjDqFpbxGKxnHd7Y61fv14zZ86UxWLRwoULFR0dXWOfmTNnOr2PjY3V9OnTdfnll2vw4MFasGCBZs2ape7du9d5vX379rksr61lprVznHUsq4AuZAAAAHAfU7bAhISESJIKCgpcbi8sLJQkp9nJ6mvPnj2aPHmySktLNX/+fN14440NOr5///664YYbVFFRoTVr1jT4+m0BXcgAAADQXEwZYHr06CFJSktLc7ndVm7br75SU1M1btw45eTk6Mknn9T999/fqPrFx8dLktLT0xt1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QH5mIgMAADAfH09XoLGKi4s1duxYJScnq2vXrpo0aZKOHj2qRYsWadWqVdq8ebPi4uLqda6srCwNHz5c3333nXr16qXJkydr3759+tvf/qZPP/1UW7ZsUUREhMtjx40bpy5dutQov/DCC5t0f6jSweqrhC4d9G161QD+bUezFd85pMGLWNpEhwVox7GqKZkZyA8AAGA+pg0wzz33nJKTkzV8+HB9/vnnCg4OliTNmzdPDz30kKZNm6b169fX61wPPvigvvvuO910001avHixfHyqfi2///3vtWDBAs2aNUvvvPOOy2MfffRRjRkzxi33BNeG9uxoDzDbj57RHcN66JTTIpYNaIFxnImMFhgAAADTMWUXsrKyMi1YsECS9Nprr9nDiyTNmjVLiYmJ2rBhg3bs2FHnuU6ePKn3339fvr6+ev311+3hRZL++te/KioqSu+//75OnTrl/htBvTiuB7P13EB+pzVg6jkGRmItGAAAALMzZYDZtGmTcnJyFBcXp4EDB9bYPmXKFEnSypUr6zzXZ599psrKSl1++eXq3Lmz0zZ/f39NnDhRFRUV+uyzz9xTeTSY40xkadlFSs8t0ukGLmJpE0MLDAAAgKmZsgvZ7t27JUmDBg1yud1WbtuvqedauHBhredavny5li1bpoqKCsXGxmrixIlKSEio87qov66hAYrpGKC0c2NWth3Ndm6BCWncIP70nGJVVhry8rKc5wgAAAC0JqYMMMePH5ckxcTEuNxuK7ft15znsnVls3nkkUd03333af78+U7d0c6nX79+LstTU1PrPRFBWze0Z7jSsn+UJK09cFrFZZX2bV0a0AIT7dACU1pRqYz8EnVuwBgaAAAAeJYpu5Dl51dNpRsYGOhye1BQkNN+zXGugQMH6o033tChQ4dUWFiow4cP67XXXlNYWJhef/11/fGPf6zfzaBehjh0I/tif/V4JD9vL3UM9K33eYL9fRQaUL0/3cgAAADMxZQtMIZRtZihxeK6649te3Oea+bMmU7vY2NjNX36dF1++eUaPHiwffay7t2711mHffv2uSyvrWWmPXJc0DK/pNz+ulMH/1o/u9p0CwtQblGZpKqplAf16FjHEQAAAGgtTNkCExISIkkqKChwub2wsFCSnGYna4lzSVL//v11ww03qKKiQmvWrKnXMahb76hgp5YTm8Z0/3IcB0ML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1jqPa8xnnJycrOuvv17h4eEKDg7WpZdeqnfeecddt1I7A3BQVFRkjBgxwpBkdO3a1bj11luNSy+91JBkREVFGd9//72nq4gm+Mc//mFIMiQZ/fr1M2655RZj3LhxRkhIiCHJSEhIME6dOlXjuAcffNCQZAQEBBiTJk0yxo0bZ/j4+Bje3t7G8uXLPXAncJepU6caFovFkGRceOGFte7HM9B2JCcnG2FhYYYko2/fvsatt95qXHfddcYFF1xgeHt719ifz75tWbJkieHl5WVIMoYMGWL8/Oc/N0aPHm0ve+SRR2ocwzNgLpMmTbL/XW/78ff3P+8xjfmMly9fbnh7exsWi8W44oorjJtvvtn+/5YHH3ywOW7NjgADJ0888YQhyRg+fLiRl5dnL587d64hybj88ss9WDs01TvvvGPcd999xqFDh5zKT5w4YQwcONCQZNx+++1O27788ktDkhEREeF0XHJysuHn52eEhoYaZ86caZH6w73WrFljSDJ+85vfnDfA8Ay0HT/++KMRFhZmBAQEuPxSkpKS4vSez75tKSsrM6KiogxJxr///W+nbcnJyYbVajUsFovTP1byDJjPCy+8YPzv//6vsXLlSuPkyZN1BpjGfMZnzpwxQkNDDUnGsmXL7OUnT540evfubUgyvvrqK/ff3DkEGNiVlpbak/POnTtrbE9MTDQkGdu3b/dA7dDckpOT7f+TKykpsZdff/31hiTj5ZdfrnHM73//e0OS8dJLL7VgTeEOhYWFRu/evY2+ffsahw4dOm+A4RloO37xi18YkowFCxbUa38++7blm2++sbe2u2L7l/vFixfby3gGzK+uANOYz/jFF180JBmTJk2qcczy5csNScaECROaWvVaMQYGdps2bVJOTo7i4uI0cODAGtunTJkiSVq5cmVLVw0tYMCAAZKkkpISZWVlSaoaD/Xll19Kqv78HfFMmNdTTz2l1NRU/f3vf5evr2+t+/EMtB3Z2dlasmSJQkND9atf/arO/fns2x5/f/967RceHi6JZ6A9aOxnvGrVqlqPGT9+vKxWq9asWaPi4mJ3V1kSg/jhYPfu3ZKkQYMGudxuK7fth7bl8OHDkmQf0ClJBw4cUElJiaKiohQTE1PjGNszsWfPnparKJpsz549mjt3ru655x5dfvnl592XZ6Dt+O9//6uSkhKNGjVKvr6+SkpK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dfLkSf3hD39wavmQpKuvvlrTp0/Xjz/+qFWrVtU4NioqSn/5y1/k7e1dY9tll12muLi4GuX33HOPRo4cqXXr1ik3N7fJ9V+yZIlOnTql0aNH63/+53+ctj344IMaPHiw0tLStGLFihrHdujQQW+++aaCgoLsZZMmTdLFF1+s48ePM10zgHaNAAMAaJW++OILSdLkyZNdbrd1O9u2bVuNbVdffbUCAwNrPXd+fr4+/PBDPfLII/r1r3+tu+++W3fffbfS09NlGIZSU1ObXP+NGzdKku68806X2++66y6n/RwNGTJE4eHhNcr79OkjSUpPT29y/QDArBgDAwBolWytDMOGDTvvfpmZmTXKzjcr2FdffaXbbrtNGRkZte6Tl5dXv0qex4kTJySp1vVjbOW2/RzFxMS4PCY4OFiSVFJS0uT6AYBZEWAAAK1SRUWFJOmWW245b2uKq4BjtVpd7pufn69bb71VWVlZeuKJJ3T77bfrggsuUEBAgCwWi+644w59+OGHMgzDPTch2Wcxa8j2uo4BgPaMAAMAaJViYmJ08OBBPf744/ZZwZpq48aNysrK0s0336ynn366xvbDhw+75TqSFB0dLUk6cuSIy+3Hjh2TJHXt2tVt1wSA9oAxMAAAj/Dz85MklZeXu9x+9dVXS5J9/RZ3yM7OliR17969xrbvv/9eO3fudHmcr69vrfWsjW165Pfff9/ldlu5q2mUAQC1I8AAADzC1kLhakFHSfrtb3+rqKgoPffcc1q0aFGNbl0FBQV69913lZaWVu9r2gbBL1++3GkMTE5Oju69916VlZXVWtdTp04pJyen3te69dZb1blzZ23cuFFvvvmm07a//e1v2rZtm2JiYnTjjTfW+5wAAAIMAMBDevbsqcTERG3fvl2XXnqp7rnnHv3qV7/SJ598Iknq2LGjVqxYoaCgIE2bNk2xsbGaMGGCbr75Zg0dOlSdO3fW1KlTXQ7ir82QIUP0s5/9TMePH1efPn1044036sYbb1RsbKxOnDihSZMmuTzuhhtuUHl5uQYNGqS77rpLv/rVr/TXv/71vNcKCgrS+++/r4CAAP32t7/VkCFDdMcdd2jQoEGaOXOmgoKC9MEHH8jf37/+vzQAAAEGAOA5y5Yt0+TJk3X48GG9++67evvtt526cY0cOVLffPONHnroIQUEBOirr77S559/rrNnz2rChAlavHix+vbt26Brfvzxx3rssccUFRWlzz77TDt27NBtt92mLVu2KCwszOUxzz//vGbMmKHy8nItXrxYb7/9tlavXl3ntcaOHatt27bp9ttvV1pampKSknTy5Enddddd2rFjB93HAKARLIY7p1oBAAAAgGZECwwAAAAA0yDAAAAAADANAgwAAAAA0yDAAAAAADANAgwAAAAA0yDAAAAAADANAgwAAAAA0yDAAAAAADANAgwAAAAA0yDAAAAAADANAgwAAAAA0yDAAAAAADANAgwAAAAA0yDAAAAAADANAgwAAAAA0yDAAAAAADANAgwAAAAA0/j/KNYYWTQAzscAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import sys\n", "sys.path.append(\"../\")\n", "\n", "from ddn.pytorch.tridiagsolve import TriDiagSolveFcn\n", "\n", "N = 8\n", "\n", "b = 2.0 * torch.ones((1, N), device=device) + 0.5 * torch.rand((1, N), device=device)\n", "a = torch.nn.Parameter(-1.0 * torch.rand((1, N-1), device=device, requires_grad=True))\n", "c = torch.nn.Parameter(-1.0 * torch.rand((1, N-1), device=device, requires_grad=True))\n", "d = torch.rand((1, N, 1), device=device)\n", "\n", "x_target = torch.ones((1, N, 1), device=device)\n", "\n", "# print initial values\n", "print(\" a_initial: {}\".format(a.detach().flatten()))\n", "print(\" c_initial: {}\".format(c.detach().flatten()))\n", "x = TriDiagSolveFcn.apply(b, a, c, d)\n", "print(\" x_initial: {}\".format(x.detach().flatten()))\n", "\n", "opt = torch.optim.AdamW([a, c], lr=0.1)\n", "\n", "# do optimisation\n", "loss_fcn = torch.nn.MSELoss()\n", "history = []\n", "for _ in range(100):\n", " opt.zero_grad(set_to_none=True)\n", " x = TriDiagSolveFcn.apply(b, a, c, d)\n", " loss = loss_fcn(x, x_target)\n", " loss.backward()\n", " opt.step()\n", " \n", " history.append(loss.item())\n", "\n", "# show final values\n", "print(\" a_final: {}\".format(a.detach().flatten()))\n", "print(\" c_final: {}\".format(c.detach().flatten()))\n", "x = TriDiagSolveFcn.apply(b, a, c, d)\n", "print(\" x_final: {}\".format(x.detach().flatten()))\n", "\n", "# check solution\n", "A = torch.diag_embed(b) + torch.diag_embed(a, offset=-1) + torch.diag_embed(c, offset=1)\n", "print(\"A_final @ x_target: {}\".format((A @ x_target).detach().flatten()))\n", "print(\" A_final @ x_final: {}\".format((A @ x).detach().flatten()))\n", "print(\" d_true: {}\".format(d.detach().flatten()))\n", "\n", "# plot learning curve\n", "plt.figure(figsize=(6, 4), dpi=150)\n", "plt.plot(history)\n", "plt.xlabel('iteration')\n", "plt.ylabel('loss')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "id": "d35460a9", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "accelerator": "GPU", "colab": { "gpuType": "T4", "provenance": [ { "file_id": "https://github.com/yiran-frank-mao/COMP4680_ASE/blob/main/main.ipynb", "timestamp": 1700024928549 } ] }, "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.11.5" } }, "nbformat": 4, "nbformat_minor": 5 }