aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlek Westover2024-10-03 14:40:38 -0400
committerAlek Westover2024-10-03 14:40:38 -0400
commit15e149cb6d785788ca54ad91892f721e0f9b064b (patch)
tree5fcd189396b1ae740d99ed676ff2cb28e639b438
parent5f733f898a32883e22cd28bccf3e84256a816c4b (diff)
update
-rw-r--r--transformer_shortest_paths.ipynb115
1 files changed, 44 insertions, 71 deletions
diff --git a/transformer_shortest_paths.ipynb b/transformer_shortest_paths.ipynb
index fc0a1da..d52d156 100644
--- a/transformer_shortest_paths.ipynb
+++ b/transformer_shortest_paths.ipynb
@@ -70,7 +70,6 @@
"colab": {
"base_uri": "https://localhost:8080/"
},
- "collapsed": true,
"id": "1IbzGIWseK3E",
"outputId": "86cb72b8-8932-4cbe-ad3a-217206e3c66c"
},
@@ -220,7 +219,7 @@
"metadata": {
"id": "tLOWhg_CeWzH"
},
- "execution_count": null,
+ "execution_count": 26,
"outputs": []
},
{
@@ -232,7 +231,7 @@
"# PARAMS\n",
"VOCAB_SIZE = 64 # one more than the max number of vertices\n",
"model_dim = 512 # Dimension of model (embedding and transformer)\n",
- "num_epochs = 10\n",
+ "num_epochs = 4\n",
"batch_size = 32\n",
"learning_rate = 0.001\n",
"max_seq_len = 128\n",
@@ -243,29 +242,32 @@
"\n",
"train_data1 = data[\"train1-data\"]\n",
"train_label1 = data[\"train1-labels\"]\n",
- "\n",
- "# Convert to tensors\n",
"train_data_tensor = torch.tensor(train_data1, dtype=torch.long, device=device)\n",
"train_label_tensor = torch.tensor(train_label1, dtype=torch.long, device=device)\n",
- "\n",
- "# Create DataLoader\n",
"train_dataset = TensorDataset(train_data_tensor, train_label_tensor)\n",
"train_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True)\n",
"\n",
- "# Loss and optimizer\n",
+ "test_data1 = data[\"test1-data\"]\n",
+ "test_label1 = data[\"test1-labels\"]\n",
+ "test_data_tensor = torch.tensor(test_data1, dtype=torch.long, device=device)\n",
+ "test_label_tensor = torch.tensor(test_label1, dtype=torch.long, device=device)\n",
+ "test_dataset = TensorDataset(test_data_tensor, test_label_tensor)\n",
+ "test_loader = DataLoader(test_dataset, batch_size=batch_size, shuffle=True)\n",
+ "\n",
"criterion = nn.CrossEntropyLoss()\n",
"optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate)\n",
"\n",
- "losses = []"
+ "train_losses = []\n",
+ "test_accuracy = []"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "kWXvJRDYgFVP",
- "outputId": "f9474f71-bbcf-4369-cf46-5eee985ebb1c"
+ "outputId": "4f09bb27-679e-42ff-9f5d-f2edff3dbe72"
},
- "execution_count": null,
+ "execution_count": 27,
"outputs": [
{
"output_type": "stream",
@@ -280,18 +282,6 @@
{
"cell_type": "code",
"source": [
- "val_data1 = data[\"test1-data\"]\n",
- "val_label1 = data[\"test1-labels\"]"
- ],
- "metadata": {
- "id": "pOE1654fjR5p"
- },
- "execution_count": null,
- "outputs": []
- },
- {
- "cell_type": "code",
- "source": [
"for epoch in range(num_epochs):\n",
" model.train() # set to training mode\n",
" epoch_loss = 0\n",
@@ -302,40 +292,51 @@
" epoch_loss += loss.item()\n",
" loss.backward()\n",
" optimizer.step()\n",
- " losses.append(epoch_loss)\n",
- " print(f\"Epoch {epoch}/{num_epochs} \\t Loss: {epoch_loss:.4f}\")\n",
+ " train_losses.append(epoch_loss)\n",
+ "\n",
+ " # Evaluate performance\n",
+ " model.eval()\n",
+ " correct_test = 0\n",
+ " total_test = 0\n",
+ "\n",
+ " with torch.no_grad():\n",
+ " for batch_src, batch_labels in test_loader:\n",
+ " output = model(batch_src)\n",
+ "\n",
+ " _, predicted = torch.max(output, 1)\n",
+ " correct_test += (predicted == batch_labels).sum().item()\n",
+ " total_test += batch_labels.size(0)\n",
+ "\n",
+ " epoch_test_acc = correct_test / total_test\n",
+ " test_accuracy.append(epoch_test_acc)\n",
+ " print(f\"Epoch {epoch + 1}/{num_epochs} \\t Train Loss: {epoch_loss:.4f} \\t Test Accuracy: {epoch_test_acc:.4f}\")\n",
+ "\n",
"\n",
"plt.figure(figsize=(10, 5))\n",
- "plt.plot(losses, label='Training Loss', color='blue')\n",
- "plt.title('Training Loss Over Time')\n",
+ "plt.plot(test_accuracy, label='Test Loss', color='red')\n",
+ "plt.title('Test Accuracy vs Epochs')\n",
"plt.xlabel('Epochs'); plt.ylabel('Loss')\n",
"plt.legend(); plt.grid()\n",
- "plt.show()\n"
+ "plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
- "height": 649
+ "height": 559
},
"id": "pvTfzGmCeXU4",
- "outputId": "ef244f98-e209-4e8f-cea7-89f4feb6d805"
+ "outputId": "26b5e8da-1af0-44cd-c98c-25cc65d56cb9"
},
- "execution_count": null,
+ "execution_count": 28,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
- "Epoch 0/10 \t Loss: 3116.6495\n",
- "Epoch 1/10 \t Loss: 686.7595\n",
- "Epoch 2/10 \t Loss: 620.3947\n",
- "Epoch 3/10 \t Loss: 536.0020\n",
- "Epoch 4/10 \t Loss: 482.1293\n",
- "Epoch 5/10 \t Loss: 452.6987\n",
- "Epoch 6/10 \t Loss: 432.0869\n",
- "Epoch 7/10 \t Loss: 414.4569\n",
- "Epoch 8/10 \t Loss: 405.3528\n",
- "Epoch 9/10 \t Loss: 400.7901\n"
+ "Epoch 1/4 \t Train Loss: 3217.9719 \t Test Accuracy: 0.3776\n",
+ "Epoch 2/4 \t Train Loss: 669.2610 \t Test Accuracy: 0.3776\n",
+ "Epoch 3/4 \t Train Loss: 581.0590 \t Test Accuracy: 0.3776\n",
+ "Epoch 4/4 \t Train Loss: 511.1334 \t Test Accuracy: 0.3776\n"
]
},
{
@@ -344,39 +345,11 @@
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
],
- "image/png": "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a68ZVZITf39/devWTcuWLdPhw4cd6/fu3Vtuz5tq166dIiMj9frrrztd7rdq1Srt2rVLvXv3lmR/3tT58+ed3tugQQOFhYU53nf8+PFCZ+Wuv/56SbrspYShoaEaPXq0du/erX/961+Ftn/22WeaP3++EhMT1bFjR6dtd999tw4fPqy33npL27dvd7qEUJL69+8vf39/TZo0qVBtNptNf/75Z7F1eSpfPCYAFQ9ntgDAx910002qWrWqBg8erL///e8ymUx67733POoyvokTJ2rNmjW6+eabNWzYMOXn5+vVV19VixYtlJaWVqJ9WCwWPfPMM4XWV6tWTY8++qimT5+uBx54QF26dNE999zjuPV7/fr1NXLkSEnSr7/+qq5du+quu+5Ss2bNFBAQoKVLlyozM1MDBgyQJL377rt67bXX1K9fPzVo0ECnTp3Sm2++qfDwcPXq1euyNY4dO1Y//PCDpk+frtTUVCUlJSkkJEQbN27UwoUL1bRpU7377ruF3terVy+FhYVp9OjR8vf3V1JSktP2Bg0a6JlnntG4ceO0f/9+9e3bV2FhYdq3b5+WLl2qoUOHavTo0SX6OXoKXzwmABUPYQsAfFz16tW1YsUKPf7443rqqadUtWpV3XffferatasSExONLk+S1LZtW61atUqjR4/W+PHjFRMTo8mTJ2vXrl0luluiZD9bN378+ELrGzRooEcffVRDhgxRaGionnvuOY0ZM0aVKlVSv379NH36dMcdBmNiYnTPPfdo3bp1eu+99xQQEKAmTZpoyZIljoDTpUsXbdmyRe+//74yMzMVERGhG2+8UYsWLVJsbOxla/T399eSJUu0YMECvfXWWxo/frxyc3PVoEEDPf3003r88cdVqVKlQu8LDg7WHXfcoUWLFqlbt26KjIwsNGbs2LG67rrrNGvWLE2aNMlxPAkJCbrjjjtK9DP0NL54TAAqFpPNk/7XJgAAF+nbt6927typPXv2GF0KAAClRs8WAMAjnDt3zun1nj17tHLlSsXHxxtTEAAAV4kzWwAAj1CrVi0NGTJE1157rQ4cOKC5c+cqJydHP/zwgxo1amR0eQAAlBo9WwAAj9CjRw/95z//UUZGhsxms+Li4vTss88StAAAXoszWwAAAADgAvRsAQAAAIALELYAAAAAwAXo2SoBq9Wqw4cPKywsTCaTyehyAAAAABjEZrPp1KlTql27tvz8Ln/uirBVAocPH1ZMTIzRZQAAAADwEAcPHlSdOnUuO4awVQJhYWGS7D/Q8PBwg6uRLBaL1qxZo4SEBAUGBhpdDnwc8w3uxpyDOzHf4G7MOe+XnZ2tmJgYR0a4HMJWCRRcOhgeHu4xYSs0NFTh4eH8IYXLMd/gbsw5uBPzDe7GnPMdJWkv4gYZAAAAAOAChC0AAAAAcAHCFgAAAAC4AD1bAAAAqFBsNpvy8vKUn5/v9s+2WCwKCAjQ+fPnDfl8lExgYKD8/f2vej+ELQAAAFQYubm5OnLkiM6ePWvI59tsNkVHR+vgwYM8v9WDmUwm1alTR5UrV76q/RC2AAAAUCFYrVbt27dP/v7+ql27toKCgtweeKxWq06fPq3KlStf8YG4MIbNZtPRo0d16NAhNWrU6KrOcBG2AAAAUCHk5ubKarUqJiZGoaGhhtRgtVqVm5ur4OBgwpYHq1mzpvbv3y+LxXJVYYvfMAAAACoUQg6upLzOeDLTAAAAAMAFCFsAAAAA4AKELQAAAKCCqV+/vl566aUSj1+/fr1MJpNOnDjhspp8EWELAAAA8FAmk+myy8SJE8u0361bt2ro0KElHn/TTTfpyJEjioiIKNPnlZSvhTruRuilbDajKwAAAICrHTlyxPH9Bx98oAkTJmj37t2OdRc/B8pmsyk/P18BAVf+J37NmjVLVUdQUJCio6NL9R5wZsvrLFok3XBDgBYvbmJ0KQAAAF7NZpPOnDFmKen/OI+OjnYsERERMplMjte//PKLwsLCtGrVKrVt21Zms1kbN27Ub7/9pjvvvFNRUVGqXLmy2rdvr7Vr1zrt99LLCE0mk9566y3169dPoaGhatSokZYvX+7YfukZp/nz56tKlSpavXq1mjZtqsqVK6tHjx5O4TAvL09///vfVaVKFVWvXl1jxozR4MGD1bdv37L+ynT8+HENGjRIVatWVWhoqHr27Kk9e/Y4th84cEB9+vRR1apVValSJTVv3lwrV650vHfgwIGqWbOmQkJC1KhRI82bN6/MtZQEYcvLWCzSTz+ZtGNHDaNLAQAA8Gpnz0qVK7t3CQ/3U506VXT2bPkdx9ixY/Xcc89p165datWqlU6fPq1evXpp3bp1+uGHH9SjRw/16dNH6enpl93PpEmTdNddd+nHH39Ur169NHDgQB07duwyP7+zeuGFF/Tee+9pw4YNSk9P1+jRox3bp0+frkWLFmnevHnatGmTsrOztWzZsqs61iFDhui7777T8uXLlZqaKpvNpl69eslisUiSkpOTlZOTow0bNmjHjh2aPn264+zf+PHj9fPPP2vVqlXatWuX5s6dqxo1XPtvai4j9DLx8fave/ZU1Zkz+apSxchqAAAAYLTJkyere/fujtfVqlVT69atHa+nTJmipUuXavny5Ro+fHix+xkyZIjuueceSdKzzz6rV155RVu2bFGPHj2KHG+xWPT666+rQYMGkqThw4dr8uTJju2zZ8/WuHHj1K9fP0nSq6++6jjLVBZ79uzR8uXLtWnTJt10002SpEWLFikmJkbLli3TX//6V6WnpyspKUktW7aUJF177bWO96enp6tNmzZq166dJPvZPVcjbHmZ+vWlevVsOnDAT6mpVvXsaXRFAAAA3ik0VDp92r2fabValZ2drdDQ8HLbZ0F4KHD69GlNnDhRn332mY4cOaK8vDydO3fuime2WrVq5fi+UqVKCg8PV1ZWVrHjQ0NDHUFLkmrVquUYf/LkSWVmZurGG290bPf391fbtm1ltVpLdXwFdu3apYCAAHXo0MGxrnr16mrcuLF27dolSfr73/+uYcOGac2aNerWrZuSkpIcxzVs2DAlJSXp+++/V0JCgvr27esIba7CZYReqHNn+0W+X31VPk+2BgAAqIhMJqlSJWMWUzn+M65SpUpOr0ePHq2lS5fq2Wef1ddff620tDS1bNlSubm5l91PYGDgJT8f02WDUVHjbQbfxe2hhx7S77//rvvvv187duxQu3btNHv2bElSz549deDAAY0cOVKHDx9W165dnS57dAXClhfq0sU+6TdsIGwBAADA2aZNmzRkyBD169dPLVu2VHR0tPbv3+/WGiIiIhQVFaWtW7c61uXn5+v7778v8z6bNm2qvLw8ffvtt451f/75p3bv3q1mzZo51sXExOiRRx7Rxx9/rMcff1xvvvmmY1vNmjU1ePBgLVy4UC+99JLeeOONMtdTElxG6IUKzmxt3WrSmTP2/zsCAAAASFKjRo308ccfq0+fPjKZTBo/fnyZL927Go899pimTZumhg0bqkmTJpo9e7aOHz8uUwlO6+3YsUNhYWGO1yaTSa1bt9add96phx9+WP/+978VFhamsWPH6pprrtGdd94pSRox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yyFslcCpU6ckSTExMQZXAgAAAMATnDp1ShEREZcdY7KVJJJVcFarVYcPH1ZYWJhMJpPR5Sg7O1sxMTE6ePCgwsPDjS4HPo75BndjzsGdmG9wN+ac97PZbDp16pRq164tP7/Ld2VxZqsE/Pz8VKdOHaPLKCQ8PJw/pHAb5hvcjTkHd2K+wd2Yc97tSme0CnCDDAAAAABwAcIWAAAAALgAYcsLmc1mPf300zKbzUaXggqA+QZ3Y87BnZhvcDfmXMXCDTIAAAAAwAU4swUAAAAALkDYAgAAAAAXIGwBAAAAgAsQtgAAAADABQhbXmbOnDmqX7++goOD1aFDB23ZssXokuCjpk2bpvbt2yssLEyRkZHq27evdu/ebXRZqCCee+45mUwmjRgxwuhS4MP++9//6r777lP16tUVEhKili1b6rvvvjO6LPig/Px8jR8/XrGxsQoJCVGDBg00ZcoUcZ8630fY8iIffPCBRo0apaefflrff/+9WrdurcTERGVlZRldGnzQV199peTkZG3evFkpKSmyWCxKSEjQmTNnjC4NPm7r1q3697//rVatWhldCnzY8ePHdfPNNyswMFCrVq3Szz//rJkzZ6pq1apGlwYfNH36dM2dO1evvvqqdu3apenTp2vGjBmaPXu20aXBxbj1uxfp0KGD2rdvr1dffVWSZLVaFRMTo8cee0xjx441uDr4uqNHjyoyMlJfffWVOnfubHQ58FGnT5/WDTfcoNdee03PPPOMrr/+er300ktGlwUfNHbsWG3atElff/210aWgArj99tsVFRWlt99+27EuKSlJISEhWrhwoYGVwdU4s+UlcnNztW3bNnXr1s2xzs/PT926dVNqaqqBlaGiOHnypCSpWrVqBlcCX5acnKzevXs7/V0HuMLy5cvVrl07/fWvf1VkZKTatGmjN9980+iy4KNuuukmrVu3Tr/++qskafv27dq4caN69uxpcGVwtQCjC0DJ/PHHH8rPz1dUVJTT+qioKP3yyy8GVYWKwmq1asSIEbr55pvVokULo8uBj3r//ff1/fffa+vWrUaXggrg999/19y5czVq1Cg9+eST2rp1q/7+978rKChIgwcPNro8+JixY8cqOztbTZo0kb+/v/Lz8zV16lQNHDjQ6NLgYoQtAFeUnJysn376SRs3bjS6FPiogwcP6h//+IdSUlIUHBxsdDmo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\n"
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAA18AAAHWCAYAAACIZjNQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABWtUlEQVR4nO3dfVxUdd7/8TeD3CpIiHIn3qGJlkpBkmWKCWK1mTcVlbsSmtYqac7vqo1186boIttN3TaVttJab9I0KytTEdMycd1Uslwjsxt1FdQ1JSAHYs7vDy9mdwIUEc/g+Ho+HvN4ON/5nnM+Zz7Nxb6vc+Y7HoZhGAIAAAAAXFQWVxcAAAAAAJcDwhcAAAAAmIDwBQAAAAAmIHwBAAAAgAkIXwAAAABgAsIXAAAAAJiA8AUAAAAAJiB8AQAAAIAJCF8AAAAAYALCFwAAaBI2bdokDw8PrVy50tWlAMBFQfgCgEuIh4dHvR6bNm264GOVl5dr+vTpDdrXmjVr5OHhoYiICNnt9guuBY2jOtzU9Vi2bJmrSwQAt9bM1QUAAOpv0aJFTs//9re/KTc3t8Z4t27dLvhY5eXlmjFjhiQpMTHxvLZdsmSJOnTooO+++04bN25UUlLSBdeDxjNx4kRdd911Ncb79OnjgmoA4PJB+AKAS8ivf/1rp+fbtm1Tbm5ujXFXKisr0zvvvKPs7GwtXLhQS5YsabLhq6ysTM2bN3d1Gaa76aabdOedd7q6DAC47HDbIQC4Gbvdrjlz5uiqq66Sr6+vQkND9eCDD+qHH35wmvfpp58qJSVFISEh8vPzU8eOHTV69GhJ0nfffafWrVtLkmbMmOG4LW369OnnPP5bb72ln376SXfddZfuuecerVq1SqdPn64x7/Tp05o+fbquvPJK+fr6Kjw8XMOHD9f+/fudzuXPf/6zevToIV9fX7Vu3VqDBw/Wp59+6qjTw8NDr776ao39/7Le6dOny8PDQ//85z9133336YorrlDfvn0lSbt379b999+vTp06ydfXV2FhYRo9erT+/e9/19jvv/71L40ZM0YRERHy8fFRx44d9dvf/lYVFRX65ptv5OHhodmzZ9fYbuvWrfLw8NDrr79e6/tWXFysZs2aOa42/rfCwkJ5eHjohRdekCRVVlZqxowZ6tKli3x9fdWqVSv17dtXubm5te67ITw8PJSRkaElS5aoa9eu8vX1VVxcnD766KMac3ft2qVbbrlFgYGBatGihQYOHKht27bVmHfy5ElNnjxZHTp0kI+Pj9q2batRo0bp+PHjTvPsdruefvpptW3bVr6+vho4cKC+/vprpzn79u3TiBEjFBYWJl9fX7Vt21b33HOPTp061WjvAQA0Nq58AYCbefDBB/Xqq68qPT1dEydO1LfffqsXXnhBu3bt0ieffCIvLy8dPXpUgwYNUuvWrfX4448rKChI3333nVatWiVJat26tebPn6/f/va3GjZsmIYPHy5J6tmz5zmPv2TJEg0YMEBhYWG655579Pjjj+vdd9/VXXfd5ZhTVVWlX/3qV8rLy9M999yjSZMm6ccff1Rubq6++OILRUdHS5LGjBmjV199VbfccoseeOAB/fzzz/r444+1bds2xcfHN+j9ueuuu9SlSxf97//+rwzDkCTl5ubqm2++UXp6usLCwrRnzx799a9/1Z49e7Rt2zZ5eHhIkg4fPqzevXvr5MmTGjdunGJiYvSvf/1LK1euVHl5uTp16qQbb7xRS5Ys0eTJk2u8LwEBAbrjjjtqrSs0NFT9+/fXG2+8oWnTpjm9tnz5cnl6ejrew+nTpys7O1sPPPCAevfurZKSEn366afauXOnkpOTz/ke/PjjjzUCjyS1atXKca6StHnzZi1fvlwTJ06Uj4+P5s2bp8GDB2v79u26+uqrJUl79uzRTTfdpMDAQD322GPy8vLSiy++qMTERG3evFkJCQmSpNLSUt10003au3evRo8erWuvvVbHjx/X6tWrdejQIYWEhDiO+8wzz8hiseh//ud/dOrUKT377LMaOXKk/v73v0uSKioqlJKSIpvNpocfflhhYWH617/+pffee08nT55Uy5Ytz/keAIBLGACAS9aECROM//4/5R9//LEhyViyZInTvLVr1zqNv/XWW4Yk4x//+Eed+z527JghyZg2bVq96ykuLjaaNWtmvPTSS46xG264wbjjjjuc5i1YsMCQZMyaNavGPux2u2EYhrFx40ZDkjFx4sQ653z77beGJGPhwoU15vyy9mnTphmSjHvvvbfG3PLy8hpjr7/+uiHJ+Oijjxxjo0aNMiwWS63vW3VNL774oiHJ2Lt3r+O1iooKIyQkxEhLS6ux3X+r3vbzzz93Gu/evbtx8803O5736tXLuO222866r9p8+OGHhqQ6H0eOHHHMrR779NNPHWPff/+94evrawwbNswxNnToUMPb29vYv3+/Y+zw4cNGQECA0a9fP8fY1KlTDUnGqlWratRV/d5V19etWzfDZrM5Xv/zn//s9L7s2rXLkGSsWLHivN8DAHAlbjsEADeyYsUKtWzZUsnJyTp+/LjjERcXpxYtWujDDz+UJAUFBUmS3nvvPVVWVjba8ZctWyaLxaIRI0Y4xu6991598MEHTrc9vvnmmwoJCdHDDz9cYx/VV17efPNNeXh41LgK9N9zGuKhhx6qMebn5+f49+nTp3X8+HFdf/31kqSdO3dKOnMr3Ntvv63bb7+91qtu1TXdfffd8vX11ZIlSxyvrVu3TsePHz/nd/OGDx+uZs2aafny5Y6xL774Qv/85z+VmprqGAsKCtKePXu0b9+++pxyDVOnTlVubm6NR3BwsNO8Pn36KC4uzvG8Xbt2uuOOO7Ru3TpVVVWpqqpK69ev19ChQ9WpUyfHvPDwcN13333asmWLSkpKJJ3pZ69evTRs2LAa9fyyn+np6fL29nY8v+mmmyRJ33zzjSQ5rmytW7dO5eXlDXoPAMAVCF8A4Eb27dunU6dOqU2bNmrdurXTo7S0VEePHpUk9e/fXyNGjNCMGTMUEhKiO+64QwsXLpTNZrug4y9evFi9e/fWv//9b3399df6+uuvdc0116iiokIrVqxwzNu/f7+6du2qZs3qvvt9//79ioiIqBEILlTHjh1rjJ04cUKTJk1SaGio/Pz81Lp1a8e86u8QHTt2TCUlJY7b7eoSFBSk22+/XUuXLnWMLVmyRJGRkbr55pvPum1ISIgGDhyoN954wzG2fPlyNWvWzHHrpyQ9+eSTOnnypK688kr16NFDjz76qHbv3n3uk/8/PXr0UFJSUo3HfwceSerSpUuNba+88kqVl5fr2LFjOnbsmMrLy9W1a9ca87p16ya73a6DBw9KOtPPc7131dq1a+f0/IorrpAkR4Dv2LGjrFarXn75ZYWEhCglJUVz587l+14AmjzCFwC4EbvdrjZt2tR6VSM3N1dPPvmkJDl+yDY/P18ZGRn617/+pdGjRysuLk6lpaUNOva+ffv0j3/8Q1u2bFGXLl0cj+pFLf77SlBjqesKWFVVVZ3b/PdVrmp33323XnrpJT300ENatWqV1q9fr7Vr10pSg36nbNSoUfrmm2+0detW/fjjj1q9erXuvfdeWSzn/rN7zz336KuvvlJBQYEk6Y033tDAgQOdvhPVr18/7d+/XwsWLNDVV1+tl19+Wddee61efvnl8661KfL09Kx13Pi/7+hJ0nPPPafdu3fr97//vX766SdNnDhRV111lQ4dOmRWmQBw3lhwAwDcSHR0tDZs2KAbb7yx1pDxS9dff72uv/56Pf3001q6dKlGjhypZcuW6YEHHjjvW/uWLFkiLy8vLVq0qMb/eN6yZYuef/55HThwQO3atVN0dLT+/ve/q7KyUl5eXnWey7p163TixIk6r35VXxE5efKk0/j3339f77p/+OEH5eXlacaMGZo6dapj/Je39LVu3VqBgYH64osvzrnPwYMHq3Xr1lqyZIkSEhJUXl6u3/zmN/WqZ+jQoXrwwQcdtx5+9dVXyszMrDEvODhY6enpSk9PV2lpqfr166fp06frgQceqNdx6qO22xq/+uor+fv7O1bD9Pf3V2FhYY15X375pSwWi6KioiSd6Wd93rvz0aNHD/Xo0UN/+MMftHXrVt14443KyclRVlZWox4HABoLV74AwI3cfffdqqqq0lNPPVXjtZ9//tkRUn744QenqwiSFBsbK0mOWw/9/f0l1Qw2dVmyZIluuukmpaam6s4773R6PProo5LkWGZ9xIgROn78uGPp9P9WXdeIESNkGEatS69XzwkMDFRISEiN5c/nzZtXr5ql/1xl+eX7MWfOHKfnFotFQ4cO1bvvvutY6r62miSpWbNmuvfee/XGG2/o1VdfVY8ePeq1UqR05rbFlJQUvfHGG1q2bJm8vb01dOhQpzm/XAK/RYsW6ty58wXfNvpL+fn5ju+8SdLBgwf1zjvvaNCgQfL09JSnp6cGDRqkd955R999951jXnFxsZYuXaq+ffsqMDBQ0pl+fvbZZ3rrrbdqHOeX7/25lJSU6Oeff3Ya69GjhywWS6O/BwDQmLjyBQBupH///nrwwQeVnZ2tgoICDRo0SF5eXtq3b59WrFihP//5z7rzzjv12muvad68eRo2bJiio6P1448/6qWXXlJgYKBuvfVWSWduz+vevbuWL1+uK6+8UsHBwbr66qtr/d7O3//+d3399dfKyMiota7IyEhde+21WrJkiX73u99p1KhR+tvf/iar1art27frpptuUllZmTZs2KDx48frjjvu0IABA/Sb3/xGzz//vPbt26fBgwfLbrfr448/1oABAxzHeuCBB/TMM8/ogQceUHx8vD766CN99dVX9X7PAgMD1a9fPz377LOqrKxUZGSk1q9fr2+//bbG3P/93//V+vXr1b9/f40bN07dunXTkSNHtGLFCm3ZssWxkIl05tbD559/Xh9++KFmzpxZ73okKTU1Vb/+9a81b948paSkOO1Xkrp3767ExETFxcUpODhYn376qVauXFnn+/9LH3/8ca2/vdazZ0+nkHj11VcrJSXFaal5SU6BOCsrS7m5uerbt6/Gjx+vZs2a6cUXX5TNZtOzzz7rmPfoo49q5cqVuuuuuxy3uJ44cUKrV69WTk6OevXqVe/3Z+PGjcrIyNBdd92lK6+8Uj///LPjiut/L/YCAE2O6xZaBABcqF8uNV/tr3/9qxEXF2f4+fkZAQEBRo8ePYzHHnvMOHz4sGEYhrFz507j3nvvNdq1a2f4+PgYbdq0MX71q185LStuGIaxdetWIy4uzvD29j7rsvMPP/ywIclpufFfmj59uiHJ+OyzzwzDOLO8+5QpU4yOHTsaXl5eRlhYmHHnnXc67ePnn382/vjHPxoxMTGGt7e30bp1a+OWW24xduzY4ZhTXl5ujBkzxmjZsqUREBBg3H333cbRo0frXGr+2LFjNWo7dOiQMWzYMCMoKMho2bKlcddddxmHDx+u9Zy///57Y9SoUUbr1q0NHx8fo1OnTsaECROclkavdtVVVxkWi8U4dOhQne9LbUpKSgw/Pz9DkrF48eIar2dlZRm9e/c2goKCDD8/PyMmJsZ4+umnjYqKirPu91xLzf/3uUoyJkyYYCxevNjo0qWL4ePjY1xzzTXGhx9+WGO/O3fuNFJSUowWLVoY/v7+xoABA4ytW7fWmPfvf//byMjIMCIjIw1vb2+jbdu2RlpamnH8+HGn+n65hPwvf1Lgm2++MUaPHm1ER0cbvr6+RnBwsDFgwABjw4YN53hnAcC1PAzjPK/1AwCAernmmmsUHBysvLw8V5dy3jw8PDRhwoRabw0FADQM3/kCAOAi+PTTT1VQUKBRo0a5uhQAQBPBd74AAGhEX3zxhXbs2KHnnntO4eHhTj+ODAC4vHHlCwCARrRy5Uqlp6ersrJSr7/+unx9fV1dEgCgieA7XwAAAABgAq58AQAAAIAJCF8AAAAAYAIW3Gggu92uw4cPKyAgQB4eHq4uBwAAAICLGIahH3/8UREREbJY6r6+RfhqoMOHDysqKsrVZQAAAABoIg4ePKi2bdvW+Trhq4ECAgIknXmDAwMDXVpLZWWl1q9fr0GDBsnLy8ultaBx0FP3RF/dDz11T/TV/dBT99SU+lpSUqKoqChHRqgL4auBqm81DAwMbBLhy9/fX4GBgS7/Dw+Ng566J/rqfuipe6Kv7oeeuqem2NdzfR2JBTcAAAAAwASELwAAAAAwAeELAAAAAEzAd74AAAAAExmGoZ9//llVVVWuLuWSVllZqWbNmun06dMX/b309PRUs2bNLvgnpghfAAAAgEkqKip05MgRlZeXu7qUS55hGAoLC9PBgwdN+d1df39/hYeHy9vbu8H7IHwBAAAAJrDb7fr222/l6empiIgIeXt7mxIa3JXdbldpaalatGhx1h82vlCGYaiiokLHjh3Tt99+qy5dujT4eIQvAAAAwAQVFRWy2+2KioqSv7+/q8u55NntdlVUVMjX1/eihi9J8vPzk5eXl77//nvHMRuCBTcAAAAAE13soICLozH6RucBAAAAwASELwAAAAAwAeELAAAAAExA+AIAAABQKw8Pj7M+pk+ffkH7fvvttxtt3qWA1Q4BAAAA1OrIkSOOfy9fvlxTp05VYWGhY6xFixauKOuSxZUvAAAAwFUMQyorM/9hGPUqLywszPFo2bKlPDw8nMaWLVumbt26ydfXVzExMZo3b55j24qKCmVkZCg8PFy+vr5q3769srOzJUkdOnSQJA0bNkweHh6O5+fLbrfrqaeeUtu2beXj46PY2FitXbu2XjUYhqHp06erXbt28vHxUUREhCZOnNigOuqLK18AAACAq5SXS664elRaKjVvfkG7WLJkiaZOnaoXXnhB11xzjXbt2qWxY8eqefPmSktL0/PPP6/Vq1frjTfeULt27XTw4EEdPHhQkvSPf/xDbdq00cKFCzV48GB5eno2qIacnBzNmjVLL774oq655hotWLBAQ4YM0Z49e9SlS5ez1vDmm29q9uzZWrZsma666ioVFRXps88+u6D35FwIXwAAAADO27Rp0/Tcc89p+PDhkqSOHTvqn//8p1588UWlpaXpwIED6tKli/r27SsPDw+1b9/esW3r1q0lSUFBQQoLC2twDS+88IIee+wx3XPPPZKkmTNn6sMPP9ScOXM0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N8+8EwcAAABw2XH5ghsZGRnKyMio9bXqq1XVsrKylJWVdc59jh49WqNHj67zdV9fX82dO1dz5849r1oBAAAAoKFc9p0vAAAAALicEL4AAAAAwASELwAAAAAwAeELAAAAAExA+AIAAAAAExC+AAAAAMAEhC8AAAAAMAHhCwAAAABMQPgCAAAAABMQvgAAAADABIQvAAAAADAB4QsAAAAATED4AgAAAAATEL4AAAAAwASELwAAAAAwAeELAAAAAExA+AIAAAAAExC+AAAAAMAEhC8AAAAAMAHhCwAAAABMQPgCAAAAABM0c3UBlyrDMCRJJSUlLq5EqqysVHl5uUpKSuTl5eXqctAI6Kl7oq/uh566J/rqfuipe2pKfa3OBNUZoS6Erwb68ccfJUlRUVEurgQAAABAU/Djjz+qZcuWdb7uYZwrnqFWdrtdhw8fVkBAgDw8PFxaS0lJiaKionTw4EEFBga6tBY0Dnrqnuir+6Gn7om+uh966p6aUl8Nw9CPP/6oiIgIWSx1f7OLK18NZLFY1LZtW1eX4SQwMNDl/+GhcdFT90Rf3Q89dU/01f3QU/fUVPp6tite1VhwAwAAAABMQPgCAAAAABMQvtyAj4+Ppk2bJh8fH1eXgkZCT90TfXU/9NQ90Vf3Q0/d06XYVxbcAAAAAAATcOULAAAAAExA+AIAAAAAExC+AAAAAMAEhC8AAAAAMAHh6xIxd+5cdejQQb6+vkpISND27dvPOn/FihWKiYmRr6+vevTooTVr1phUKerrfHr66quvysPDw+nh6+trYrU4l48++ki33367IiIi5OHhobfffvuc22zatEnXXnutfHx81LlzZ7366qsXvU6cn/Pt66ZNm2p8Vj08PFRUVGROwTin7OxsXXfddQoICFCbNm00dOhQFRYWnnM7/q42XQ3pKX9Xm7758+erZ8+ejh9Q7tOnjz744IOzbnMpfE4JX5eA5cuXy2q1atq0adq5c6d69eqllJQUHT16tNb5W7du1b333qsxY8Zo165dGjp0qIYOHaovvvjC5MpRl/PtqXTm19uPHDnieHz//fcmVoxzKSsrU69evTR37tx6zf/222912223acCAASooKNAjjzyiBx54QOvWrbvIleJ8nG9fqxUWFjp9Xtu0aXORKsT52rx5syZMmKBt27YpNzdXlZWVGjRokMrKyurchr+r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\n"
},
"metadata": {}
}
]
- },
- {
- "cell_type": "code",
- "source": [
- "!git clone git@github.com:awestover/transformer-shortest-paths.git"
- ],
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "yDJdR7ybk9oz",
- "outputId": "a37dec29-24fe-4836-eb31-13081e6d8676"
- },
- "execution_count": null,
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "Cloning into 'transformer-shortest-paths'...\n",
- "Host key verification failed.\n",
- "fatal: Could not read from remote repository.\n",
- "\n",
- "Please make sure you have the correct access rights\n",
- "and the repository exists.\n"
- ]
- }
- ]
}
]
-}
+} \ No newline at end of file