Saved before spellchecking
This commit is contained in:
3 files changed
+986
-1311
No files matched your search
+315
-223
@@ -297,7 +297,9 @@
|
|||||||
"\n",
|
"\n",
|
||||||
"# The minimum destance from the start that should\n",
|
"# The minimum destance from the start that should\n",
|
||||||
"MIN_DESTINATION_DISTANCE: Final[int] = 25\n",
|
"MIN_DESTINATION_DISTANCE: Final[int] = 25\n",
|
||||||
"assert SIZE_INNER > MIN_DESTINATION_DISTANCE, \"The goal should be well closer to the outer limit the\"\n",
|
"assert (\n",
|
||||||
|
" SIZE_INNER > MIN_DESTINATION_DISTANCE\n",
|
||||||
|
"), \"The goal should be well closer to the outer limit the\"\n",
|
||||||
"\n",
|
"\n",
|
||||||
"# The size the ANN input has. Equal to the image size. Should be an on of $n^2$ to be easier compatible with ANNs.\n",
|
"# The size the ANN input has. Equal to the image size. Should be an on of $n^2$ to be easier compatible with ANNs.\n",
|
||||||
"IMG_SIZE: Final[int] = 128\n",
|
"IMG_SIZE: Final[int] = 128\n",
|
||||||
@@ -369,7 +371,7 @@
|
|||||||
" Returns:\n",
|
" Returns:\n",
|
||||||
" An array of cartesian coordinates.\n",
|
" An array of cartesian coordinates.\n",
|
||||||
" \"\"\"\n",
|
" \"\"\"\n",
|
||||||
" return radii * np.exp(2j * perigons * np.pi)\n"
|
" return radii * np.exp(2j * perigons * np.pi)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -387,7 +389,7 @@
|
|||||||
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"100.0\" height=\"100.0\" viewBox=\"-16.37816427364242 53.572469871489815 6.660645097041407 6.473724419318636\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,113.61866416229827)\"><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"0.13321290194082813\" opacity=\"0.6\" d=\"M -9.964209735750694,58.12346496725632 L -10.380908764033304,58.90225055101728 L -10.981914756343256,59.53091446131591 L -14.62510766338472,59.79950373165877 L -16.051330505870038,58.08054532765174 L -16.13147371449274,57.81979780226843 L -15.655931768323725,55.1495345171628 L -14.888014501362616,54.37062796397931 L -12.399620374135152,53.8191604306395 L -9.964209735750694,58.12346496725632 z\" /></g></svg>"
|
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"100.0\" height=\"100.0\" viewBox=\"-16.37816427364242 53.572469871489815 6.660645097041407 6.473724419318636\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,113.61866416229827)\"><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"0.13321290194082813\" opacity=\"0.6\" d=\"M -9.964209735750694,58.12346496725632 L -10.380908764033304,58.90225055101728 L -10.981914756343256,59.53091446131591 L -14.62510766338472,59.79950373165877 L -16.051330505870038,58.08054532765174 L -16.13147371449274,57.81979780226843 L -15.655931768323725,55.1495345171628 L -14.888014501362616,54.37062796397931 L -12.399620374135152,53.8191604306395 L -9.964209735750694,58.12346496725632 z\" /></g></svg>"
|
||||||
],
|
],
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"<shapely.geometry.polygon.Polygon at 0x26a826e36d0>"
|
"<shapely.geometry.polygon.Polygon at 0x1a33bd2f8b0>"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 7,
|
"execution_count": 7,
|
||||||
@@ -628,7 +630,9 @@
|
|||||||
" plt.plot(route[:, 0], route[:, 1], color=\"BLUE\", marker=\".\")\n",
|
" plt.plot(route[:, 0], route[:, 1], color=\"BLUE\", marker=\".\")\n",
|
||||||
" else:\n",
|
" else:\n",
|
||||||
" if isinstance(route, TimingFrame):\n",
|
" if isinstance(route, TimingFrame):\n",
|
||||||
" plt.plot(route.points[:, 0], route.points[:, 1], color=\"BLUE\", marker=\".\")\n",
|
" plt.plot(\n",
|
||||||
|
" route.points[:, 0], route.points[:, 1], color=\"BLUE\", marker=\".\"\n",
|
||||||
|
" )\n",
|
||||||
" else:\n",
|
" else:\n",
|
||||||
" raise TypeError()\n",
|
" raise TypeError()\n",
|
||||||
"\n",
|
"\n",
|
||||||
@@ -665,7 +669,7 @@
|
|||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"application/vnd.jupyter.widget-view+json": {
|
"application/vnd.jupyter.widget-view+json": {
|
||||||
"model_id": "d1fda510fdb54f56941f42f61f7c24a3",
|
"model_id": "07b14b44eb974ac097c222b8a675cd06",
|
||||||
"version_major": 2,
|
"version_major": 2,
|
||||||
"version_minor": 0
|
"version_minor": 0
|
||||||
},
|
},
|
||||||
@@ -678,7 +682,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"image/png": "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 truncated
|
"image/png": "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 truncated
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"<Figure size 1260x1800 with 12 Axes>"
|
"<Figure size 1260x1800 with 12 Axes>"
|
||||||
]
|
]
|
||||||
@@ -716,7 +720,9 @@
|
|||||||
" destination=generated_destination,\n",
|
" destination=generated_destination,\n",
|
||||||
" obstacle_color=\"RED\",\n",
|
" obstacle_color=\"RED\",\n",
|
||||||
" route=route_generated,\n",
|
" route=route_generated,\n",
|
||||||
" title=f\"Seed: {seed}, Cost: {route_generated.cost:.3f}\" if route_generated else f\"Seed: {seed}\",\n",
|
" title=f\"Seed: {seed}, Cost: {route_generated.cost:.3f}\"\n",
|
||||||
|
" if route_generated\n",
|
||||||
|
" else f\"Seed: {seed}\",\n",
|
||||||
" legend=seed == 0,\n",
|
" legend=seed == 0,\n",
|
||||||
" )\n",
|
" )\n",
|
||||||
" plt.show()"
|
" plt.show()"
|
||||||
@@ -870,7 +876,7 @@
|
|||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"image/png": "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 truncated
|
"image/png": "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 truncated
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"<Figure size 576x576 with 1 Axes>"
|
"<Figure size 576x576 with 1 Axes>"
|
||||||
]
|
]
|
||||||
@@ -908,7 +914,9 @@
|
|||||||
" destination=generated_destination,\n",
|
" destination=generated_destination,\n",
|
||||||
" obstacle_color=\"RED\",\n",
|
" obstacle_color=\"RED\",\n",
|
||||||
" route=route_generated,\n",
|
" route=route_generated,\n",
|
||||||
" title=f\"Seed: {seed}, Cost: {route_generated.cost:.3f}\" if route_generated else f\"Seed: {seed}\",\n",
|
" title=f\"Seed: {seed}, Cost: {route_generated.cost:.3f}\"\n",
|
||||||
|
" if route_generated\n",
|
||||||
|
" else f\"Seed: {seed}\",\n",
|
||||||
" legend=seed == 0,\n",
|
" legend=seed == 0,\n",
|
||||||
" )\n",
|
" )\n",
|
||||||
" plt.show()"
|
" plt.show()"
|
||||||
@@ -932,7 +940,7 @@
|
|||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"image/png": "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 truncated
|
"image/png": "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 truncated
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"<PIL.Image.Image image mode=RGB size=400x400>"
|
"<PIL.Image.Image image mode=RGB size=400x400>"
|
||||||
]
|
]
|
||||||
@@ -966,7 +974,7 @@
|
|||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"image/png": "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 truncated
|
"image/png": "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 truncated
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"<PIL.Image.Image image mode=RGB size=400x400>"
|
"<PIL.Image.Image image mode=RGB size=400x400>"
|
||||||
]
|
]
|
||||||
@@ -1080,7 +1088,7 @@
|
|||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"application/vnd.jupyter.widget-view+json": {
|
"application/vnd.jupyter.widget-view+json": {
|
||||||
"model_id": "a7f747777045479eb050b609c1af7890",
|
"model_id": "8cd24dd79afa4758b72ec2e6e5063996",
|
||||||
"version_major": 2,
|
"version_major": 2,
|
||||||
"version_minor": 0
|
"version_minor": 0
|
||||||
},
|
},
|
||||||
@@ -1395,7 +1403,7 @@
|
|||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"application/vnd.jupyter.widget-view+json": {
|
"application/vnd.jupyter.widget-view+json": {
|
||||||
"model_id": "88137743b4d9467d9a419895ca479506",
|
"model_id": "5f7b2314054b4b91be2cbfdb6d45705a",
|
||||||
"version_major": 2,
|
"version_major": 2,
|
||||||
"version_minor": 0
|
"version_minor": 0
|
||||||
},
|
},
|
||||||
@@ -1685,7 +1693,6 @@
|
|||||||
" Otherwise `True` is returned.\n",
|
" Otherwise `True` is returned.\n",
|
||||||
" \"\"\"\n",
|
" \"\"\"\n",
|
||||||
"\n",
|
"\n",
|
||||||
"\n",
|
|
||||||
" # CHecks if the route exists\n",
|
" # CHecks if the route exists\n",
|
||||||
" if route is None:\n",
|
" if route is None:\n",
|
||||||
" return False\n",
|
" return False\n",
|
||||||
@@ -1701,6 +1708,7 @@
|
|||||||
" return False\n",
|
" return False\n",
|
||||||
" return True\n",
|
" return True\n",
|
||||||
"\n",
|
"\n",
|
||||||
|
"\n",
|
||||||
"# Count the number of datapoints there are before this filter is used.\n",
|
"# Count the number of datapoints there are before this filter is used.\n",
|
||||||
"data_before = len(collected_data.index)\n",
|
"data_before = len(collected_data.index)\n",
|
||||||
"\n",
|
"\n",
|
||||||
@@ -1770,6 +1778,7 @@
|
|||||||
" print(float)\n",
|
" print(float)\n",
|
||||||
" return not LineString(route).is_simple\n",
|
" return not LineString(route).is_simple\n",
|
||||||
"\n",
|
"\n",
|
||||||
|
"\n",
|
||||||
"# count the number of datapoints before this filter was applied.\n",
|
"# count the number of datapoints before this filter was applied.\n",
|
||||||
"data_before = len(collected_data.index)\n",
|
"data_before = len(collected_data.index)\n",
|
||||||
"\n",
|
"\n",
|
||||||
@@ -1860,7 +1869,7 @@
|
|||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"image/png": "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 truncated
|
"image/png": "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 truncated
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"<Figure size 432x288 with 1 Axes>"
|
"<Figure size 432x288 with 1 Axes>"
|
||||||
]
|
]
|
||||||
@@ -1901,7 +1910,7 @@
|
|||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"application/vnd.jupyter.widget-view+json": {
|
"application/vnd.jupyter.widget-view+json": {
|
||||||
"model_id": "07e9b38a3e3444419be141489932469e",
|
"model_id": "5034ad302d9a4563bad88143c12c5e48",
|
||||||
"version_major": 2,
|
"version_major": 2,
|
||||||
"version_minor": 0
|
"version_minor": 0
|
||||||
},
|
},
|
||||||
@@ -1914,7 +1923,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"image/png": "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 truncated
|
"image/png": "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 truncated
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"<Figure size 1080x1800 with 12 Axes>"
|
"<Figure size 1080x1800 with 12 Axes>"
|
||||||
]
|
]
|
||||||
@@ -2189,7 +2198,7 @@
|
|||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"image/png": "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 truncated
|
"image/png": "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 truncated
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"<Figure size 432x288 with 1 Axes>"
|
"<Figure size 432x288 with 1 Axes>"
|
||||||
]
|
]
|
||||||
@@ -2241,7 +2250,7 @@
|
|||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"image/png": "iVBORw0KGgoAAAANSUhEUgAABAoAAAV+CAYAAAD/YNxPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOzdd3hT5RcH8O/bpG2StuyyZe89CqKAshRBGcqe4gIcKKK4QMWBooKo/ERERREExQUCIrIdIHuDyN57tk26kvf3x2loSlfGvbn3JufzPHlom+TmbWnf3Hve854jpJRgjDHGGGOMMcYYA4AIrQfAGGOMMcYYY4wx/eBAAWOMMcYYY4wxxq7jQAFjjDHGGGOMMcau40ABY4wxxhhjjDHGruNAAWOMMcYYY4wxxq7jQAFjjDHGGGOMMcau40ABY4wxxhhjjDHGruNAAVOcEKK/EGKTECJJCHFaCLFECNEqwGMeEUJ08OHxLYQQy4QQl4QQ54UQ3wshynjc31YIsUoIcVUIccSL47UXQvwrhLBnPq+ix33lhBALMl/rhBBi+A3PnS6E2CeEcAkhhnj7PTDGWG4MMseOFkLsEkIkCiEOCyFG53OsOpnfz+XM23IhRB2P+58WQhwSQlwTQpwSQkwWQpg97q+UOS/bM+dpr78PxhjzFGrza+bjHxZCHMj8nn4TQpT1uE8IId4RQlzMvL0jhBAe97cTQmzJnH8PCSGG+vr9M+PiQAFTlBBiFIAPALwFoBSACgCmAugW5KEUBTAdQCUAFQEkAvjS4/5kADMA5Du5AoAQogSAnwC8DKAYgE0AvvN4yGwAh0Hf790A3hJCtPW4fzuAxwBs8e9bYYwxYqA5VgAYnPm4uwA8IYTom8exTgHoCZpfSwD4BcC3Hvf/AqCJlLIQgHoAGgJ40uP+uQC2AigOYAyAH4QQ8QF8b4yxMBSK86sQog3o++kGmmMPg+ZMt6EAuoPm1QYAugAYlvncSAA/A/gUQGEAfQC8L4RoGOg3yAxCSsk3vilyA00iSQB65fOYaNAkfCrz9gGA6Mz7SgBYBOAKgEsA/gQFs2YBcAFwZB7/OT/G1gRAYi5f7wDgSAHPHQpgrcfnMZljqQUgFoAEEO9x/3QAs3I5zl8Ahmj9/8Q3vvHNmDcjzrEe938EYIoXxzEDeByAPY/7iwNYDmBq5uc1AKQCiPN4zJ8Ahmv9/8U3vvHNOLdQnV8BTATwscfnZTPPW6tmfr4WwFCP+x8C8E/mx6UyH2vzuH8jgH5a/3/xLTg3zihgSroFgAUUfczLGAAtADQCRS+bAxibed8zAE4AiAdNTi8BkFLKQQCOAegipYyVUr4LAEKIHUKI/l6O7TYAu336brLUBWUFADSgZAAHM7/uTs8SHo8XoFUvxhhTkiHn2Mw01tZ53e/xuCsAUgBMAa2Aed7XXwhxDcCFzO/r08y76gI4JKVM9Hj49syvM8aYt0J5fr3xHBXIOk/Ndo4Lj/lTSnkWlH3wgBDCJIS4BZTh8JeX42YGx4ECpqTiAC5IKTPyecwAAK9LKc9JKc8DeA3AoMz70gGUAVBRSpkupfxTSgpf5kZK2UBKOaegQQkhGgB4BV5sM8hDLICrN3ztKmgFKxHA3wBeFkJYhBBNAPQAYPPztRhjLC9GnWPHgc43vszjfvfrFQGt6j0B2krged8cSVsPagCYBuBs5l15zs8FjZsxxjyE6vz6G4DeQogGQghr5rEkss5Tb5xDrwKI9ahTMDfzOamgLIkxUsrjBY2bhQYOFDAlXQRQwrPIVC7KAjjq8fnRzK8BwHsADgD4PbNgyguBDkgIUQ3AEgBPSSn/9PMwSQAK3fC1QqA9YwC9cVQGcBzAJ6CaBSf8fC3GGMuL4eZYIcQToL20d0spUws6XmbG1jQAXwshSuZy/37QytnUzC8VND8zxpg3QnJ+lVIuB/AqgB8BHMm8JSLrPPXGObQQgCQppRRC1ALVixkMIAqUafCcEOLuQL83ZgwcKGBKWgeKOHbP5zGnQGlLbhUyvwYpZaKU8hkpZRUAXQGMEkK0z3xcnlHZvAjqTLAcwBtSylm+Pt/DblCKmfu4MQCqZn4dUsqjUsp7pJTxUsqbQfvUNgTweowxlhtDzbFCiAcBvACgvZTSl+BpBGi1q1we95tBczBA83AVIYRnBkFD+L/VjDEWnkJ2fpVSfiylrC6lLAUKGJgB7Mq8O9s5LrLPn/UA/CelXCqldEkp9wFYDKCTr98PMyYOFDDFSCmvgtKTPhZCdBdC2IQQkUKITkKIdzMfNhfAWCFEfGY3gVdAK/AQQtwjhKiWme50FYATVAAGoDTTKt6ORQhRDsBKAP+TUk7L5f4IIYQFQCR9KixCiKg8DvczgHpCiB6Zz3kFwA4p5b+Zx6othIgTQkQJIQYCuBPA+x6vFZX5PAEgMvO1+G+PMeYTg82xA0B1Bu6QUh4q4Fh3CCEaZ+6BLQSaPy8D2Jt5/8Pu7AJBbRNfBLAi82fyH4BtAF7NnFvvBVXu/tHb74UxxkJ4frUIIeoJUgFUcPtDKeXlzId8DQpqlBPUNvEZAF9l3rcVQHVBLRKFEKIqgHsA7PD2e2EGp1UVRb6F7g2Uir8J1ILwDCj6eGvmfRZQddbTmbePAFgy73salBKVDEqJetnjmN1AxWCuAHg282u7AQzIYwyvgiK4SZ43j/vbZN7veVvtcX+2Y4O6I/wLqlq7GkAlj/tGAjifOe6/ACTcMJbVubxWG63/n/jGN74Z82aQOfYwaM+u5/3TPO6/fmwAvTLn16TMuXQxgAYej/0SdKKdnDn+99zfU+b9lTLnWQeAfQA6aP1/xDe+8c2YtxCcX4uALuzd38/bAEwejxUA3gV1ariU+bHwuL83KPvAvV3hHQARWv8/8S04N5H5S8AYY4wxxhhjjDHGWw8YY4wxxhhjjDGWRZFAgRBihhDinBBil8fXigkhlgkh9mf+WzTz60II8ZEQ4oCgHqJNlBgDY4yFIp5fGWNMPTzHMsZY7pTKKPgKwF03fO0FACuklNVBRYfcbUI6AaieeRsKaifHGGMsd1+B51fGGFPLV+A5ljHGclAkUCCl/ANUAMNTNwAzMz+eiax2I90AfC3JPwCKCCHKKDEOxhgLNTy/MsaYeniOZYyx3KlZo6CUlPJ05sdnAJTK/LgcgOMejzuBvHslM8YYy4nnV8YYUw/PsYyxsGcOxotIKaUQwqf2CkKIoaC0LsQATWupMjKmG7GxQM2aWo9C/06fppsa3UpMJqBuXSAyUvljG9jmzZsvSCnjtR5HXvyZX4Eb5tiYmKa1avEsyxgLLr3PrwDPscxPqanAnj2Ay5X/44SgczqrFahTJzhjY2Ej0DlWzUDBWSFEGSnl6cy0rHOZXz8J4CaPx5XP/Fo2UsrpAKYDQIIQcpOKA2Uas1qB7duBKlW0Hon+NWgAnDqlzrGFAIoUAVavpo8ZAEAIcVTrMeQioPkVuGGOTUiQmzbxLMsYCy6dzq8Az7EsUIMGAbt2AWYzBQJiY4HChYFixYD4eKBUKaBMGfq3eHGgXj0gIUHrUbMQE+gcq2ag4BcA9wOYkPnvAo+vPyGE+BbAzQCueqR3sXBjswGjRnGQwBtXrwL79ql3/IwM4M8/gf/+4+wO/eP5lTHG1MNzLAvM1KnAm29SECAmhhdgmCEpEigQQswF0AZACSHECQCvgibXeUKIhwAcBdA78+G/AugM4AAAO4AHlBgDM6hChYAxY7QehTGsWAFYLEBamvLHNpsps+OzzzhIoDM8vzLGmHp4jmWqiIujG2MGpkigQErZL4+72ufyWAngcSVelxmczQZ88QVd/LKCzZ8PXLum/HFjYmhLw/ffA+W4JpPe8PzKGGPq4TmWMcZyF5RihmpIL1oUJ8aNQ0q1akCEms0bGADA5YLlwAGUHzcOkZcvB348kwlo2RLo3DnwY4UDKYFff1X+uFYrMG4cbf8I57+jxETg8GHg7FnAbgfuuYd+RxljjLFQl5IC/PUXsH49MGwYUKKE1iNijOmAYQMFJ8aNQ1zz5qhkNoN3/ahPArhYrBhOjBuHyk89FfgBo6IozZ1558gRuoBVitUKlC1LWQr16il3XCPavx9o3pwqEwtBtRpuvhlYupS2ZDDGGGOhREpg9256n/vhB2DLFsrudDiAWbOAf/6h4saMsbBm2LPglGrVOEgQRAJAcbMZ56tVC/xgNhvw3HNAxYqBHytcWK0Ft9jx5VgPPwy89x4QHa3MMY1sxQpaTUlJyfra338DO3YATZpoNy7GGGNMKefPA8uWAT//TP9mZNAtNZXud9c/OnwYuO02eh8MdI99Whpl6p05Q62dixYFWrcO7JiMsaAxbKAAEREcJAgyASiTnl60KPDCC4EfJ5yULg3cdReweDG9sfsjOpra83z/PdC2rbLjM7KbbqKfjWegwGQC6tfXbkyMMcaYUlatAjp1omzOxMT8H5uWRt2P2rendsk2W87HJCbShf/p01lBgOPHKfvx+HEKDly6RJmQFktWdl5GBnD33cDMmbRowRjTNeMGCnTixNmzePzdd7Hn8GG4XC7c06oV3nvqKcz57Tds2rsX/3vuOa+O88GcORh6332w+VHYb/XmzZg4ezYWTZ7s83ODLioKaNcO2L6d3nysVrq5P46K4hYyefn446xVAF/ZbMAddwBffkmBGpalYsWc2Rrt2gGRkdqMh/lPSp4/GGPsRs89R5kD7uyBgqSmAjt3Ah07AsuX0/NXrgTOnQOuXKH3TIuFguouFz0+r45MN26bXLiQsvV+/50C9Ywx3QqdQEHHjhS9VEqxYrR3Kx9SStz33HN4tEcPLJg0CU6nE0Pfegtjpk5F3SpVfHq5D779FgM7d/YrUGAoaWmU9vbLL3RS73IBTifdMjLoa5GRFDCIiqI3oujo7AGFmJisW6FClBoXE5MVbMgtAJHbxxaL8gX8zp0DHn0UGDAA6N5d2eOXKweMHUt9eb2Line truncated
|
"image/png": "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 truncated
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"<Figure size 1260x1800 with 12 Axes>"
|
"<Figure size 1260x1800 with 12 Axes>"
|
||||||
]
|
]
|
||||||
@@ -2288,7 +2297,7 @@
|
|||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"image/png": "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 truncated
|
"image/png": "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 truncated
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"<Figure size 432x288 with 1 Axes>"
|
"<Figure size 432x288 with 1 Axes>"
|
||||||
]
|
]
|
||||||
@@ -2313,6 +2322,7 @@
|
|||||||
" complexity.name = \"route complexity\"\n",
|
" complexity.name = \"route complexity\"\n",
|
||||||
" return complexity\n",
|
" return complexity\n",
|
||||||
"\n",
|
"\n",
|
||||||
|
"\n",
|
||||||
"route_points = get_route_points(collected_data)\n",
|
"route_points = get_route_points(collected_data)\n",
|
||||||
"route_points.plot.hist()\n",
|
"route_points.plot.hist()\n",
|
||||||
"plt.title(\"Route complexity in intermediate points\")\n",
|
"plt.title(\"Route complexity in intermediate points\")\n",
|
||||||
@@ -2372,7 +2382,7 @@
|
|||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"image/png": "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 truncated
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZEAAAEICAYAAACeSMncAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAAfx0lEQVR4nO3df7xVdZ3v8dcb0BRT0TyZcKBDyWhkOepJ6daM3ijFH4kzjzKdTDSuNDdLa7zXwLrqZJY9aiKd0kIlQR2VKJNJTYk0pyZFNH+jcQKUgyAnAdEsDfvcP9b36HKz92GzOPsX5/18PPZjr/Vd37XWZ+1fn/39ftdeWxGBmZlZEYMaHYCZmbUuJxEzMyvMScTMzApzEjEzs8KcRMzMrDAnETMzK8xJxLYJkjokhaQhW7mdcyRd0U8xfVzS7Y2Oo9EkHSapOzf/qKTDGhfR5kkaJekFSYMbHUuzk38n0jokLQf2BF4BXgB+BnwmIl7Yyu0eBlwTEe1bGWLDSOoAlgHbRcTGZt1mLUg6H9g7Ik5qdCzlbM3rS1IAYyKiq7/j6i+t8jqpFbdEWs+HI+KNwN8CBwDTGhuOtbqtbb3ZwOYk0qIiYjVwG1kyAUDSsamrYL2kOyW9I7csJO2dm79K0lck7QTcCgxPzfcXJA2XNEjSVEm/l/SspDmSdq8Uj6SJkh6QtCGtMyGVD5c0T9JaSV2STsutc76kH0q6RtLzkh6W9DeSpklaI2mFpMNz9e+U9DVJC9N+bqoUk6RdJV0paZWklelYB0vaPsX52VRvsKRfSzo3F9M1aTN3pfv16XE5NB3Hu3L7ebOkFyW1lYnhFEm/KnkO/lnSkvQcfVeSKsT/ahy5rrpJkp6S9AdJX0zLJgDnAB9LMT7Y1/Hn4vq1pOmSngXOT6+HSyXdmrbza0lvkfRtSeskPS7pgFx8wyX9SFKPpGWSzsgt2zFtb52kx4D3lBzbckkfTNMHS/pNejxWSfqOpO3Tst7H/8EU08dS+THpOVwv6b8lvbvcY5h7zM+QtDQ9bt+QNCgtGyTpS5KeTK+32ZJ2LXnMh6T5OyVdkB6X5yXdLmmPCq+T90raW9IvJT2X9ntDpRhbXkT41iI3YDnwwTTdDjwMXJzm/wb4I/AhYDvgbKAL2D4tD7Iuj95tXQV8JU0fBnSX7OtM4O60nzcA3weuqxDXwcBzad+DgBHAvmnZXcClwA5kCa8H+EBadj7wZ+AIYAgwm6xb4IvpGE4DluX2cyewEtgP2An4EVk3CUBHOsYhaf7GFPNOwJuBhcCn0rL9gHXAO9K+7gYG52Iqu81Udinw9ZLH6T8rPC6nAL/KzQfwU2AYMCo9FhMqrFsujsuBHYH9gZeAd5TWza3f1/GfAmwEPpse9x3T6+EPwEHpufpFei5OBgYDXwHuSOsPAu4DzgW2B94GLAWOSMsvAv4L2B0YCTxC7vXF61/HBwHjUhwdwGLgcyWPWf51ewCwBjgkxTUpbe8NFR7HAO5IsYwCfgf8r7Tsk2TvkbcBbwR+DFxd4fV0J/B7svfZjmn+oj5eJ9eRvbYGpcfz/Y3+/KjZ51KjA/BtC56s7M3yAvB8etEuAIalZf8PmJOrO4jsA/ewNL+lSWQxMD43vxfwl/wbJbfs+8D0MuUjycZvds6VfQ24Kk2fD8zPLftwOr7eD/SdU9y9x/jqGzfNjwVeTh8mr76RycaNXgJ2zNU9kfQhmObPAp4gSyZjcuXn03cSOQR4itfGExcBx1d4vk5h0yTy/tz8HGBqhXXLxdGeW74QOKG0bprv8/hTXE+V7O8q4PLc/GeBxbn5dwHr849ByfrTgB+k6aXkkiMwhQpJpMxxfw64seQxy79uLwMuKFnnCeDQCtuLklg+DSxI0wuAT+eW7UN6jZc+92SvvS+VbOdnfbxOZgMz8s/Ztnpzd1brOS4idib74N8X6G1SDwee7K0UEX8FVpC1Cop4K3Bj6jJYT5ZUXiH7gCo1kuxbWqnhwNqIeD5X9mRJTM/kpv8E/CEiXsnNQ/YtsdeKkm1tx2uPQT727YBVufi/T/aNvNesVO+WiFhSJvayIuIe4EXgMEn7AnsD86pdH1idm36R1x9bf61bzfGvKLNe6XNROt+7v7eSdX+uz23/HF57bQxn0+epLGXdlz+VtFrSBuCrbPp8lh7bWSX7Hpn2WUlpLL11X/eeSdO9X0LK2ZLn7mxAwEJlXcyf7KNuS3MSaVER8Uuyb4/fTEVPk73BAEh97SPJWiOQveiH5jbxlvzmyuxiBXBkRAzL3XaIiJUV6r69TPnTwO6Sds6VjcrFVMTIkm39hawbpjSel4A9crHvEhHvzNW5lKxr6QhJ76+wr3KPC2QJ6CTgE8DciPjzlh5EPyuNs5rjr3Rs1VhB1s2Yf23sHBFHpeWr2PR5quQy4HGy1uAuZMmo7DhRbt8Xlux7aERc18c6pbE8naZf955Jyzby+uRZjU0ey4hYHRGnRcRw4FPApcqNSW5LnERa27eBD0nan6xr5GhJ4yVtR9Zd8xLw36nuA8A/KRtIngAcmtvOM8CbegcVk+8BF0p6K4CkNkkTK8RxJXBq2vcgSSMk7RsRK9L+vyZphzQAOhm4psJ2qnGSpLGShgJfJvsQfyVfISJWAbcD/yZplxTT2yUdmo7lE2R98acAZwCzJJX7VtkD/JWszzzvGuAfyBLJ7K04lv7yDNDRO2C8uePvBwuB5yV9IQ2iD5a0n6TeAfQ5wDRJu0lqJ+saq2RnYAPwQmrZ/e8yx5Z//C8H/lnSIcrsJOnoki8qpf5vimUk2RhW7yD3dcDnJY1Oz/9XgRtiy0/T3eR1Iumj6dgh6zKNVGeb4yTSwiKih+xD7NyIeILsQ+3fyb6Zf5jsdOCXU/UzU9l64OPAT3LbeZzsDbU0dREMBy4m66a5XdLzZIPPh1SIYyFwKjCdbID9l7z2De9Esj7jp8kGe8+LiJ9vxWFfTdYCW002YHlGhXonkw36Pkb2Jp4L7CVpFFnyPTkiXoiI/yAb15he5rheBC4Efp0el3GpfAVwP9kHw39txbH0lx+m+2cl3Z+myx5/f+wsJe1jyE6UWEb2ersC6P0S8q9kXUPLyJLZ1X1s7v8A/0Q2znc5r33A9zqfLMmvl3R8RCwiO+HiO2TH1UX2ZaAvN5GdCPAAcDPZlx6AmSm2u1Ksf6bvhFdWhdfJe4B7JL1A9j46MyKWbum2W4F/bGgtQ9KdZAPIDf8lt6SZwNMR8aVGx2KVqQV+rNjq/CMjsy2k7BfK/0h2uqnZgObuLLMtIOkCst89fCMiljU6HrNGc3eWmZkV5paImZkVNuDGRPbYY4/o6OhodBhmZi3lvvvu+0NEbHKNuAGXRDo6Oli0aFGjwzAzaymSyl55wN1ZZmZWmJOImZkV5iRiZmaFOYmYmVlhTiJmZlaYk4iZmRXmJGJmZoU5iZiZWWFOImZmVtiA+8X61uiYenO/bm/5RUf36/bMzOrNLREzMyvMScTMzApzEjEzs8KcRMzMrDAnETMzK8xJxMzMCnMSMTOzwpxEzMysMCcRMzMrzEnEzMwKcxIxM7PCapZEJM2UtEbSI2WWnSUpJO2R5iXpEkldkh6SdGCu7iRJS9JtUq78IEkPp3UukaRaHYuZmZVXy5bIVcCE0kJJI4HDgadyxUcCY9JtCnBZqrs7cB5wCHAwcJ6k3dI6lwGn5dbbZF9mZlZbNUsiEXEXsLbMounA2UDkyiYCsyNzNzBM0l7AEcD8iFgbEeuA+cCEtGyXiLg7IgKYDRxXq2MxM7Py6jomImkisDIiHixZNAJYkZvvTmV9lXeXKa+03ymSFkla1NPTsxVHYGZmeXVLIpKGAucA59Zrn70iYkZEdEZEZ1tbW713b2a2zapnS+TtwGjgQUnLgXbgfklvAVYCI3N121NZX+XtZcrNzKyO6pZEIuLhiHhzRHRERAdZF9SBEbEamAecnM7SGgc8FxGrgNuAwyXtlgbUDwduS8s2SBqXzso6GbipXsdiZmaZWp7iex3wG2AfSd2SJvdR/RZgKdAFXA58GiAi1gIXAPem25dTGanOFWmd3wO31uI4zMysspr9x3pEnLiZ5R256QBOr1BvJjCzTPkiYL+ti9LMzLaGf7FuZmaFOYmYmVlhTiJmZlaYk4iZmRXmJGJmZoU5iZiZWWFOImZmVpiTiJmZFeYkYmZmhTmJmJlZYU4iZmZWmJOImZkV5iRiZmaFOYmYmVlhTiJmZlaYk4iZmRXmJGJmZoU5iZiZWWFOImZmVljNkoikmZLWSHokV/YNSY9LekjSjZKG5ZZNk9Ql6QlJR+TKJ6SyLklTc+WjJd2Tym+QtH2tjsXMzMqrZUvkKmBCSdl8YL+IeDfwO2AagKSxwAnAO9M6l0oaLGkw8F3gSGAscGKqC/B1YHpE7A2sAybX8FjMzKyMmiWRiLgLWFtSdntEbEyzdwPtaXoicH1EvBQRy4Au4OB064qIpRHxMnA9MFGSgA8Ac9P6s4DjanUsZmZWXiPHRD4J3JqmRwArcsu6U1ml8jcB63MJqbe8LElTJC2StKinp6efwjczs4YkEUlfBDYC19ZjfxExIyI6I6Kzra2tHrs0MxsQhtR7h5JOAY4BxkdEpOKVwMhctfZURoXyZ4Fhkoak1ki+vpmZ1UldWyKSJgBnA8dGxIu5RfOAEyS9QdJoYAywELgXGJPOxNqebPB9Xko+dwAfSetPAm6q13GYmVmmlqf4Xgf8BthHUrekycB3gJ2B+ZIekPQ9gIh4FJgDPAb8DDg9Il5JrYzPALcBi4E5qS7AF4B/kdRFNkZyZa2OxczMyqtZd1ZEnFimuOIHfURcCFxYpvwW4JYy5UvJzt4yM7MG8S/WzcysMCcRMzMrzEnEzMwKcxIxM7PCnETMzKwwJxEzMyvMScTMzApzEjEzs8KcRMzMrDAnETMzK8xJxMzMCnMSMTOzwpxEzMysMCcRMzMrzEnEzMwKcxIxM7PLine truncated
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"<Figure size 432x288 with 1 Axes>"
|
"<Figure size 432x288 with 1 Axes>"
|
||||||
]
|
]
|
||||||
@@ -2477,7 +2487,7 @@
|
|||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"image/png": "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 truncated
|
"image/png": "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 truncated
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"<Figure size 432x288 with 1 Axes>"
|
"<Figure size 432x288 with 1 Axes>"
|
||||||
]
|
]
|
||||||
@@ -2810,7 +2820,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": 39,
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2022-07-15T18:58:57.475316Z",
|
"end_time": "2022-07-15T18:58:57.475316Z",
|
||||||
@@ -2824,7 +2834,7 @@
|
|||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"application/vnd.jupyter.widget-view+json": {
|
"application/vnd.jupyter.widget-view+json": {
|
||||||
"model_id": "6647186a3e1c481da542b6bbd91911f2",
|
"model_id": "fdca21f7d62f4d1cadfb9e25e0d58141",
|
||||||
"version_major": 2,
|
"version_major": 2,
|
||||||
"version_minor": 0
|
"version_minor": 0
|
||||||
},
|
},
|
||||||
@@ -2838,9 +2848,9 @@
|
|||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"# collecting map images with routes as lines.\n",
|
"# collecting map images with routes as lines.\n",
|
||||||
"collected_routes = np.concatenate(collected_data.progress_apply(\n",
|
"collected_routes = np.concatenate(\n",
|
||||||
" generate_image_maps, axis=1, args=(\"line\",)\n",
|
" collected_data.progress_apply(generate_image_maps, axis=1, args=(\"line\",))\n",
|
||||||
"))"
|
")"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2852,7 +2862,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": 40,
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2022-07-15T18:58:57.498310Z",
|
"end_time": "2022-07-15T18:58:57.498310Z",
|
||||||
@@ -2862,7 +2872,18 @@
|
|||||||
"name": "#%%\n"
|
"name": "#%%\n"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"outputs": [],
|
"outputs": [
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"text/plain": [
|
||||||
|
"'1.1 GB'"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"execution_count": 40,
|
||||||
|
"metadata": {},
|
||||||
|
"output_type": "execute_result"
|
||||||
|
}
|
||||||
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"humanize.naturalsize(sys.getsizeof(collected_routes))"
|
"humanize.naturalsize(sys.getsizeof(collected_routes))"
|
||||||
]
|
]
|
||||||
@@ -2876,7 +2897,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": 41,
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2022-07-15T18:58:57.501315Z",
|
"end_time": "2022-07-15T18:58:57.501315Z",
|
||||||
@@ -2888,12 +2909,14 @@
|
|||||||
},
|
},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"assert str(collected_routes.dtype) == \"uint8\", \"Dtype needs to be unit8 to fit in the ram.\""
|
"assert (\n",
|
||||||
|
" str(collected_routes.dtype) == \"uint8\"\n",
|
||||||
|
"), \"Dtype needs to be unit8 to fit in the ram.\""
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": 42,
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2022-07-15T18:58:57.504314Z",
|
"end_time": "2022-07-15T18:58:57.504314Z",
|
||||||
@@ -2919,15 +2942,32 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": 43,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"application/vnd.jupyter.widget-view+json": {
|
||||||
|
"model_id": "65084b72d7a3469ea14c1454ccbb2b17",
|
||||||
|
"version_major": 2,
|
||||||
|
"version_minor": 0
|
||||||
|
},
|
||||||
|
"text/plain": [
|
||||||
|
" 0%| | 0/22264 [00:00<?, ?it/s]"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"metadata": {},
|
||||||
|
"output_type": "display_data"
|
||||||
|
}
|
||||||
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"# collecting map images with routes as dots.\n",
|
"# collecting map images with routes as dots.\n",
|
||||||
"collected_routes_dots = np.concatenate(collected_data.progress_apply(\n",
|
"collected_routes_dots = np.concatenate(\n",
|
||||||
" generate_image_maps, axis=1, args=(\"dot\",)\n",
|
" collected_data.progress_apply(generate_image_maps, axis=1, args=(\"dot\",))\n",
|
||||||
"))\n",
|
")\n",
|
||||||
"assert str(collected_routes_dots.dtype) == \"uint8\", \"Dtype needs to be unit8 to fit in the ram.\"\n",
|
"assert (\n",
|
||||||
|
" str(collected_routes_dots.dtype) == \"uint8\"\n",
|
||||||
|
"), \"Dtype needs to be unit8 to fit in the ram.\"\n",
|
||||||
"COLLECTED_ROUTES_DOT_DUMP = \"data/collected_routes_np_dot.pickle\"\n",
|
"COLLECTED_ROUTES_DOT_DUMP = \"data/collected_routes_np_dot.pickle\"\n",
|
||||||
"with open(COLLECTED_ROUTES_DOT_DUMP, \"wb\") as f:\n",
|
"with open(COLLECTED_ROUTES_DOT_DUMP, \"wb\") as f:\n",
|
||||||
" pickle.dump(collected_routes, f)\n",
|
" pickle.dump(collected_routes, f)\n",
|
||||||
@@ -2969,7 +3009,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": 44,
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2022-07-15T18:58:57.578312Z",
|
"end_time": "2022-07-15T18:58:57.578312Z",
|
||||||
@@ -2991,8 +3031,8 @@
|
|||||||
" * Optional a batchnorm\n",
|
" * Optional a batchnorm\n",
|
||||||
" * A activation function (LeakyRelu)\n",
|
" * A activation function (LeakyRelu)\n",
|
||||||
" Args:\n",
|
" Args:\n",
|
||||||
" filters:\n",
|
" filters: The number of features that should be gernated.\n",
|
||||||
" size: The number of \n",
|
" size: The number of features / pixels should be reduced.\n",
|
||||||
" apply_batchnorm: If True the Batchnor is applied. Batch norms are used by default.\n",
|
" apply_batchnorm: If True the Batchnor is applied. Batch norms are used by default.\n",
|
||||||
" Returns:\n",
|
" Returns:\n",
|
||||||
" A sequentail model contain the keras generated layers.\n",
|
" A sequentail model contain the keras generated layers.\n",
|
||||||
@@ -3022,7 +3062,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": 45,
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2022-07-15T18:58:57.583314Z",
|
"end_time": "2022-07-15T18:58:57.583314Z",
|
||||||
@@ -3036,6 +3076,20 @@
|
|||||||
"source": [
|
"source": [
|
||||||
"# Source: https://www.tensorflow.org/tutorials/generative/pix2pix\n",
|
"# Source: https://www.tensorflow.org/tutorials/generative/pix2pix\n",
|
||||||
"def upsample(filters, size, apply_dropout=False):\n",
|
"def upsample(filters, size, apply_dropout=False):\n",
|
||||||
|
" \"\"\"Create a upsample layer.\n",
|
||||||
|
"\n",
|
||||||
|
" A downsample layer contains:\n",
|
||||||
|
" * tf.keras.layers.Conv2D\n",
|
||||||
|
" * An aktivation Function\n",
|
||||||
|
" * Optional a batchnorm\n",
|
||||||
|
" * A activation function (LeakyRelu)\n",
|
||||||
|
" Args:\n",
|
||||||
|
" filters: The number of features that should be used to upsample the layer.\n",
|
||||||
|
" size: The number of\n",
|
||||||
|
" apply_batchnorm: If True the Batchnor is applied. Batch norms are used by default.\n",
|
||||||
|
" Returns:\n",
|
||||||
|
" A sequentail model contain the keras generated layers.\n",
|
||||||
|
" \"\"\"\n",
|
||||||
" initializer = tf.random_normal_initializer(0.0, 0.02)\n",
|
" initializer = tf.random_normal_initializer(0.0, 0.02)\n",
|
||||||
"\n",
|
"\n",
|
||||||
" result = tf.keras.Sequential()\n",
|
" result = tf.keras.Sequential()\n",
|
||||||
@@ -3060,9 +3114,16 @@
|
|||||||
" return result"
|
" return result"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"Erstellt ein erstes model des Generatos wie oben beschrieben. Ein Schematisches Layout findet sich darunter."
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": 48,
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2022-07-15T18:58:57.586314Z",
|
"end_time": "2022-07-15T18:58:57.586314Z",
|
||||||
@@ -3072,8 +3133,17 @@
|
|||||||
"name": "#%%\n"
|
"name": "#%%\n"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"outputs": [],
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"You must install pydot (`pip install pydot`) and install graphviz (see instructions at https://graphviz.gitlab.io/download/) for plot_model/model_to_dot to work.\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
"source": [
|
"source": [
|
||||||
|
"# Source: https://www.tensorflow.org/tutorials/generative/pix2pix\n",
|
||||||
"def model_generator():\n",
|
"def model_generator():\n",
|
||||||
"\n",
|
"\n",
|
||||||
" inputs = tf.keras.layers.Input(shape=[IMG_SIZE, IMG_SIZE, 2])\n",
|
" inputs = tf.keras.layers.Input(shape=[IMG_SIZE, IMG_SIZE, 2])\n",
|
||||||
@@ -3098,6 +3168,8 @@
|
|||||||
" # ]\n",
|
" # ]\n",
|
||||||
"\n",
|
"\n",
|
||||||
" down_stack = [\n",
|
" down_stack = [\n",
|
||||||
|
" # The first layer does not need a batchnorm\n",
|
||||||
|
" # The batchnorm would norm the batch of images\n",
|
||||||
" downsample(64, 4, apply_batchnorm=False), # (batch_size, 64, 64, 128)\n",
|
" downsample(64, 4, apply_batchnorm=False), # (batch_size, 64, 64, 128)\n",
|
||||||
" downsample(128, 4), # (batch_size, 8, 8, 512)\n",
|
" downsample(128, 4), # (batch_size, 8, 8, 512)\n",
|
||||||
" downsample(256, 4), # (batch_size, 4, 4, 512)\n",
|
" downsample(256, 4), # (batch_size, 4, 4, 512)\n",
|
||||||
@@ -3107,6 +3179,8 @@
|
|||||||
" downsample(512, 4), # (batch_size, 1, 1, 512)\n",
|
" downsample(512, 4), # (batch_size, 1, 1, 512)\n",
|
||||||
" ]\n",
|
" ]\n",
|
||||||
"\n",
|
"\n",
|
||||||
|
" # The Feature number in the input is doubeled the size of the\n",
|
||||||
|
" # output layer the layer before because it merges with the mirroring downsample layer.\n",
|
||||||
" up_stack = [\n",
|
" up_stack = [\n",
|
||||||
" upsample(512, 4, apply_dropout=True), # (batch_size, 4, 4, 1024)\n",
|
" upsample(512, 4, apply_dropout=True), # (batch_size, 4, 4, 1024)\n",
|
||||||
" upsample(256, 4, apply_dropout=True), # (batch_size, 4, 4, 1024)\n",
|
" upsample(256, 4, apply_dropout=True), # (batch_size, 4, 4, 1024)\n",
|
||||||
@@ -3143,20 +3217,31 @@
|
|||||||
"\n",
|
"\n",
|
||||||
" x = last(x)\n",
|
" x = last(x)\n",
|
||||||
"\n",
|
"\n",
|
||||||
" return tf.keras.Model(inputs=inputs, outputs=x)\n",
|
" # drop the chanel dimension\n",
|
||||||
|
" reshaped = tf.keras.layers.Reshape((128, 128))(x)\n",
|
||||||
|
"\n",
|
||||||
|
" return tf.keras.Model(inputs=inputs, outputs=reshaped)\n",
|
||||||
"\n",
|
"\n",
|
||||||
"\n",
|
"\n",
|
||||||
"generator = model_generator()\n",
|
"generator = model_generator()\n",
|
||||||
"tf.keras.utils.plot_model(generator, show_shapes=True, dpi=64)"
|
"tf.keras.utils.plot_model(generator, show_shapes=True, dpi=64)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"Um mehr controlle über den Lernprozess zu haben werden drei Coallbacks verwendet.\n",
|
||||||
|
"Der EarlyStopping callback verhindert vor allem das Verschwenden von Rechenzeit indem er den Lernvorgang abbricht wenn eine weile keine Verbesserung gefunden wurde. Verschlechtert sich die beobachtete Metric wird der Lernvorgang abgebrochen."
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": 51,
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2022-07-15T18:58:57.587312Z",
|
"end_time": "2022-07-15T18:58:57.592314Z",
|
||||||
"start_time": "2022-07-15T18:58:57.587312Z"
|
"start_time": "2022-07-15T18:58:57.592314Z"
|
||||||
},
|
},
|
||||||
"pycharm": {
|
"pycharm": {
|
||||||
"name": "#%%\n"
|
"name": "#%%\n"
|
||||||
@@ -3164,16 +3249,30 @@
|
|||||||
},
|
},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"!pip install pydot"
|
"early_stop = tf.keras.callbacks.EarlyStopping(\n",
|
||||||
|
" monitor=\"mean_squared_error\",\n",
|
||||||
|
" min_delta=0.0005,\n",
|
||||||
|
" patience=3,\n",
|
||||||
|
" verbose=0,\n",
|
||||||
|
" mode=\"auto\",\n",
|
||||||
|
" restore_best_weights=True,\n",
|
||||||
|
")"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"Um den Lernforgang mit zu Loggen und anschließend zu Kontrollieren wird der Lernforgangn im Logverzeichtnis für Tensorboard mitgeschrieben. Auch profilingdaten werden erfasst."
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": 52,
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2022-07-15T18:58:57.588314Z",
|
"end_time": "2022-07-15T18:58:57.592314Z",
|
||||||
"start_time": "2022-07-15T18:58:57.588314Z"
|
"start_time": "2022-07-15T18:58:57.592314Z"
|
||||||
},
|
},
|
||||||
"pycharm": {
|
"pycharm": {
|
||||||
"name": "#%%\n"
|
"name": "#%%\n"
|
||||||
@@ -3181,12 +3280,137 @@
|
|||||||
},
|
},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"!pip install pydotplus"
|
"tf_board = tf.keras.callbacks.TensorBoard(\n",
|
||||||
|
" log_dir=\"./log_dir\",\n",
|
||||||
|
" histogram_freq=100,\n",
|
||||||
|
" write_graph=False,\n",
|
||||||
|
" write_images=False,\n",
|
||||||
|
" write_steps_per_second=True,\n",
|
||||||
|
" update_freq=\"epoch\",\n",
|
||||||
|
" profile_batch=(20, 40),\n",
|
||||||
|
" embeddings_freq=0,\n",
|
||||||
|
" embeddings_metadata=None,\n",
|
||||||
|
")"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"Die Lernrate kann mit der nachfolgenden Methode gesenkt werden damit eventuelle Platues überwunden werden können.\n"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 53,
|
||||||
|
"metadata": {
|
||||||
|
"ExecuteTime": {
|
||||||
|
"end_time": "2022-07-15T18:58:57.592314Z",
|
||||||
|
"start_time": "2022-07-15T18:58:57.592314Z"
|
||||||
|
},
|
||||||
|
"pycharm": {
|
||||||
|
"name": "#%%\n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"reduce_learning_rate = tf.keras.callbacks.ReduceLROnPlateau(\n",
|
||||||
|
" monitor=\"some metric\", factor=0.2, patience=1, min_lr=0.1, verbose=1\n",
|
||||||
|
")"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"Der Datensatz wird in Trainingsdaten, Validationdaten und Testdaten unterteilt.\n",
|
||||||
|
"Folgenden Anteile werden ausgewählt:\n",
|
||||||
|
"* $60\\%$ Trainingsdataen\n",
|
||||||
|
"* $20\\%$ Validationdaten\n",
|
||||||
|
"* $20\\%$ Testdaten\n",
|
||||||
|
"\n",
|
||||||
|
"Das Dataset von `tensorflow` ist theoretisch noch zu viel mehr im stande. Zum beispiel könnte man es nutzen um alle Datensätze zwei mal pro Epoche aufzurufen und einmal zu Vertikal zu Spiegeln. Dies würde die Datenmänge verdoppeln ohne den RAM zusätzlich zu belasten. Dies sprängt hier aber leider etwas den Rahmen."
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": null,
|
||||||
|
"metadata": {
|
||||||
|
"ExecuteTime": {
|
||||||
|
"end_time": "2022-07-15T18:58:57.624444Z",
|
||||||
|
"start_time": "2022-07-15T18:58:57.598317Z"
|
||||||
|
},
|
||||||
|
"pycharm": {
|
||||||
|
"name": "#%%\n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"def create_train_test_split_datasets(routes: np.ndarray):\n",
|
||||||
|
" \"\"\"Creates the three datasets train, validate and test frome the collected images.\n",
|
||||||
|
"\n",
|
||||||
|
" Args:\n",
|
||||||
|
" routes: The collection of images as `np.ndarray`\n",
|
||||||
|
" Returns:\n",
|
||||||
|
" train, validate and test Dtatsets.\n",
|
||||||
|
" \"\"\"\n",
|
||||||
|
" limit_train = int(collected_routes.shape[0] * 0.6)\n",
|
||||||
|
" limit_test = int(collected_routes.shape[0] * 0.8)\n",
|
||||||
|
" train_dataset = tf.data.Dataset.from_tensor_slices(\n",
|
||||||
|
" (\n",
|
||||||
|
" collected_routes[:limit_train, :, :, :2],\n",
|
||||||
|
" collected_routes[:limit_train, :, :, 2],\n",
|
||||||
|
" )\n",
|
||||||
|
" )\n",
|
||||||
|
" validation_dataset = tf.data.Dataset.from_tensor_slices(\n",
|
||||||
|
" (\n",
|
||||||
|
" collected_routes[limit_train:limit_test, :, :, :2],\n",
|
||||||
|
" collected_routes[limit_train:limit_test, :, :, 2],\n",
|
||||||
|
" )\n",
|
||||||
|
" )\n",
|
||||||
|
" test_dataset = tf.data.Dataset.from_tensor_slices(\n",
|
||||||
|
" (\n",
|
||||||
|
" collected_routes[limit_test:, :, :, :2],\n",
|
||||||
|
" collected_routes[limit_test:, :, :, 2],\n",
|
||||||
|
" )\n",
|
||||||
|
" )\n",
|
||||||
|
" return train_dataset, validation_dataset, test_dataset\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"train_dataset, validation_dataset, test_dataset = create_train_test_split_datasets(\n",
|
||||||
|
" collected_routes\n",
|
||||||
|
")\n",
|
||||||
|
"\n",
|
||||||
|
"# del collected_routes"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 59,
|
||||||
|
"metadata": {
|
||||||
|
"ExecuteTime": {
|
||||||
|
"end_time": "2022-07-15T18:58:57.629441Z",
|
||||||
|
"start_time": "2022-07-15T18:58:57.629441Z"
|
||||||
|
},
|
||||||
|
"pycharm": {
|
||||||
|
"name": "#%%\n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"train_dataset = train_dataset.batch(BATCH_SIZE)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"Compiliert das model und initialisiert die Layer."
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 50,
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2022-07-15T18:58:57.589313Z",
|
"end_time": "2022-07-15T18:58:57.589313Z",
|
||||||
@@ -3214,162 +3438,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": 62,
|
||||||
"metadata": {
|
|
||||||
"ExecuteTime": {
|
|
||||||
"end_time": "2022-07-15T18:58:57.592314Z",
|
|
||||||
"start_time": "2022-07-15T18:58:57.592314Z"
|
|
||||||
},
|
|
||||||
"pycharm": {
|
|
||||||
"name": "#%%\n"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"outputs": [],
|
|
||||||
"source": [
|
|
||||||
"early_stop = tf.keras.callbacks.EarlyStopping(\n",
|
|
||||||
" monitor=\"mean_squared_error\",\n",
|
|
||||||
" min_delta=0.0005,\n",
|
|
||||||
" patience=2,\n",
|
|
||||||
" verbose=0,\n",
|
|
||||||
" mode=\"auto\",\n",
|
|
||||||
" restore_best_weights=True,\n",
|
|
||||||
")\n",
|
|
||||||
"\n",
|
|
||||||
"tf_board = tf.keras.callbacks.TensorBoard(\n",
|
|
||||||
" log_dir=\"./log_dir\",\n",
|
|
||||||
" histogram_freq=100,\n",
|
|
||||||
" write_graph=False,\n",
|
|
||||||
" write_images=False,\n",
|
|
||||||
" write_steps_per_second=True,\n",
|
|
||||||
" update_freq=\"epoch\",\n",
|
|
||||||
" profile_batch=(20, 40),\n",
|
|
||||||
" embeddings_freq=0,\n",
|
|
||||||
" embeddings_metadata=None,\n",
|
|
||||||
")\n",
|
|
||||||
"\n",
|
|
||||||
"reduce_learning_rate = tf.keras.callbacks.ReduceLROnPlateau(\n",
|
|
||||||
" monitor=\"some metric\", factor=0.2, patience=5, min_lr=000.1, verbose=1\n",
|
|
||||||
")"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": null,
|
|
||||||
"metadata": {
|
|
||||||
"ExecuteTime": {
|
|
||||||
"end_time": "2022-07-15T18:58:57.594314Z",
|
|
||||||
"start_time": "2022-07-15T18:58:57.594314Z"
|
|
||||||
},
|
|
||||||
"pycharm": {
|
|
||||||
"name": "#%%\n"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"outputs": [],
|
|
||||||
"source": [
|
|
||||||
"plt.figure(figsize=(17.5, 25))\n",
|
|
||||||
"np_array = np.flip(collected_routes[1, :, :, :], axis=0)\n",
|
|
||||||
"\n",
|
|
||||||
"for chanel in tqdm(range(3)):\n",
|
|
||||||
" plt.subplot(1, 4, chanel + 1)\n",
|
|
||||||
" plt.imshow(np_array[:, :, chanel], interpolation=\"nearest\")\n",
|
|
||||||
"plt.subplot(1, 4, 4)\n",
|
|
||||||
"plt.imshow(0x88 * np_array[:, :, 0] + 0xFF * np_array[:, :, 2], interpolation=\"nearest\")\n",
|
|
||||||
"plt.show()"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": null,
|
|
||||||
"metadata": {
|
|
||||||
"ExecuteTime": {
|
|
||||||
"end_time": "2022-07-15T18:58:57.596313Z",
|
|
||||||
"start_time": "2022-07-15T18:58:57.596313Z"
|
|
||||||
},
|
|
||||||
"pycharm": {
|
|
||||||
"name": "#%%\n"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"outputs": [],
|
|
||||||
"source": [
|
|
||||||
"collected_routes[:, :, :, :2].shape"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": null,
|
|
||||||
"metadata": {
|
|
||||||
"ExecuteTime": {
|
|
||||||
"end_time": "2022-07-15T18:58:57.624444Z",
|
|
||||||
"start_time": "2022-07-15T18:58:57.598317Z"
|
|
||||||
},
|
|
||||||
"pycharm": {
|
|
||||||
"name": "#%%\n"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"outputs": [],
|
|
||||||
"source": [
|
|
||||||
"train_dataset = tf.data.Dataset.from_tensor_slices(\n",
|
|
||||||
" (collected_routes[:, :, :, :2], collected_routes[:, :, :, 2])\n",
|
|
||||||
")\n",
|
|
||||||
"# test_dataset = tf.data.Dataset.from_tensor_slices((test_examples, test_labels))"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": null,
|
|
||||||
"metadata": {
|
|
||||||
"ExecuteTime": {
|
|
||||||
"end_time": "2022-07-15T18:58:57.626439Z",
|
|
||||||
"start_time": "2022-07-15T18:58:57.626439Z"
|
|
||||||
},
|
|
||||||
"pycharm": {
|
|
||||||
"name": "#%%\n"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"outputs": [],
|
|
||||||
"source": [
|
|
||||||
"train_dataset"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": null,
|
|
||||||
"metadata": {
|
|
||||||
"ExecuteTime": {
|
|
||||||
"end_time": "2022-07-15T18:58:57.628442Z",
|
|
||||||
"start_time": "2022-07-15T18:58:57.628442Z"
|
|
||||||
},
|
|
||||||
"pycharm": {
|
|
||||||
"name": "#%%\n"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"outputs": [],
|
|
||||||
"source": [
|
|
||||||
"BATCH_SIZE = 64\n",
|
|
||||||
"SHUFFLE_BUFFER_SIZE = 100\n",
|
|
||||||
"# train_dataset = train_dataset.shuffle(SHUFFLE_BUFFER_SIZE).batch(BATCH_SIZE)"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": null,
|
|
||||||
"metadata": {
|
|
||||||
"ExecuteTime": {
|
|
||||||
"end_time": "2022-07-15T18:58:57.629441Z",
|
|
||||||
"start_time": "2022-07-15T18:58:57.629441Z"
|
|
||||||
},
|
|
||||||
"pycharm": {
|
|
||||||
"name": "#%%\n"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"outputs": [],
|
|
||||||
"source": [
|
|
||||||
"train_dataset = train_dataset.batch(BATCH_SIZE)"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": null,
|
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2022-07-15T18:58:57.630444Z",
|
"end_time": "2022-07-15T18:58:57.630444Z",
|
||||||
@@ -3379,12 +3448,46 @@
|
|||||||
"name": "#%%\n"
|
"name": "#%%\n"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"outputs": [],
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"Epoch 1/20\n",
|
||||||
|
"209/209 [==============================] - 1087s 5s/step - loss: 0.0052 - binary_crossentropy: 0.0311 - mean_squared_error: 0.0052 - mean_absolute_error: 0.0170\n",
|
||||||
|
"Epoch 2/20\n",
|
||||||
|
"209/209 [==============================] - 1025s 5s/step - loss: 0.0030 - binary_crossentropy: 0.0166 - mean_squared_error: 0.0030 - mean_absolute_error: 0.0076\n",
|
||||||
|
"Epoch 3/20\n",
|
||||||
|
"165/209 [======================>.......] - ETA: 3:49 - loss: 0.0029 - binary_crossentropy: 0.0136 - mean_squared_error: 0.0029 - mean_absolute_error: 0.0070"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ename": "KeyboardInterrupt",
|
||||||
|
"evalue": "",
|
||||||
|
"output_type": "error",
|
||||||
|
"traceback": [
|
||||||
|
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
|
||||||
|
"\u001b[1;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)",
|
||||||
|
"Input \u001b[1;32mIn [62]\u001b[0m, in \u001b[0;36m<cell line: 1>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[0m history \u001b[38;5;241m=\u001b[39m \u001b[43mgenerator\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfit\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 2\u001b[0m \u001b[43m \u001b[49m\u001b[43mtrain_dataset\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 3\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;66;43;03m# validation_data=validation_dataset,\u001b[39;49;00m\n\u001b[0;32m 4\u001b[0m \u001b[43m \u001b[49m\u001b[43mepochs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m20\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 5\u001b[0m \u001b[43m \u001b[49m\u001b[43mbatch_size\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m512\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 6\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_multiprocessing\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[0;32m 7\u001b[0m \u001b[43m \u001b[49m\u001b[43mworkers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m5\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 8\u001b[0m \u001b[43m \u001b[49m\u001b[43mcallbacks\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m[\u001b[49m\u001b[43mearly_stop\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtf_board\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 9\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;66;43;03m# tqdm_callback,\u001b[39;49;00m\n\u001b[0;32m 10\u001b[0m \u001b[43m)\u001b[49m\n",
|
||||||
|
"File \u001b[1;32m~\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\ml-programmiereprojekt-jv1ICgFn-py3.10\\lib\\site-packages\\keras\\utils\\traceback_utils.py:64\u001b[0m, in \u001b[0;36mfilter_traceback.<locals>.error_handler\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m 62\u001b[0m filtered_tb \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 63\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m---> 64\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m fn(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 65\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e: \u001b[38;5;66;03m# pylint: disable=broad-except\u001b[39;00m\n\u001b[0;32m 66\u001b[0m filtered_tb \u001b[38;5;241m=\u001b[39m _process_traceback_frames(e\u001b[38;5;241m.\u001b[39m__traceback__)\n",
|
||||||
|
"File \u001b[1;32m~\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\ml-programmiereprojekt-jv1ICgFn-py3.10\\lib\\site-packages\\keras\\engine\\training.py:1409\u001b[0m, in \u001b[0;36mModel.fit\u001b[1;34m(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_batch_size, validation_freq, max_queue_size, workers, use_multiprocessing)\u001b[0m\n\u001b[0;32m 1402\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m tf\u001b[38;5;241m.\u001b[39mprofiler\u001b[38;5;241m.\u001b[39mexperimental\u001b[38;5;241m.\u001b[39mTrace(\n\u001b[0;32m 1403\u001b[0m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtrain\u001b[39m\u001b[38;5;124m'\u001b[39m,\n\u001b[0;32m 1404\u001b[0m epoch_num\u001b[38;5;241m=\u001b[39mepoch,\n\u001b[0;32m 1405\u001b[0m step_num\u001b[38;5;241m=\u001b[39mstep,\n\u001b[0;32m 1406\u001b[0m batch_size\u001b[38;5;241m=\u001b[39mbatch_size,\n\u001b[0;32m 1407\u001b[0m _r\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m):\n\u001b[0;32m 1408\u001b[0m callbacks\u001b[38;5;241m.\u001b[39mon_train_batch_begin(step)\n\u001b[1;32m-> 1409\u001b[0m tmp_logs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrain_function\u001b[49m\u001b[43m(\u001b[49m\u001b[43miterator\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1410\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m data_handler\u001b[38;5;241m.\u001b[39mshould_sync:\n\u001b[0;32m 1411\u001b[0m context\u001b[38;5;241m.\u001b[39masync_wait()\n",
|
||||||
|
"File \u001b[1;32m~\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\ml-programmiereprojekt-jv1ICgFn-py3.10\\lib\\site-packages\\tensorflow\\python\\util\\traceback_utils.py:150\u001b[0m, in \u001b[0;36mfilter_traceback.<locals>.error_handler\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m 148\u001b[0m filtered_tb \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 149\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 150\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m fn(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 151\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 152\u001b[0m filtered_tb \u001b[38;5;241m=\u001b[39m _process_traceback_frames(e\u001b[38;5;241m.\u001b[39m__traceback__)\n",
|
||||||
|
"File \u001b[1;32m~\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\ml-programmiereprojekt-jv1ICgFn-py3.10\\lib\\site-packages\\tensorflow\\python\\eager\\def_function.py:915\u001b[0m, in \u001b[0;36mFunction.__call__\u001b[1;34m(self, *args, **kwds)\u001b[0m\n\u001b[0;32m 912\u001b[0m compiler \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mxla\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_jit_compile \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mnonXla\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 914\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m OptionalXlaContext(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_jit_compile):\n\u001b[1;32m--> 915\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_call(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwds)\n\u001b[0;32m 917\u001b[0m new_tracing_count \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mexperimental_get_tracing_count()\n\u001b[0;32m 918\u001b[0m without_tracing \u001b[38;5;241m=\u001b[39m (tracing_count \u001b[38;5;241m==\u001b[39m new_tracing_count)\n",
|
||||||
|
"File \u001b[1;32m~\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\ml-programmiereprojekt-jv1ICgFn-py3.10\\lib\\site-packages\\tensorflow\\python\\eager\\def_function.py:947\u001b[0m, in \u001b[0;36mFunction._call\u001b[1;34m(self, *args, **kwds)\u001b[0m\n\u001b[0;32m 944\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lock\u001b[38;5;241m.\u001b[39mrelease()\n\u001b[0;32m 945\u001b[0m \u001b[38;5;66;03m# In this case we have created variables on the first call, so we run the\u001b[39;00m\n\u001b[0;32m 946\u001b[0m \u001b[38;5;66;03m# defunned version which is guaranteed to never create variables.\u001b[39;00m\n\u001b[1;32m--> 947\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_stateless_fn(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwds) \u001b[38;5;66;03m# pylint: disable=not-callable\u001b[39;00m\n\u001b[0;32m 948\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_stateful_fn \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m 949\u001b[0m \u001b[38;5;66;03m# Release the lock early so that multiple threads can perform the call\u001b[39;00m\n\u001b[0;32m 950\u001b[0m \u001b[38;5;66;03m# in parallel.\u001b[39;00m\n\u001b[0;32m 951\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lock\u001b[38;5;241m.\u001b[39mrelease()\n",
|
||||||
|
"File \u001b[1;32m~\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\ml-programmiereprojekt-jv1ICgFn-py3.10\\lib\\site-packages\\tensorflow\\python\\eager\\function.py:2453\u001b[0m, in \u001b[0;36mFunction.__call__\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 2450\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lock:\n\u001b[0;32m 2451\u001b[0m (graph_function,\n\u001b[0;32m 2452\u001b[0m filtered_flat_args) \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_maybe_define_function(args, kwargs)\n\u001b[1;32m-> 2453\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mgraph_function\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_flat\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 2454\u001b[0m \u001b[43m \u001b[49m\u001b[43mfiltered_flat_args\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcaptured_inputs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mgraph_function\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcaptured_inputs\u001b[49m\u001b[43m)\u001b[49m\n",
|
||||||
|
"File \u001b[1;32m~\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\ml-programmiereprojekt-jv1ICgFn-py3.10\\lib\\site-packages\\tensorflow\\python\\eager\\function.py:1860\u001b[0m, in \u001b[0;36mConcreteFunction._call_flat\u001b[1;34m(self, args, captured_inputs, cancellation_manager)\u001b[0m\n\u001b[0;32m 1856\u001b[0m possible_gradient_type \u001b[38;5;241m=\u001b[39m gradients_util\u001b[38;5;241m.\u001b[39mPossibleTapeGradientTypes(args)\n\u001b[0;32m 1857\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m (possible_gradient_type \u001b[38;5;241m==\u001b[39m gradients_util\u001b[38;5;241m.\u001b[39mPOSSIBLE_GRADIENT_TYPES_NONE\n\u001b[0;32m 1858\u001b[0m \u001b[38;5;129;01mand\u001b[39;00m executing_eagerly):\n\u001b[0;32m 1859\u001b[0m \u001b[38;5;66;03m# No tape is watching; skip to running the function.\u001b[39;00m\n\u001b[1;32m-> 1860\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_build_call_outputs(\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_inference_function\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcall\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 1861\u001b[0m \u001b[43m \u001b[49m\u001b[43mctx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcancellation_manager\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcancellation_manager\u001b[49m\u001b[43m)\u001b[49m)\n\u001b[0;32m 1862\u001b[0m forward_backward \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_select_forward_and_backward_functions(\n\u001b[0;32m 1863\u001b[0m args,\n\u001b[0;32m 1864\u001b[0m possible_gradient_type,\n\u001b[0;32m 1865\u001b[0m executing_eagerly)\n\u001b[0;32m 1866\u001b[0m forward_function, args_with_tangents \u001b[38;5;241m=\u001b[39m forward_backward\u001b[38;5;241m.\u001b[39mforward()\n",
|
||||||
|
"File \u001b[1;32m~\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\ml-programmiereprojekt-jv1ICgFn-py3.10\\lib\\site-packages\\tensorflow\\python\\eager\\function.py:497\u001b[0m, in \u001b[0;36m_EagerDefinedFunction.call\u001b[1;34m(self, ctx, args, cancellation_manager)\u001b[0m\n\u001b[0;32m 495\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m _InterpolateFunctionError(\u001b[38;5;28mself\u001b[39m):\n\u001b[0;32m 496\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m cancellation_manager \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m--> 497\u001b[0m outputs \u001b[38;5;241m=\u001b[39m \u001b[43mexecute\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mexecute\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 498\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mstr\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msignature\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 499\u001b[0m \u001b[43m \u001b[49m\u001b[43mnum_outputs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_num_outputs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 500\u001b[0m \u001b[43m \u001b[49m\u001b[43minputs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 501\u001b[0m \u001b[43m \u001b[49m\u001b[43mattrs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mattrs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 502\u001b[0m \u001b[43m \u001b[49m\u001b[43mctx\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mctx\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 503\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 504\u001b[0m outputs \u001b[38;5;241m=\u001b[39m execute\u001b[38;5;241m.\u001b[39mexecute_with_cancellation(\n\u001b[0;32m 505\u001b[0m \u001b[38;5;28mstr\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msignature\u001b[38;5;241m.\u001b[39mname),\n\u001b[0;32m 506\u001b[0m num_outputs\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_num_outputs,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 509\u001b[0m ctx\u001b[38;5;241m=\u001b[39mctx,\n\u001b[0;32m 510\u001b[0m cancellation_manager\u001b[38;5;241m=\u001b[39mcancellation_manager)\n",
|
||||||
|
"File \u001b[1;32m~\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\ml-programmiereprojekt-jv1ICgFn-py3.10\\lib\\site-packages\\tensorflow\\python\\eager\\execute.py:54\u001b[0m, in \u001b[0;36mquick_execute\u001b[1;34m(op_name, num_outputs, inputs, attrs, ctx, name)\u001b[0m\n\u001b[0;32m 52\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m 53\u001b[0m ctx\u001b[38;5;241m.\u001b[39mensure_initialized()\n\u001b[1;32m---> 54\u001b[0m tensors \u001b[38;5;241m=\u001b[39m \u001b[43mpywrap_tfe\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mTFE_Py_Execute\u001b[49m\u001b[43m(\u001b[49m\u001b[43mctx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_handle\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdevice_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mop_name\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 55\u001b[0m \u001b[43m \u001b[49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mattrs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnum_outputs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 56\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m core\u001b[38;5;241m.\u001b[39m_NotOkStatusException \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 57\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
|
||||||
|
"\u001b[1;31mKeyboardInterrupt\u001b[0m: "
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"history = generator.fit(\n",
|
"history = generator.fit(\n",
|
||||||
" train_dataset,\n",
|
" train_dataset,\n",
|
||||||
|
" # validation_data=validation_dataset,\n",
|
||||||
" epochs=20,\n",
|
" epochs=20,\n",
|
||||||
" batch_size=512,\n",
|
" batch_size=1024,\n",
|
||||||
" use_multiprocessing=True,\n",
|
" use_multiprocessing=True,\n",
|
||||||
" workers=5,\n",
|
" workers=5,\n",
|
||||||
" callbacks=[early_stop, tf_board],\n",
|
" callbacks=[early_stop, tf_board],\n",
|
||||||
@@ -3392,17 +3495,6 @@
|
|||||||
")"
|
")"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": null,
|
|
||||||
"metadata": {
|
|
||||||
"pycharm": {
|
|
||||||
"name": "#%%\n"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"outputs": [],
|
|
||||||
"source": []
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": null,
|
||||||
@@ -3417,7 +3509,7 @@
|
|||||||
},
|
},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"plt.plot(history.history[\"loss\"])"
|
"plt.plot(history.history[\"loss\", \"val_loss\"])"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
Generated
+666
-1082
File diff suppressed because it is too large.
Load diff
+5
-6
@@ -17,12 +17,11 @@ scipy = "^1.8.0"
|
|||||||
Shapely = "^1.8.2"
|
Shapely = "^1.8.2"
|
||||||
tqdm = "^4.64.0"
|
tqdm = "^4.64.0"
|
||||||
humanize = "^4.2.3"
|
humanize = "^4.2.3"
|
||||||
|
pydot = "^1.4.2"
|
||||||
|
pydotplus = "^2.0.2"
|
||||||
|
matplotlib = "^3.5.1"
|
||||||
|
jupyter = "^1.0.0"
|
||||||
|
|
||||||
[tool.poetry.dev-dependencies]
|
[tool.poetry.dev-dependencies]
|
||||||
black = {extras = ["jupyter"], version = "^22.3.0"}
|
black = {extras = ["jupyter"], version = "^22.3.0"}
|
||||||
jupyter = "^1.0.0"
|
nbconvert = {extras = ["webpdf"], version = "^6.5.0"}
|
||||||
matplotlib = "^3.5.1"
|
|
||||||
pytest = "^7.1.2"
|
|
||||||
mypy = "^0.961"
|
|
||||||
flake8 = "^4.0.1"
|
|
||||||
isort = "^5.10.1"
|
|
||||||
Reference in new issue
Block a user