Last active
April 1, 2019 20:37
-
-
Save jcreinhold/7efaa7ddde709f5d6d9d31e6a87ed95e to your computer and use it in GitHub Desktop.
test fastai transforms with nifti images
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Test fastai transforms" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Setup notebook" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import os\n", | |
"import sys\n", | |
"\n", | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt\n", | |
"\n", | |
"import torch\n", | |
"from torch import nn\n", | |
"import torchvision.transforms as torch_tfms" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
" Support in-notebook plotting" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"%matplotlib inline" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Report versions" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"numpy version: 1.15.3\n", | |
"matplotlib version: 3.0.1\n" | |
] | |
} | |
], | |
"source": [ | |
"print('numpy version: {}'.format(np.__version__))\n", | |
"from matplotlib import __version__ as mplver\n", | |
"print('matplotlib version: {}'.format(mplver))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"python version: 3.7.0\n" | |
] | |
} | |
], | |
"source": [ | |
"pv = sys.version_info\n", | |
"print('python version: {}.{}.{}'.format(pv.major, pv.minor, pv.micro))" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Reload packages where content for package development" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"%load_ext autoreload\n", | |
"%autoreload 2" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Define test images" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"train_dir = '/Users/jcreinhold/Research/data/nn_test/real/train/'\n", | |
"val_dir = '/Users/jcreinhold/Research/data/nn_test/real/test/'" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"from niftidataset import *" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"patch_sz = 128\n", | |
"tfms = torch_tfms.Compose([RandomCrop2D(patch_sz, None), ToTensor()])\n", | |
"tds = NiftiDataset(train_dir+'t1', train_dir+'flair', tfms)\n", | |
"vds = NiftiDataset(val_dir+'t1', val_dir+'flair', tfms)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"src,tgt = tds[0]\n", | |
"plt.imshow(np.rot90(src), cmap='gist_gray')\n", | |
"plt.axis('off');" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Test fastai" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import fastai as fai\n", | |
"import fastai.vision as faiv\n", | |
"import torchvision\n", | |
"from torch.utils.data import DataLoader" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"fastai version: 1.0.15\n", | |
"pytorch version: 1.0.0.dev20181014\n", | |
"torchvision version: 0.2.1\n" | |
] | |
} | |
], | |
"source": [ | |
"print(f'fastai version: {fai.__version__}')\n", | |
"print(f'pytorch version: {torch.__version__}')\n", | |
"print(f'torchvision version: {torchvision.__version__}')" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Test fastai transforms" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"patch_sz = 128\n", | |
"tfms = torch_tfms.Compose([RandomCrop2D(patch_sz, None), ToTensor(), ToFastaiImage()])\n", | |
"tds = NiftiDataset(train_dir+'t1', train_dir+'flair', tfms)\n", | |
"vds = NiftiDataset(val_dir+'t1', val_dir+'flair', tfms)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"x,y = tds[0]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/jpeg": "/9j/4AAQSkZJRgABAQEAZABkAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBgYFBgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/2wBDAQICAgICAgUDAwUKBwYHCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgr/wAARCACAAIADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+f+iiigAooooAKKKKACv26/4J/aX8Zvhf/wAEtNE1rx/FJLN4W+H8mreHPhkvwysL+6n0efXxri6zcwX9td/a7aZ302VbuIxMltZ3DJZ3UtlHK35WfsDfs62n7Sf7SmieGvE0WlSeFdDng1rxxDquuPYC40eG6gjnt4nhSSczTGZIFMMbmIzefJ5UEM08X7JfsB+IF/Z71rQdK+F/hW3ivZfD3hxdI8U+B5YdK0v+0L68NxMbmJ9TgN/bQrcajZTQLBf3apAy2r2zOxAAvgf9rrwX8Y/Eg8JeD/FXjzTovFHi/U9QsYPCvinUpNG0O1N65mMKynTb6C8cWcmjQvBbWkES66sst19pdI46Hhjwz4ogOgfs4fFPwj4W1/wN4X8MT+KPEh+JV5brb6D4c1aSN/ENybnT5pUt759Ssr2KKDyLS6tLmGN4IzHBc3MHJ+OfiJ8bfit+zhp3hbV/G/hLTL/UWGm6nceJZNS1PT/s40vTraPV/wDRdEuIZgkmryaTb/Yk2x/bbOHy7lphdnf8Q6rp3xa0/wAWaT8WvCFj8SfC+qeGmh0v4szX/h6zl0Sf7LDLqF9Lp2j3AtkGdVfUBcozQW8cek3E8kbWV3KQDivj58JP2ztY1T4fftc/Grxhb+L/AIg39veeE9DhHjGHQrXx1b39nbvGj6dq62M2oWEl9rCwXUcI2Tos9o1tDDbi+uO607VPDPgTwJZeHdQ+Jmj3PgPwNpGhaJ4fni0SW4tPE82o6NqTabbtY6m1811HI0Xh64ES2Rfy7CBZ4r59Mlu7LQ0XxF48+Pujab8aPi58ENB0XTPhDpXiGT4xS6Xps1tpzayixafdQatDZBX0rUjFp+mSzzufOgb54YmgZxFr6JpkNv8ACDx94k8S+PtFsfDfgf4lroi+DvDqSmUTadZyRLrek3GoNbTWNzcX09xppluluIURUgAtbEZiAMr4beH/AA1pfxen8J6b478W6noF1o3iPXZZj4rs9a0DSbyPUrtZbnVn+0fatRn+wNcRMb6xaC7uV8uETaZcXUk/U/A/4OWngjVZtIk/ar8WfEHwz4X8XaT4n1LxFdzWNxpFzq6tGdS07VJwZoba7eKfULjToppNN8m6e3W5V7l/nxv2f/hv8SPjL+z547h0/VtE1m1u/wCzZvEUHjXwDqT+H7aayngit9PEAuLm2MOnW+pK/wBlFtcw6TeaWYLyIwIjV1etfADQPippmoeKf2k9NtNH8H6Xomqan4h8E+L9G1ZrdNL1HUPEVra3s9pMiX1pJqF5anUIpraUPa3FuBaLdy6tM1AHH6/4c/as+NGnaf4A8dfDrxd4Ks/EGlW/iHxJq+o+JVuPDE9pp9/eanFci2tU0xINX8iyVpH0+7sI7idmuGFuFtnEH7Tfxf8Ahnq+vza7b/s4+ChYeNfFfijxB8Q2uYNetLNdCXUrnTNK1rU5Y7fzJYor15nuBNOs9vZo6Q2dsnlxQ1tdsvi/8UvEGkfC74/weFPipq+ieC9ES68F6RqlzYyWVvqOkarr/wDZU2q/bLS8VbhLKG2hF2xWzk14NG88Qls5eT0X9nX4W+CfjtofwK/aV1bXvGfw3ufAHiO8N9o/h6y8JWZutL17UrVoGa9vrOSQQsttcs1vNAlnCkTz5s4JpYQD8O6KKKACiiigAooooA+jv+CT37Tvj39lL9vL4fePPh9pE1/cat4jsNEvbKz0q5v7me2uL63DLBa2s8El1LlF223mBZ/9S4KyMD+p3hSL4e/CmXX5/wBnS28Sx2vhgappltaeGvC9wkXjE2ulR6gbaKV7W7nR7u7trObT5ZdS+2m1+0JDNb+fbxah+SP7BH7NnxP+P/x60LUfB1j4jsNF8PeIdOk1vxloujXlxFolxLMfsCST20b/AGWW5uI1ghkbADtvJCxuV/bS08JfHH4YfBfx1+0hp+j+GPC3wz8J2+s6Fp+ppNHp2qeNm+16cyW0009o9pELpYYLKDybi9skuIhYz2l3bG6RQDkvAPhz9nr4l/GlpvjncaP8LfEfhr4KSw32qeAbfV7e+uNP0n7TtuLu4gWaC7j+wQxuLy3u5ltrjTbazWQNJaouf4z+F3jLxNq9voo+L66cthFYyfDfSNMPiCz8YWs+qwWcKte6VZS38kws7q30ES3PzMl5ZF2dtQkkIv8AgT4rftfeNvG2r3Pxl8ZeIrfxVoXxXYHT7nw3ZXg0631GaG8tjMbvR3+3Xv2iykjjg3XMctu1vc2VuqafZGTC/Zl8H/Cfxlp+gavrPwh8X6B46t/I0bWdB0/we2t6XFdSI2kRXFstxp0l5DbWb20dndQ2jMb4213DOLi10828oB6F4n8IfG/9lG9sPHel6xHL4/8AFniC01bxx470RbaO98fW9lpd7fXOj6X4evJnku7KO/j01Zb5dNgMCXc1wtvFaqUh8zi8F/FpvEmo/CL4G/Eua30oSfZPEJ1HUEg8P6/4eh0q10nSruTXDEbqRHtby3DSywrp95dG6TTpYIYSX+gfFPgDx/8AD/4Tmz1jRPE41608Y6nql94b8SXS+HrWPy7GfxFb6XqulR6imn3GlqlhqVitw8l9H5enRW0Nzaxmf7D4f8TvAfjn4g6B4v0rxz8NvDGrXNt4V1zRJZddfWdX8Xwa3qc2mXVzatBeR21xc30FlbmK2QiK5v8ANzLHLcLJetIAd98QfBGj+F/2etT/AGO/h9ruo6D44vvjJrcGn6l4eWXdDpkNjPJpus62LW81G7gtjexWFyL+6CTQwRafNGbSC1h2ef8AwT0/Qrzwzrmj/GnQPBw8Y/EHT/Ddp4Z8J+H/AB/e6Bq1lpE011q1lpunSQM9teS6gUtI7aB/s7SvaJJcTQzJFLXrPxx1f4h3n7ReieIv2nv2XfENrrnxRXTbfw1Z3en6Lf3GkX1rqTvPputSX95LA1nLZXEMiJHcRQSedcD7HDPeQra59p+xN4c0D4lfDn4s/Gm50nQ7I6tP4M0610DS0sLi9tL+1FiqCfUtLutOv4beC/sRFbzXN7DrLXd5JLe3KxpYxAHK+NPAa6Nr/iL9pDxh4hbV9d0XS38UeJvHkOmyzz6RYPdTanaazbWl9Il1HfWE2hixj0+9u3it5tR+zme+W7a2PEaf4X034v8AwN139nWf4e65puu+F7jQVvfDHi2+tbXTNNvk0qfVZrq3gnuTaJDFDDfQQPq9vdC8tIbFze+WbuaP0rSPhx8KP2ZPDniP9hxPGlxq1jF4b1PX9D8XeKfC0niy01XW5E0u7up5IdPiNz9oRYLK6lilsPtdtbalHdvdSQLbw3nQ6/rXjT9naLWPAt38ctL0jxI8dzpXxH8V2OvaTrlsL8NqWu6nO39oWhCxy30moRJCkW2K2uHubpJrlruGYA/nQooooAKKKKACiiigD7y/4IbfFDxN4P8AE/xG8CeG9G8JaifE+m2FtdWPiGxLztFILuxkkikWGdhEkeoSM8PkSCdxbxxrJcm1gn+8PGXxCv4PFmuDTf2hNC8PRXcel+OviN9t8dXGjW/jezhF3Hq+lwJdxWrWz3FzdvbGC5iSR7jT4ZLu4tLkot1+QX7Bv7RNr+zL+0Vp3j+7isoFu7WTTIvEN7e30P8Awjc0xURawq2Qdrg2sipM1vJDcRzIjxmFmdWX92v2bfgP8UtNuNBtbr4a+EPh3qni3xBawXPiCynhifWNQtzc3trB4msZTaSrPKLpR9mlF1dEaotvcKbqwikUA5fxjpHxr/ZQ8B3fwH+Huk3Gkw6t4+0ptRj12za283xHqFvb2q6vCdBupYbpE8sX32GJFQSw29tBFNNZTSmlq+s+M/F3inw9f33iHx1p3h7Q9A1HwZ4YutR8Talot5cO1vaadZXFxeNFbRRQSXWu6EsVzHa2qWkt/dI9ndtBPqFv13xx1HVvFfwn8QfsxS32sr8TPE9nPrGny31jb6Vpvha8vLyy8RHSx4gZ5bSe5gXS7oNO8F1M6SJJJPDFYajK2d4R1zxD410vxTq/hm+g0HV9OiPjHQPDvhrw7ZaTPqI0h/FH2RUZ/s5/s9Yl0yNpNNuzLFcPeRPcW0V5bzuAYPwK/am+Ovxj12fx1pPjS917TPGtwPDnhCx8c29/dR+NbmJL7VdXtdR8PQpFBNaRafqeoWo02SZUaa386G4c+UZeN/aI8Z6j8R10z4c+PfjbdahN8NvCd8uq6v4x1DVNO0/XfEOlXly7xQza3dpZ6nqCyykwkWssM5+0qfsNtDbNYdj4h/ZF+JPxLl0T9m/4y6/oF1qWuy2U3hfSfCPiiwhnuG0O41qa4a00u7ur24urFLO7v7BLmJIbm1mWDztNK2kbyYPxm/ZytvHfwU8X/EH4x6n4/m121sNctheeHPFmn3t6msaempjQNKuLfQYXsY1kSWwnjaOZTFJFLaRNBBaeXGAM/Z58K/HzTPh5qPwl8O+ENb0q2vJ9av8AT9d8S6fJpOueOfEy/ZLC8XQ4LLV4fOv3iguJG+1T3LJdWMZVrKaZntPZ/CWj2mkajB+y/qT2uu6J8S9e8Va/Z2Oq6hqd/r2qtYTaVb3MOowLYvG8o1GziupdTllkDIt3FbG4eC1vT5R4g8D6/wCPv2Nx8JvBOoeEdf8AGa/2LZ+Is/Eazl0VZ7O1T7Nb2UEcaQS6Zfw6Ze7ba0YQ2FmtldNHG0l3cW3W/FzTfBXh7xzb654h+IOqW+g+HdYvoLLwj4g/sfwXrfhXQNRvYbz+1/3J0xtEFzf2UreXL5hkhvbWXyNOnkhIAOI/Z98a6v4B+L1h4G8QPqPggeB/AMOlQfEPRvE2lLNLewjbo9/fabYRJa/ZDZ6iJdOhuAbO5VNRLG9WZLq2u+EfgreeO7zRP2e9G8OeHbLTvG2mTm98feM9LvLHxNZK+pXz6fd6dpKJYaleBb24hNzKz3UKSand2sc9tZR3ZBpf7QOhfF21tvir8W/iD4pg8baFqlnbP8XBfWOm6XrxginhtbeUQLJYNDE119jt763txNqNpe3FvNZRxyX1xb9ZJo2s/CfxPrnwdA1vVNEvLWxNn4VZrNr26ge4XyYdPl0hjJcaHdXOp3Wmsi747kXmoR20EZ04Q3AB/OzRRRQAUUUUAFFFFABX6w/8ECvjT8YfjX4T8dfCfx5+0X8VX0zwdaaJBo3hnwJ4z0vTr+40+6aawEQkup4r0Rx3X9jW0U9n9ontkn+zQQhr2PH5PV7j+wD8dfgN8AvjJqniH9orw34mvNB1Twle6fZ6h4QS2lv9G1LdFcWV8kFy0aXKpcW8SvCZoQySNuMqB7eYA/Z34s678LP2zvEel/CfxH+yrP4t8TfFnw3LrEepaf8AEC9u00XR7jVdFVby8NkY4L+3tdTsktbn7A9s0CWbrGo3efByXgr4s/Efwn/wmuo+LPE+q6Pr82h+LYT4wvPHdxe6P4nt5dFuXW2u575hqmmG3fU7a8t/7Rd2uhpoiScn+zxbWf2evCX7NniPRfAv7V3hj4q6vpOg6ZaRab4E8UXYMX/CN6oLlE+1RaTpiLbPYLeaotlPpwkEbQtMbS7le5eFel8f/EH4geC/AnijSde8YeJI9Hll0WDVLPx54uj1TSpbyKO9vZvAOmPIYCxtjNiVY74h7vS1025SKO6jFwAUdJ1n4it8PtK1f4J/BtPEnxg8RWbeJ18K+H9Hg0xdPl0rSIHW6tdO1EXS33m25vLa2gt447m4tIpUgks7WSS1l5jwD8Xv2kP24vCcNv8AD34faVNcaRe6bDpEfifwrqGt6ILqzbWrCRZon86XTLi7gnsrXyNRu5LeGCYsbiGf7PLb+gJ8Rr/4z/DzwB8MdS+InxC1TWfCU2p6wuuNoT3EPxLtrnVbzUkgn1SQ2eoaPp04s7gWupOFjl8l2JkazPmZHgX40fD39qDR/BnwB+Huqvoug+AbSXx5cXGq2b3N5YWl/r8eozw2dxdXAL3n2rydJ/tC2trg2rHUAt0yzx2zgHafGb4V2vhj9m3SPDPxs+Fut2Gra3aXHhxI9a0JrvxbNbWes6Tp1lYxyaXeRukgW60yLzItNuxfrZ2U0Ulr5emQReYfHW48I694R1qyg8SXGsfYtYvpvGXg7RdG8SabB4cZ9Q+xQ20Vrd6VPJ4iubrUNNjilm1Gyg0/7ZZ3diz2clzFDHr+O/ir8FfhvrXgPwv4z8YyR/Dj4oS2umeP7X4j+FLPUpFvNOstEa10BNOtr2bU7VrMRQ2zLLFd6haw3kU322dbhbiPpPhTq/xA+I3wv8Sfsj+P7XToJPDc2nX/AMPMa7f6Tp9l4iv9LtbnSZbTS9Aee3khmm3XMFtDepHJHckQWmYb5oQB41f4k+CviBrnjXxD8EWXQFupZm0rTk1cXVx4gt7S204WjazY21nFPImsWPli/sIrsIl08cyabNPdfbsK2+DvxS8DQWevfs2eFvHaaRa+D7rxR4R1g+Lza+JZYdTgupbW4vLNbaRFvLZtR1e0vL663yRW76bdW9zOYZILzkPj/wCMf2Qta+J3ifwN8OfE9neWdn4VnTwh4hk+HWoz2Gm3F5f6bcQ2d5biVoLexsYtEVwjWsTut21xDYX0pWe49Y8TfC67/wCFxjwto3wN+FXw7TwFJa63oPxN8O/D+a3/AOES8RJHeHy9SuPIsrPUPJvNJWA6lFALSOwa9eaWKaSKVwD+c2iiigAooooAKKKKACiiigD6N/4J6ftu6H+yX4p1rR/i3oniXxH4E1vTpJZPDOia0tssOsRoVtdSVXBAuI0aeKK4Ro5rV7hbmJzJbpG/6m+FP2tPhV+1Re+Hfgdr/hrUfGjeErWXTvDGn+D9D1N9Q0y302a3jsdUeLTLa7th9qtLq0zdaasFzbm6vUitDcSWU8P4S16l8Pv2tPiV4QudEj8QGHXLbQXg/s2ecC31K1SFoTAsd/EBcMsKwqIIZmmt4T8yw5ANAH7K2WvQ3ugQ658DvhDYeFdd+EN3qg08i88PR2DkanoYuU00CGzhW8tLuNLuYpcWc8RvYld7wMhqX9oj4p/FLX/EPh+y+JnhTwmdR8deJ9RbXLj4uX2madHpv2W7tZ4Jjr1xbTNF/aMsMMdsbR202CPfZRB1R5bLA+F+n/Az9vf4b/Cz4m+GdM8X6rpdh41mg8N6T4A8JaNaaRp+uiE6vPoMWn3YsrO2Npp32xoGlN751zCfOb7LPb2t96T4c+MXg74W2n/C5PBuq3t94c8NSzW66VdWlxL4g8OSxzyQxNa6jr0Et7ollb2cen2S2FvcJOp8QLzbyXNvPGAb3inRvF9x8Zbe08R/BTRfD9p4as/C82leCrJrfU7zUxqEmmatc6LFEkt0NVluI/DsgmmnhFzLHCDb2TP9mW843RtTi0D4Ut+zHp2geLPFeq+P/hZq15rN54bkvpl1DxNqMOmOIYTLPp93AHjtBcz2ELXsR/tG/M0clppskjet/wDCF638S/i14T/4KRpaJ4S+Hel66f8AhNfC/jzRtL1N4bfTLYzaeEuYE1KC0uRfWcokTdpUkV5PENgvjJJceN6b4I+K3hzwfYeINd8faCT8NJfDmofBuXSbjSdQXTdUnvr+O0ksZSLGO8s7q4tQq4hcXMjTmdZriwl1K3AD4j2uj+CPhz4W+H9po3hPUfC7eGfEPi+K6s47/SNEW3tXvYdKvWnFjok/mPZx69ZRmKVEjxp9wLjd5CX3O/s8WH9h/Cnxl8OdX1rR3/4SrQ9W8I69rlv4S1OyuNbgm/saKCDVLWyuGawubz7RrMrSsGb7Np1xfxIi3lzeXnR/tO/Hrx38K/HnjG38A/DC+8KeJruytfFOqar4GhGlibxBcjS5b+LVpXFzb3kMA1OTXlv2kZ7QzW7R3FlMjGLqdRWz/Zs8ZN8V/EGsWkvg7RdSstF+K/xH+HsCXEUemwsLfR7QT3kV6t1dXFxqVvdu9zcfaYEt4EzGPs0MwB/O5RRRQAUUUUAFFFFABRRRQAUUUUAa/grx/wCPPhtrS+JPh1421fQNRQoUv9F1KW1mXZKkyYeJlYbZYo5Bzw0asOVBHZeGv2yv2ufB7H/hGf2n/iBZxuqrNbxeL7zyZ0C2qCOSMybJU2WNkhRwVK2kCkERIB5tRQB9f/Bb/gsh+1R4a1rxtp/xZ+Id5c6J8RLTUG8QzeEdB0vS7uHVroX3/E3QW1vEs0+NRvIZAzI8ltP5SSwNBZy236BXX/BaT9h3VfFvgLWR8ZNI8/QPhtpugeL9UNrrWlLq9wZLFZpBbQ6HewTCJ7EvtliVvIaB0leVXtB+H1FAH6v2f/BaL9g29sLHwxp3gf4ieDtMvJrGHxRa+DfC9jpL6nLZxxTwarJqNvqD3kBOoWsLCyhUrbRXDustzNY2Ij4L4jf8FdPh/o/ha3sdC8ba/wCKNemhvdDl8YaNLcadf2em/Z309pUFzG0376xnEMKvezKiWpllgS9eK9h/N2igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//2Q==\n", | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABHNCSVQICAgIfAhkiAAAAk5JREFUeJzt3VFugzAQANF11fvfIGdNP6KIhgA2CYnNzjypf61ExXhtaKWUiLgGwPWK+DV3++l9AerLAOAMAM4A4AwADhHA/AmglNLpSsaDCGDOR8IJMgBN0gfgat+WOgBvfl3qAFRnAHBpA3D8t0kZgDe/XcoA1M4A4AwAzgDgUgbgH3vapQwgwghapQ1AbQwAzgDitl1Qt4zf3hcwAvKbQycAnAHAGQBc2gDI+/qapYNu2gD0bGlRpAzA1d8uXQDe/H3SBaB9DGCG9kbQAGZoW4gBwBkAnAHAGQBcugBop/h3pQtA+xhARyNMKwPoaIR3DikDGGFlnUXKACKMoFXaANQmdQBOgbrUAagufQBOgW3pA4gwgi2IACKMYA0mgAgjWIIKQM8MAM4A4HABeA54hAtAjwwADhuAW8ENNoAR/hljBMgAXP2TEpAPj15DnwTICaAJPgD6doDfAv4jbgf4CUDnBFhAmgROADgDWHA/GBIOiAawgnDzIwwAzwDgDKAi+1ZgAA0yR+B7gBf0fk9QSjnsGgzgRb0jOIoBvOnsIXgGgHMCHOSsk8AJcJCzPik4AT7gTNPACfAB908irX0d4XK5vHet4QQYzjcniBMAzgAG9M0DpVvA4GrbwVYsSz87/34DgHMLgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4D7A7pDX+mW4cytAAAAAElFTkSuQmCC\n", | |
"text/plain": [ | |
"Image (3, 128, 128)" | |
] | |
}, | |
"execution_count": 14, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"x.flip_lr()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"MR images are not within the normal range of values for an image, so the images will appear washed out with this plot." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"tensor(1203.0923)" | |
] | |
}, | |
"execution_count": 15, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"x.data.max()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"tfms = [\n", | |
" faiv.flip_lr(p=0.5),\n", | |
" faiv.rotate(degrees=(-45,45.), p=0.5),\n", | |
" faiv.zoom(scale=(0.5,1.2), p=0.8)\n", | |
"]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 17, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"torch.Size([2, 3, 128, 128])\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAQEAAAD7CAYAAABqkiE2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvDW2N/gAAIABJREFUeJztfUmPJNd19cl5rKysoaubPZM9kBRF0iJED4DgnWEIXhhaeeuNf4d/jQH/BAOGLQimJFsGJdI0B7HJnqqnquqas3IevkX63DxxXzRN8SOttOOdTVZlRr548TLi3XPn3Gw2Q0RERHaR/31PICIi4veLuAlERGQccROIiMg44iYQEZFxxE0gIiLjiJtARETGETeBiIiMI24CEREZR/H3PQEAyOVyMWIpIuI7xmw2y6W9H5lARETGETeBiIiMI24CEREZR9wEIiIyjqUwDH5T/PCHP8S1a9cAAM1mEwDQbrdRqVQAAL1eDwDwxRdfAAA++ugj7OzsAABGo9H/9HQjIpYSkQlERGQcS8UEvve976FerwMADg4OEp/94Ac/wOXLlwEA5XIZANBqtYwB1Go1+4w1Eg4PDxOv5XLZxucxJycn39n1RET8b0BkAhERGcdSMIGf/OQnAICNjQ2TzMViMfF6/fp1vPrqqwCAtbU1AEC9Xke1WgUAjMdjAMDx8TH29vYAAPv7+wCAUqkEAHj33XcDlrC9vW12Ar73TcB5/s3f/A0AYDKZIJ+f77GffPIJAOBf//VfAQD5fB7vvPMOAOD8+fM2x36/DwA4OzsDAHz44YcAgOfPn3/jeUVE/HdYik3g6tWrAOYPdbvdBgAUCgUAwOnpKYCkIW91dRXA3AjIh5oPyv7+Pu7fvw8AthlQZbh9+zZyuXnQ1L179wAAuVzOzskxaEj8uqjVavjbv/1bAMAbb7wBYG6UpEpD9YXXlM/n8dprr9k1APNN4+joCADslRvFYDBAp9NJfDYcDm1zOz4+tmuPiPhdEdWBiIiMYymYwMbGBgBgZWUF0+kUwILekyIfHh6apLty5QqAOQUnU3j27BmAuRS/e/cuAJiq8PLLL9t5yCjIJlqtltH2RqMBYC6dKb15/l//+tcvnH+5XMZf/MVfJN6bTCbGRHhOjlkqlXDhwoXEPHq9nhktyQ7o/jw5OcHTp08BwJjM8+fPMRgMbB2AOZPqdrsvnGdERBoiE4iIyDiWggncvn0bwFxSUuelPk0pfXJyYnoxWUIul8NwOASw0P8fPnxoQUK0NVy6dAnAXNLT8MhxgYXhkG7GVqtlUptS9ty5c/YZpfjW1haAueSmvk9JXavV7D3Ol1K/Wq3aGDznycmJ2S54Lbze4XBo3+Vcm82m2TUo/Uulks2b6xIR8d9hKTaBGzduAJg/LHxgeLPrw6gGQWD+INOSzgehUCjYw0m1geoGsIgiZFRhqVQyWs2HtlQq2fn5yo3q8uXLeOWVVwAsNoZCoWCbF1WKYrFoDzjjGzivcrmMlZUVAIt4hUqlYvOgikOD33A4NDWJG0W1Wg28CblcDhcvXkysGzc9qksRER5RHYiIyDiWgglQso9GI6PC3ljXbDZNopIRjEYjk4KU4levXsX6+jqABRNotVoA5sY6Sk+ec2try1gE6Xer1TKmQHWAEpjGO2AhgcfjsakBymQ4d7IJQv/X4736wPl0u117j8eUy2W7LjKOXC5na+QjL0ulkjEMspaICCAygYiIzGMpmABRqVQSujoA052vXr1qUo6fPX/+3KQlJd+FCxdMLyYj4GeTyQSTyQTAwvX30ksv2RiPHj0CMJe8mp8ALJhDqVQy5kD7wmAwMDcgpWyhUDAXpWcC2v+RnxWLRZsbJTZdoqPRKJVV8Lq4Rq1WC2+//XZivmQC9+/fN0OiGjFjNGLEUmwCfCBbrZYZ8fjA82a+ceMGXnrpJQALv/vZ2ZnRcBrpXnrpJTPA8SHk8YPBwB4ihh5Pp9PEwwzMH2Q+kHzQdCOhwU4NeRyDD2u9Xrdr4Tlp3AMWDyI3Pd1IuCnx+JWVFWxubgJAwvpPFYHnXllZMY8I1293d9fWmMfzmEqlgu3tbQDABx98gIhsIqoDEREZx1IwAfq08/m8SXQvPdfW1uw9JvxMJpPAbbi1tWXvUVIz2u758+cmeWnoW19fN3pPKn92dmZSk4ZBlcA0CFJiHxwcGIUnNb948aJJds6b7CKfzxuD4Ws+n7dz8jhex5UrVyzWgfM5Pj424ynXKJ/PBwxDDatkJlyrc+fOWQ4D1Z7d3V1bD56LEZgR/zcRmUBERMaxFEyAhrJCoRAYBintcrmc6eIMgCkUCmb8o3RrNpsmDXnc48ePAcwDZiip6T5sNBr2XY3Ko1GOGYmUlMVi0SQ2Jf14PA4MjoPBwN7j9an0p/TmMcVi0dgJ2RAl8e3bt80ewnNvb29b6jOlva4fbRhcv62tLfsuGcG1a9fsPeKLL74wJsAxaD95//33EfF/D5EJRERkHEvBBIjZbGaSka/EaDQKrPJaf4BStFAomCSjpGQA0vb2tjEBfm9lZcXeowV+dXXV9GAyAnoaLl++bJKdTCCXyxlT4FjKSChtlRF4fT6Xy1mBkT/4gz8AsGBD6+vrCbcoMPdI0CZBhtFsNu38ZDX0lMxms4DxbG5uWjgxryWfzwfZjNevXwcwD0p67733EPF/C0uxCdDoNp1O7aHgA6M0mwZEPhCNRsNuekbN9ft9843TPUZ14P79+/agkbZrBSDS6rW1NZsTYwdYaGRzc9M+44NTKBRsE+JDd+HCBZsbx1eDG6k+x5hOp0a7uaEQmpbMeXz++ee2yfHam82mPcDctPggl8tlmxvXbzgcBputzombF6/jr/7qr2xj47kHg4Fd15MnT2y+Ef97ENWBiIiMYymYgBq2PHXm/4PBwKQQJVO1Wg0MiUdHRyY1yQAYELO3t2dGMY311wg+IBm5SGZC6q1Rh/yeuvw01ZfXxWvQa/OMp1QqJYyginw+b9KWzOTg4MCkPtnN5uamrY2PUqzX68E1aUVnzdb0EZFkTevr6/jrv/5rAMB//ud/AphLf7IC/71erxesbcTyITKBiIiMYymYAKWQwrvQcrmcSVZKtGq1at/VkF8a8yg1GSykLkWOMR6PTQdWqeWDhPja6/UCyZ7P522enPdgMDCJyO9qGLMvAzaZTEx6kwlo4A/tBMyLaDQaZkOgQXNlZSXILOQ1DYfDBHPR8+i58vl8IixbX/v9fsLmAcwNlTzXrVu3ACBhmPWGx4jlw1JsAmpt91SbKJfLdvPyoapUKnY8Ken+/r5FFNLCz4fx9u3bFjfPh1wNg3yvVCrZ+XlDK9Xlw09DZbVatTH42dOnT4O8Bj6g1Wo1qKE4mUzseG5Q+pCS8nMj6ff79uDyvXK5HKgB3Bwnk0lQ9VhTqzVV2ati3Nj6/b4ZQFn/8NmzZ/Y5C6/wge/3+/j0008BJCsix6pHy4WoDkREZBxLwQQoSUajUUDNlbp6Y9pwODQGoPkBNAQyYpAZdW+++aZJZUpFrXBMqVitVo0VkAHQ3Xj//v2A3q+vr5vhUGk1DW804N28eRPAvPoxv6vQ7wILZpLP5xNt1rhWaQZKlfL6WaVSCXo57O3tJcqy8bg09QyY/wb8jOrA66+/bsZWX+7s7OzM2A9VtF/84hdBi7mI3y8iE4iIyDiWggl46QUs2AFftUgHJeX+/n7C/QfMJTWDViih3nrrLQBzCczgGb5Wq1XTVzWjj3OiNKaUe/z4sc2D41cqFdNzvdEQWLjr1KXny5cVCgX7W5kRv6+sgHPl32o/0QhEIBlExbV68OCBrZ8vsprL5V7ISCqVSsJuAsyDo3gtvhjKZDIJgr60pkLEcmApNgFNsfWhtoRa4KkCPHnyJBESDACffvqp3divv/46gAUN39raMsOWljInJeZD1+127WalNZxW+TfffNMoLh/86XQaeBG07iCTf0ih8/l8YBzTB5ljcI5pRsBKpZKINuSrT4HmZ0+ePLHCIfSa6EZCCr+3t2eGVKpO3Ly09iIp/YMHD+w3SFvHtI1BjbL+2iP+5xHVgYiIjGMpmACl3HQ6DYptUGoAi9r5NNIdHh6aVGME287OjiW8MF2Y/vRarWbSimOdnJwEhsFOp2PqwrvvvgsA+N73vgdgXpqL0lCTnTgG6Xc+nzeJ7plALpezc1EKzmazQNoTGqXI8xSLRVsjjTr0cRNq0KTxlC7U4+PjoETZ8+fPg7qKXL+trS2bG6MxP/74Y2NmXrKXSiU7F5nD2tqaJTBRDTs7O4tqwu8RkQlERGQcS8UEFD7Vdn9/H19++SWAhU67u7sbRAUCi1RZvhL9ft90X0qm/f1901tpUOz3+ya1ySq0gjElJXVlDdDhtdRqNfvcM4fBYGASlRJb3YAcj1K6Wq2mZld6A14ulzPmRJsDS6YdHh4a+6B+vr29HbRb0zJktJ9wLV566SU7J5lDt9tNTfsG5r8d14r2mWKxaHPib/b48WNzsUb7wP88IhOIiMg4loIJqLVYw1z19cmTJ/j4448BwF53d3dNglDCq/SnzqydgiidaS9YWVkx3ZTSdmdnx+ZEic3/L1y4YKHHKkWZ10BoeLF3k2l4r4Yba6NV/Z66D9U24BmUBlultXin9Oa5r1y5Yt4P9UTwmvkZey9Wq1VjGMzBOH/+vOn9nI8GfHG9laEw01FLrHNc/v4R/3NYik1Aa+/zJvdUV92HvJl3d3ftRuL3tre38W//9m8AFinKWhnHdxne2Niw8VjR9+DgwDYX9ZEDyQdYI+vS3HVEmlHPxw50u91gDJ57NpsFCU1p58zn8/a3f6j6/b5tLlRtWq2WrZFG+9EgqE1YgWSyFdfqrbfeMjXqq2ICuBEfHx8nXMK8Du8SjvifQ1QHIiIyjqVgApRQWhCERilt00VaSgPayy+/jIcPHwJYlN3qdDrmFvvss88ALCTU1tZWagERH+1XLBYTjUeBhUTt9XqJ9GZgLnU5hkYdEv6c0+k0SK1N6zugWXxkQZzXixiBDxLSMb3btV6vm/uSa1ooFIwlKYMC5myF18X05Xq9bkzBs7JOp2P5G/xd+/2+uWk12IrXpy7TtLWL+PYRmUBERMaxFEyAUmJ/fz9RORdY2AZWVlZMr7xx4waAuaQiAyC0xTcZgZbTorGLbqp2ux1kDHI+/BxIljnzUiqXy5m05FhHR0c2X58RqYVGfY0EINT1c7mcnZ9GzGq1amukBU94Lg315Xr65q2XLl2yICjaBqrVqn2Hc9O6CRrYBSTrFKQxGF4Lx5hMJkHI9NramgUkkXGxqjLXMOK7w1JsAvpDe987b86XX37ZbkBG++Xzebz66qsAFpT13r17djP6qr1HR0f4/PPPAcDUiEuXLtnGwIfkyZMnZiHn+bk5aQNT3vwaAcjPOp1O0OiUD45WSeYYs9nMHjoaIbWRqvc0aGqwVi7m5xyX13bt2jXznJDuX7lyJfBqaHMVb8ArFot2DZoTwJgLPtz87PT01P7mbzwajWzeL7/8sr3q5gkAd+7cATD/nXwVpohvF1EdiIjIOJaCCRAHBwcmCbQZJzA3RNG1RWn35MkTkzD0W587d84kqa+ue3R0ZNmGjJo7PT01KU+J3e127W/Sb6oFw+HQJDzfy+fzNm8awjqdjr1HCalqB8cnDa5UKoEEJorFYsJVCiTZB1lTpVIJMvk4xzfffDMRp8AxCI1WTMvg5PowT4DSv9Pp2DnTahL62AfNXNSWafyNfIo1sCgTF8uSfTeITCAiIuNYCiZA6fLw4UOLJ/c5+4PBIMgnWFlZMcnBzwqFQsKdByBhLKObURt8UlpRiquBjZ9Ruqk04vEajUeGcXBw8EK3oTIBfra+vh5kM2oegi80om5JtS94Yx7HaLVagWszl8sFc8vlcokORXrO0WhkxlYaTzXKk+xA2QjXj++dnJzY9dGw2Wg0jImQPXH933rrLfv7t7/9LSK+fSzFJqAGMG/R583D7sBAsgqONyCqf96Pn+bPr9fr9h31lfMB9w/JbDYzYxePOTw8NLUhLT3WG9gajYY9CLrJUTXgNWkEng8l1gIiNGhqAxPfKm00GgWRiJqyzPnk8/mg9DnnqEVcuCl2u11bB/5WOlZacpiPqiyVSmbApBrIxLDpdIrvf//7iWuncTfi20FUByIiMo6lYAKkk+Vy2SQM1QJKu1dffdUkl/rp1SXHMbRuH4CEIYpqhqb1ekndarUSfm0ACdeYLwhydnZmNJafdbtde4+vlKyXLl2yuv0qsX3TEaXj/Eyj8nyK8ng8NjbjC5NoNCExHA7tPU3w8fkb/E0eP35sTIDz6PV6ds1aD5LryWvg76ORksqy6BomG/K/HbBgahHfLiITiIjIOJaCCWh+gC+oQX1zd3fX9EVKufF4HBj/tKyXdioC5hKeTIDvzWYzk2Q8l0ow3958MpmYRFIpR31Ys/YoQRn9RgnbaDQSRUcJ75rTyDufSqxIYzWEfk9j9fkeJa52J+JxnDftMc+ePTOJrnPzBk1lQ1wPLTlG+w1Tst944w3LReD4NHZubW3ZfBjdOJlMrJxcxP8/IhOIiMg4loIJaLELBrfQ1cYa+dr5h66l2Wxmkk91YEpXBhDR8kxpAyxy6jUnQWvwq0UcSFrxKcn4vXw+b+9pGDD1XzIYzmt1dTXhLgTmurK37Pv8fM4NmOvT2sORx/s+iRpIpD0CCTIF1c+5Drx2MoFut2vn1PoD3iager96XIA5G2N2IiX76uqqMS56BeiB6fV6CS8CALz22mv2+zGQyOeQRHx9LMUmwMo0jx49sjqCH330EYAF7bx165ZReaWY3BBIH3O5XJDIQppfLpdtk1HXGUEVoVQqJboL62u/309EIHIe6u/nWByP5+T/2j1Yk3XUtcZr4Xx8FWb1z/N72jjEP5Dlctk2F90EvOo0Go2MklMFopF2OBwGLljtI+CboRaLRZsPDX43b940NYDz+Pjjj+3h55qqQVbrMALzDZ8bcKxS/P+PqA5ERGQcS8EEGM///vvvm0SgC41pwzdu3DCpT+mmriWVQr6iMI+vVCo2BnFycpKaLUfpRlWCEm1jYyMoznF0dGTSUstvUcr746vVqqkIZA7AIjuS8+G1tdttU3c0aEgDh4C5pPbUOa1slxpFvSTVnAQaBqkWjEYjq0RMdpPWDp3X2Wq1LGNRS5rxOj/55BMA88xPsg+N/CR8P4OzszNjKZr2HfHNEJlARETGsRRMgD3yyuUyfvSjHwFYxPZTl2w2myYNKXlKpZJJNQ1xpQSj0U1LbdFgxtdut2t/q15Mic5xafirVCpBodHpdGqsg0a0arVqZbd8PH+xWDRpSykLIHBV8jyXLl0KWqoXCoXAkDgcDk1/9pmL2sVIi5Zq5iSP4zx85d/V1VVjLjT4NRoNM7jSLsPXc+fOGfNiOPVnn31mdh8ywDt37phk1yIyugZcU86bLIn2haOjIxsj4nfDUmwCfNC1wAffI6VeWVkJKulodV1N/fUWcu0UnBYJSEu0xh8Q3kKvfm4+LNVq1egxk6F2dnZsA+FGRZyentqmwXNqOW96RnQevHY+fLPZzK7Z1/bT9zQmgONxPrVaLdgU06BGTJ6fm9K1a9es8jB/Mz6gg8HANkX69R8+fGjXTsv+s2fPAsrPtV1ZWQm8K4VCwTYJXt/29nbcBL4hojoQEZFxLAUTePvttwEkW2CRYlKajsfjIGZf/fk0Bp6cnCRcjsCCUq6vryeMf0BSSqv6QGnmy2/NZjOjxDx3r9czJqCGSp8JqW4+X39wPB4H6cWUgKenp2Y443tad5CoVquB61MpfVoFX1+iLJ/P27XQmMexqtWqvceybpcuXbI14ivPeffu3aAdulYg5u9y69Yt+66vLtxoNIwtpcUhqErE+yNGE/5uiEwgIiLjWAomQOmixj/q6dSxz87OEn0BgPnuT8lB6XN6emo6NY+j5G6320HTT3UzUjr3ej2TNhxDA498K67RaBTotJpL74OXgIW0p5Hs6dOniVZnwIKldLtdWw+eu16vB3n/+Xw+URBVX/P5vM1DIww5hs6fTODWrVsAFmyh0WiYy5a/WbVaDaoN37t3DwDw4Ycfmk2AUaGj0ch+Y2VPWq9Bz6lVmLW6M6EBVhoRGvH1EZlARETGsRRMQIt40mVGCzLDSDudjkl7Sq9qtRp03JlOp2Y5ZpFSWrLb7bZZulUC+jz7o6Mjs1xTep8/fx5AsuoQJc8rr7xiUpuuMO0fmBaCTGnGoKhGo2FMhFJQw4K9V0OrKvkKRnp9WpLNFzJ9USkxztu7abUngRYE5Xz5m7Hyz/b2tq2H5nhwDM238G5X7YPguylxnsAioKnf75s9ifaKWI7s62EpNgH1mdN3TDVAXXM+br1QKATpwrVazTYB3hR0r2legdYM9IUvnjx5YjRWk344lnfNnT9/3uahPRT8w8nvHR0d2QPDB6jdbtv5fRXh6XQa+O41X0GNab6gCjGZTAJjoRYm0d4I/K4aVIFkDUON2uR7fOAZEdjv9xNxDVw//j5aAIXz4MNPwdBqtez6dKPiRkw1ifMDFqoK7yEmJ0WkI6oDEREZx1IwAUqOBw8eGBOgpCHlvnjxohnw1M1HaaLSxUcWqgSmtNUgIC/B9vf3ExlrOh8NuqGqooFMqjZ4JsAxWq2WjUsppcVKvLFuOp2mGsV83H+hUAhcbGqU9C7C8XgcrJVS7rSMQT++GiN9UZF8Pm8MitdWq9Xsd1SXqc+D0AasvozaycmJMSnNiOQ18F4gg4lM4KsRmUBERMaxFEyAhUPIAoCFUYrx91tbW4lcemAuLTTsFpjrhdqAFFjoqkdHR+Y+ZACPlhLjcY1Gw/oTcFw1+BFkAsDC+Ej3Xq1We6FhMJ/Pm2Sk7vvo0SMLcqJdgZKt3W4njHOErzGg80vLs/f9FbWvogbd+BBidd/5nohpxkhe02AwsHNy/pubm7Yu/C1OTk6CQCm1OXAM/mZHR0fG2qj3j0YjYwWU/PzNarWaXUNscBpiqTaBfr+PmzdvAlg8/Gm1ALUCkE+A0YaavMn0wecYaq3mTckHs16vW/UbWrI/++wzAPMb0G9GZ2dn9jARV69eDdp9qT+f18VcCVVttNISMH+ouMloxWWe31cH1ve0s7E3GqrBUbsq+1wE78NXaFMYrhW9MoVCwa6Bm/qFCxcCg+bZ2Zn9zevjWNVq1ebI3IAvv/zS/qaB8OzszDYGpnVzHWu1mp0zbgIhojoQEZFxLAUTIK1eX183QyClFotGaHtulcTaqpuvlEz0IbPN9dHRkdF1SitthqkSj3OihKThj1IGWNBePZdKT6a5+jp76qrk/JvNZlCEhCiXy4nSZ0CyxReRz+dtPBpAqRKVSiUzWiq78rEG0+k0YBj8TGMfiPF4bNdFKc6sQi1pRsbTarWCHIBisWjn4u/PueZyOWOKLELy5MkTuz5K9r29PaP/NEbSQKgRlxEhIhOIiMg4loIJaJy41/vVuEcpRMOWuve0i5EvIUaXFLCQDjRUlcvlRPciIBmYRCMZpXk+nzcbgwb6UCrTUHX//n07L/VhjYv3kXoa/KOMgfPxQTfao0FzAfg3jYy/+tWvbN5/8id/YvMFksZDru1sNgtqDHi3Hcfj8b7HIaV4o9EIioQUi0Ubl+yg3W4HVaP5vSdPnlh+hWYi8jfTFvNazARYMJ6DgwML/orlyEIsxSbAm1IbdfKVN3Wz2Uw8pMD8IfGegJ2dHYsUpHHxtddes+956qoPH8fnzQQgSEYCFjeSJjRplSFgTlNptNLxeE1aBAWYG7i4SXCT42ZWr9ftXOoN8fEEGklHFejnP/+5rSfHYxIQaTOweOjU2Ero5sWHX1+9OpUWUsz3NHxZvRVeBaF6dffuXTMCalSjNj/hGlPV4ybE36RWq9n9EREiqgMRERnHUjAB7uClUimIauNuXq/Xg6YcpVLJpCENP/1+P2hmyeNrtZqpAcTz589NqnD84+Nja2ZBnzMTfWq1WpAw02q1jH0Qg8EgYDP8XqfTMXeWtvqm+uAlq8JLYj2+1+uZ8ewXv/gFgEVTjvF4bJ/98R//MYA5A/MNTDQ6kedIizrUOo8viozUvIKvin5UQyiZDI2B9+7dM7bE45QFkTWNRqOglwOPOT4+jv0JvgKRCUREZBxLwQQonTWYx3e1yeVypldSl5xMJrbDk02o8coX1tAioQwkUf2X5757964Z1Ghgo8R+99137Vx0I3a7XdO39fxqrNTXg4ODIEKu2WwaE/BGwHK5nEitBdKDhe7evYuf/vSnABYVnClZK5WKsSW+l9anQN2MvijKZDIJ2JVKWJ/yWygUErYGvV4dYzabWbCXtp0DklKcc2w2m3Z/qA2Ja8T7KS3fIyJEZAIRERnHUjABut80553QGHUyAerfeiylRL1eN4lHCUIpvbq6au4pSvZer2fSje/99re/Na8Ax6XU39vbw8svvwwAiXh0LT8OJMN0fc2Der1uFmzNOtTmofq9er1ueq56HyjdyFbee+89/PKXvwSwcFWq3u0Ld6h3Ja3QiGYbEr5OwXg8/sqSZmk9FH0wVKfTCRgA56/zVe+N9nAE5veC1icAFmHGmgvhy8VFLMkmoIYi31BTb1L6hvngaMEJPrRKnfkZXWGNRsOMTHzt9/t2HKMBDw4OEg+gzuPZs2d2fu1ToK23+D2l7kDSj+4NlOVy2Y7nja3JOr6W4ng8to3p/fffBwD88pe/NIOjVhTi8d7gp4ZYnms0GgXGWc15SNsYCB/RqQ87N5m0pqY7OztWyYm/I7+rEZ2ajMTCIfxtNUaC6o5Gb9INzRgCjfzMOqI6EBGRcSwFE+AOrh2CfBQasMgUJFWs1WoWdUbJ3el0bDwyAh4DLNp+KUUkK6A6MBwOA4qrQSx0G9JAqLSX56zVakE1YM2U05JnHD+tViDXRduPc16MpHvvvfcAzKm0zxTkdZZKpcDwqO46LYGW9h6/56W4RgyqSsHPfI6Eli+jcfbg4CBIaVY3rw/w0rWl6qSt3VU15PG8BzifyAQWiEwgIiLjWComUCwWTYpQr9Oa95Qm1HtzuZwZ6VgERN1elATUVe/fv29SXGsS+Eagw+EwMIBv+00RAAAgAElEQVRpiC6ZA8tXVSqVwF23vr5u0sfnCfBa9do1L5/nVj3ds4Pt7W0zAn766ad2nO8BoPYIGs4oPYfDoZ1DjYY+gIjQ/zlHLTTC+aexG5XsPtOx1+vZejDEWu0LGoYMJIuhaIFZH/bN32dlZeWFIdwRS7IJaCJMWuEKINmAU4uG+Mq1zWYziBik+qCeAB4/Ho8TCTicD284b+EHwmIbjUYjiGVvt9tmtOJ72v2Y39WEKV9DkfNS9YQ09qc//Sn+5V/+BcBCnVlbW7N58AFLo+Y+sg9YbJhaxMM3ABmNRgkjIcfyUYxpxU00GYreG+YHHB8fB8dpWzTdcDgPbgKaT8J7gRuDNozh8TGlOERUByIiMo6lYAJp7jpSaRqDhsNhol4+X7XgBV+9G0tblHvqWi6Xg6acZCY6rrrcfIuyarVqEkZpO114WlvQn5Pz6Xa7QXadRt7RdcacgJ/97Gf2nrZzp/FUx+V1aNMWvno3YJqBUo21KtH5PW0x5j8j1PjL47WhimcCaeqDqhu8PrKWcrlsvwdZjTaH8QxpbW0tEYuQZUQmEBGRcSwFE+DuPB6PTcfTgBZgHoTjo70qlYoZf7jr12q1wLWlUoXjq2RgNqAWofRdb9TmkFaj30fjHRwcmKQmqLNOp1ObtzKTF9khTk5OLJfhn/7pnwDM3Zm8Zr6urKyYlOe1kAmsra1ZfQXaKrQ+ANdKjXQ+clANpvo7ebehBgulBS15u0ylUgmMkIQ3iBI+oElrNPgIzY2NDSvsQgPhn//5n+Pv//7vU8fOGpZiEyBtvnbtWnDT8Ia9efNm4FtXizdftYIubyC1GvMzqiD7+/u2CTCqrFqtBi3B+KC1Wq2Eb5rH+EQZLUfO2AE+kNrvT6vqetrLee/t7VlUIMNq6/W6hU/znBo6y4hEqilbW1tBt2PddNX4R7ru58PvAYtNRguqvCjxCEgmKPmmMOPx2H5bbrr6G3pPTS6Xs82O1H9lZSX4XdTQy/uI69JoNOyc/K2ziqgORERkHEvBBB4+fAhgLkFYvIPx+SyFdfXq1aB9lUaraUqpr5FHqaWGLY2ku337NoBkmi6Tcmg80iQkbZYJJCMdlRGQ4vqiIqPRyMbX3gJp7jee55133gGwiGrc3t42aqtlwnzxDM57a2vLDIhkC8PhMNUF6l2xBL+nn43H4xca9bQRTJo6wDh+NWhqcRjCU/9SqZRoNgMkI0s1voLnJkvgb7e1tYW//Mu/BAD83d/9HbKMyAQiIjKOpWACf/RHfwRgvnNzx2btekqLQqEQtMDS4CI1qlHHZzAKmYBKF3ULamsvYC45eF7aAniezc1Nk5SMPlTdmtK5VCqZbq2GTL5SMlLyNZvNhIRWXLx4ET/5yU8ALMqc/cM//AM+/PBDAAv7g5bd4now2+61116zv/nZZDIJ9HnVt70RVYOWaOfI5/O2vhrcpNfLNSU4Ry004guCaBtyQm1BvkjJeDwOGAx/b3XrKjtIK9+WRcRViIjIOJaCCbz99tsA5rs09VvmAtCVNhwOzYqb1mOAu/rp6alJV0pIlQiUMJqRSMag/QFpSafUVAsyJSXtBU+fPg3i1SuVis2NUk7diD7cuVQq2fnVdsD587vsHXDt2jUrJ/7P//zPAOblxXwMPqX/rVu3gu5Oar3XQiC+50JaW3R+pq5NH6SlhVXUYu87G2kZMt93oFgsBqXMZrNZoj09x9fgKkW/3zdvkLamf1GIetawFJsADXPqV+aNQkOYNsXQ+vNKOYH5w80biS40GuF2d3cTrkFg/iBzXPXjs9EFoemvvqqtUl117/FzbgIKH+k4mUyCBB+qFgcHB4m8A2DeRu3P/uzPACweyL29PVNRfEdkbVaiMf6+uWqv1wuMixrZx7XVfAifM6Cx/tzIfDo1kF7X0OdgaPWjtEpSumHxvvBVngeDgaksFBDdbveFsQlZQ1QHIiIyjqVgAtz9a7VaUFxC49B9YNBkMgmKkGgEICUD1YKHDx+aJFCJ7Q1anU4ncPkpfadUoYS/ceOGGbSoAmxubtrnvqZepVIxwyPZgjZSJXid586dS6gGwFyi0t31xhtvAJgHEv3mN79JXIsaUzkG13gymSTyH3g8180b8LrdrjEGVQF8VqXWWUwz8PncAlVLfNRkWlSmqnWc62AwsOviGpH6n5ycBKqkqhRZR1yFiIiMYymYAKWnlp6iNNEedt4YpCHCGivPv338fLlcNumpzU19ME+xWAz0YjXueRdeu93GD37wAwCwIifAQtJ5yVQsFlPr5nOe2vwUmEtRHwClocdkFdevXzdbBsdlC/b19fVA707roajn9YE+2qeQ16JZh4T+hr546nA4DNy6Gkrsdf3pdGrjc32Oj4+N3WmIs88U5PH9ft/mzffU1pB1LMUmwAdsOp0GabSeavI4/7f65HkTMsKQlv6NjY1EogyQrMbD946OjoLqRGrs0qQmYP4QciNTo6FPyVX/tY+C6/f7dhwfYD7wBwcHZtBU1YnzpndjOp1aHAEfMG4CzWYzqPwzm82CWIbRaGSbot9Mdb31d+F7NGTyQcvn8/bb0kir0Y2aku0Tx9JSwzmP7e1tbG9vA0h6bXzxFuJF9070DswR1YGIiIxjKZiA9qb3xTZ0t/YuHW1WwjEKhULCcMhxgWTLMS2JRWmo7MDX/tcqvmklsHwRj1KpZOzA++X1OhlrcHBwELi2KP2Pjo7su/T7t9ttc33eu3fP5kHJTwmpkXhkKVqUxccCTCYTo9qUtpxHoVAI1DTND+C1q1GShlhK8QsXLhgb0HXxrkRiNpsF+Q0aB6DqIK8rrRIxob+7RpBmGZEJRERkHEvBBBgDn8vlTAenFNXsPUoCSnTV/TQaz7OItMKXWvGWgUPUrbvdbtAwlFKU8wGSgSde4q2vrwdVcjnm/v6+nYuVk4+Ojuy7nCPdjtevX7dcCmZX5nI5k7z83mAwMEnN4xh5ubm5GRQwzeVyQTRgr9ez9l3M7qTEzOfzxrIozZvN5gttH3rt/K12d3dtPP7WjUYjKA6bBr02XjsZT6fTCQqQcF7lcjnIqYhtyBaITCAiIuNYCibATjq6k3PXp07bbrdNCmuJcko11eF9ABElcqlUSgS+AHPp71t2P378OOHO0/lsbW0l4v35PTbUZCHQCxcuWP4+8wn4vbRw2kajEei8tPTfunXLrl0t91wbsoSdnR2bL+swvPbaawDmwU5kInpuX6Nhd3fXmJF2ZNI1AJJdjHwdAb5q0BXXqlarBUyg1WolaifoZ+rK0x6Tad4jBolppiCP8WHUOl7WsRSbgPqS0+g6MH/QfNENbf+V5gbycej9ft9oOCmvluRS4x43Bo1S4/F8qLVRCo10HKNer1tdOxoc+RC2222LVyCt1pud18IHYjAYBJtGPp83txtv8NXVVYtspIFQG434VNtKpRK0K9PeAvowA3PjJefN36nZbNrvl1Yj0V97WuTg6elp4KrUqsa+aImurZZTo/pCFUurPKfFMvhEo6wiqgMRERnHUjABSr6Tk5OgEammh3qXjxq2VOKQ6pPWkuary4rHb21tmQGONLVWqwW97lWqkJrzvZ2dHTsH4/i///3vm5T3vQ6m06kZ81S18GWxKIGn02mQjqxlvVR14nF8T9N2vbuzVqvZe1yPZrNp6gWvSd1wPJ6MajQaWcSijzTUQrDqfvURmuPxOGBBlPq1Wi1RjIXH8G9tNcbfkQxJi8r4AKLZbBaZwH8hMoGIiIxjKZjA66+/DmAuUWlgoxRSiUxjkRqNfDZZoVAIgkYovY6Pj40lUAo0m03Tc9W9p116AJjRKZfLpQa0cIxXX33VxvXdelTy+JBV1VG9u0z78Wk5MG8AUxuJH1/j8zV7z+v/9XrdDJq+KIsa8Pj77O/v2xh0S6rh1uv4k8kkcL8Oh8OgKxGv6cKFC4EhNq0XQalUsqIpvp7E8fGxsSotOON/x6xiKTYBGrHa7bb94Hzo+MBXKpXghioUCkG1WY01581A+v7ll18GMfinp6dBh+DNzU07r3+YNI2VY7RaLaP+vPGm02kwD42QUx82j/FxDZpO7Ztyai1AQqPrfEKOnl8Np2kbDtfr+vXrieOfPn1q185jTk5ObLMgRVdjJ69PH3itVMxz+gecG8XJyYltLlq1Sa/5RevN41dXV+13Z9+GtH4GWUVUByIiMo6lYAJqsGJsPKWJxrb7BqNpaam1Ws0kl09L7ff7RvnJNPb29uxvSpjr16+bRKeU03bepMJ8nc1mQZGQYrEYNOjUjETPBJQdpPUC4DXzs1wuFzRorVarQayBqgee+gMImomqsZVGxps3b9ra0rWqEpgqFteK672yshLkgqSpU9PpNHAhqnGXLj+NuyAT0VwGz2q0E5Jv9urXIcuITCAiIuNYCiag2Wde79f88rRa89qVhq+UuL4l+OXLl4N228+ePbP3aFgqlUpm6NNzcUxKJgYItdvtIDNOm58SPI928lFpzuvzLjEgzON/UdQcJV1akBOR1mZdjak+S5JrUalUbFwygnK5HDRBTcs6JF7U50HLhCk04IjjNhoNmxMZ2+bmpgVKpdlDNHNS1yBiSTYB4quaiRYKhaBxpFL/tDp1afSaDzrH1YIZaj3n5sINhUam09PToPrR6upqIjKPnynVB5IVjrylvlwu27l8jIQ+aFoPke9xUymXy6mFQ/R7Om+t4MzPtZGK966Uy2UzFvJ6nz59GvwufFiPj48DtUeLoWgTWY6h8+DaqREXmPv/WVWZv8vx8XEQpq3l6HmdVOEGg0EsKvJfiNthRETGsVRMYDKZBKmtac1H05phEFrgw0ehqS/ex7nr8eo/95F3Z2dnJrVIUwuFgklNbeft4wN8+TBgISGVaqdR+DTXH6Wx5l74ayf0mpSZUKWhUW82m5lqQ2Mnz6MVnxm7n8vlTDXwUXlnZ2dB2/dWqxXUUNR2aJyjMgOfC6KxBlqKjWvP+ZJZTSaTIO261+sZs8g6IhOIiMg4looJAAg6CmknGrqs1IjkdWAtDUaJ49uR62fNZtOkCcc9PT01CekDeLTgCOe6trZm+qdGt/nimWr0Upcm4Q2Z2pLLZ1eqXUHXwBu8NAPPVz/e29uzCE3q2Pl83uwmBAu1tlqtRCYfMGcLPspP2ZXv/KPBSOqi82niHP/s7Mzmy+MHg0HgLu50OonKw7ou/X4/6DswGo0CI2RWEZlARETGsVRMQK3b1Ie5q9dqNftbdTlfG197+vmyXlp+i+6kYrEYlJrq9/sWXqrZhsDc8sxW6hzj0qVLJsko/dXa7xtwqj6vdg3tigQk239rXz2O5YNjtJ+B1/+1+AevaX9/H0+fPgWwKCCimYhkB5S2V69etWvmWJp16NmKdvmhVf7OnTt2Llrxb9++bTYDQlmQ91ZoxiVRr9eD3BJ+r9PpBO5UtTVkHUuxCfAHL5fLgV9ek2R8UQztiKtU3xvWtPUUb/DLly/b97ip8LNCoWBpyHR3MRLwxo0b1mBEK914F1er1Qq6+/oeBgpVg9Lq7WlsP6+R51K1w7sGNf9A+x4A883Up10fHh4GRlOl0FQVtOYiNwaqDWq45bXwN3n48CHu3r0LALYBAYv8EX/tqsZ49UrXbW1tzebm1cA09/FkMjGVL+uI6kBERMaxFEyAUkULZfiKwmogUtdfWkouv0NJoNSbUoTS/NVXXzXpQyPWRx99ZHUP2ReABSvy+bzNV8tv+XqGlUol0WFHX9NSeDUiUjMieTyhgVBefVA24VlTsVhMZSBKmYF5JKBvh6Z5FJpuDczTh8kEqBLRtZjL5YxJ8RquX79uDOqzzz4DMK82TdWDbEJzA7yLVefNc7fb7UTLOl2D4XAY3BOFQgFffPFFsB5ZRGQCEREZx1IwAUq3s7OzwM2jLjofmjsejwOJWq1WE/H7QLLIBdkE7RAvvfSSGaWePHkCAPjggw8S/QD0+Lt371qgDN/TmgQa8MM5+RBhZSRqqPLdfbSOv+/Rp/q2Ghe1tyGwYDKVSsXYjLoxvUtxOp2a9Kb7kGvQbrdN8pLljEYjYwqU3jymWq0G0lkrHHNu9+7dM/sA3+Oara+v2/g+yEivs9fr2b1DtsI5npycmGFS27Kz/FjWsRSbAG/209PToGiFPly+Ht5gMAiiBnO5XLAJ8P9KpRJ04R0MBkYbeVNsb2/bOfhgqm9dcwCA9F732rjUp7aqGqOx/fxbDZk6Vz+Wp8m6KXK+vKY0K3uxWLTvkt7X63U7jr8F25E9efLE6Dopf7/ft+PoJVDjoW/6sbOzYw/nrVu3bI15Dm6+3IjK5bKlMvP4VqsVdCDW+8DnKxweHqbGCUTMEdWBiIiMYymYgGbs+XpySiN9DT4t3KFGI28Q1PJhvsjFycmJSXZS0m63G0T0qaHKqxn1et3OpRTdp+Tqq8907Ha7wbWkGQa1HJmPqdBz+LU4Ozszqk2pv7GxYSqCGs58uTXS6+fPn1vzU6oIly5dsuO9gbBSqSTSkDl/rhsNhKPRyFQx7aEAzBkBcxPIPrRtmRYh0ahRxenpaeI+Sjsmy4hMICIi41gKJsBduVarBS5CLQLhJWo+nzcpTmixTRqg1AjnpWy/3zf9mWOpXszPqAtvbm4GQSu1Wi3IvdfPPYrFoh1PKZvWEkwLcnoDqI6t0XA+m1GDdRgQxPVZW1uzIB21TfBcXA+Ov7GxYTr7o0ePbB6U9vxM58bPKPW3traCHIPhcGj3AIO4eM7t7W1jHZyP5odoYBj1ft8iXXsu8Pek0TNiSTYB/SE95dcOw/6hKhaLQSOQwWAQPKRap9BX/tWy5Upr+TdvKMYGbG5uBglJ1Wo1CF/m+fQ9tez7cuSlUumFxVD0b10Dn1JdKBRSm7HwWP7NsN2NjQ0Lh+aaaXlubpgcq1gsGiXnew8fPrQHnMdzroVCweZGVaFWq9mDTlXk/PnzVqyEUXxauYgh3GrU8yHZmp5N6G/Bz7l5/frXvw6OzyqiOhARkXEsBROg9NKSWb7U1nA4DBJx1BdPabSyshJEjGn6raajcgxKQRqjzp8/b8Yz77JcWVkJ3F7aTFRLmfkag0SayjCdTk26Emk5AcoqPJtQQ6lPsKlUKgEzGQwGidh7YM54fDNWbfDif587d+7YWvJ4vW7Oh77+9fX1oFVavV6335bUX/MRaDSkUXI6nVq7N86j1+sFKhAxHA4tIpGuyIgFIhOIiMg4loIJUHo2Gg2TKlqxlq++CGmxWAyChQqFQhB7r5l1viyVph6r5KPUoTFNqxr7ZqWFQsHGVaOkN15p0VRK/bTmqnotHNNXSVbjmGYn+mq6/hVAUJDDrwffJyPga7lcDroMFQoFk658T6Mb09yjhB5HpsUxGOHXbDYt+OjOnTsA5p2kyFxu3LgBINlc1V/f6empzZE2gYgFIhOIiMg4loIJqISk1KT00eIVvh+fhs5S9+z3+y+UPhqD/1UFTBuNRhBnr7kJPjBI39NwYEoinlMllQ9p1qajPhipVCoFrk0tj8XPGo1GEI6c1oFIC416+8njx49Nf/ZNQhuNRqK5K8fitVN3pzRfX183iU6Pw97eXtA9qNls2rXyu9oRyfdEvH//vmUA0sV69epVG8/nEDx69MgCwWIT0hBLsQkQk8nEjEYEo9x6vV4QAaitu7S5hDfS8eYYDodByi/fV9RqtUTRDB2jXC4H7cVarZaNS1qtlWu8oWo6nQauSm0O6g2KmgqrtN1vaGnXrMlThE9e0u9pmzVfrVkTvOjCOzg4CHo4aJu4a9euAVhEKY7HY3O76lz5u3PdaUjsdrtBhePZbIb/+I//AAD8+7//O4C5q5KuR81T4Ge8fhocY6XhBaI6EBGRcSwFE1BDjm/GyYgzpdAqwXwZrUajERgGVdL78lvFYjGocFwul4PqwWlprDoH757SwB2fRaiSm+dWKu+jJnu9XqK+vv+u1jX0Nfo1H8G78NIq7mqtPlJ4ZRNcF0ps7QHA+TO4Z3t724x6V69etVcGKHEMPSeZn6YBc73UGElJzjk+fPjQehz4uoalUsnamxNUXSIiE4iIyDyWgglwx1a92HfXUTeZFh/10jUtm1ADbXw9gV6vlwhNJpgr8NZbbwFYxLS32+1A3+71enYNlEJq7PKVhYfDoTEL6qgcR69BuyBxDDKCfr8fZCnq5xrqC8ylv2cHWtiV67G6upooD8b58ntcb0r2o6MjK8XmWVKn0zE9npL+0aNHZngkI9jc3Ax6EWiAkjdyTqfTwOg7nU6NHWirdmD+W/C4tPDirGMpNgGtJuvj/Uk119fX7YEhBWR0GZCM3vPWdd4M4/HYbgIt+OEt6p1Ox9QQRqbxf01G8bH+Om+19vvNQNUPXks+nw/oPQ1tk8kkuOnL5XKgOk2n08DKrkk3Xt2YTqeJpp1cA/4epOYco9lsBirCpUuXzPfuNyCtg6jjc1wev7+/HxgGtfKzNhgB5kKD8Rs8Vy6XM48OQQ+GNiuJdQVDRHUgIiLjWAomoPX7vaGKkmptbS2QvKPRKCEJgGRPekowShyl+9oIhNRc1QxfwVejCXm80msteMHPfNtvNeD5iEGdt86D59R0ax7vS2Wl1QxUqe/dkicnJ8Y2+J62GSeVJ83u9/tBW/ErV66YQe79999PjKUZmjzm+PjY1o1qwWAwCH4jruf169cDBvj06VNLBaYatr6+HkQbqvE3rdJyxByRCUREZBw5H6/++8DBwcEMmOv4LIxJacKgEUox/UxbcWv0nDcIUsocHx8H+Qej0SjQ2YfDoUlIjq9GOB8dmMvlTArxVdfV9xPQFmV6TkpcXgvPqQVViE6nY3PkGLVazcbgOirj8TkBacFZp6en9jnZCiWrsjRlRp988gkA4Oc//3nie2pv0Zbp/C01cEtbrnn4jlJp9pNyuRxkIvrIx6xjNpulhksuhTpA2l6tVs0w5A2Do9EoqPunFE+LTHiVgka9Wq1mDwdvEI1I4xjVajVQJYhCoWA3NG/mdrtt59COwr5EuqoF6hXgMZwHv0f62+/37Vy6MWihDiDZV9F3cFb1RDcoXp9WJ9IoRp13o9GwDYIPmm5o/B4fOu25qPNX9Y+vHOPixYsAFhGGxWLRNjv9TTgPrY3I8Xh8fPi/HqI6EBGRcSwFE+COrZF6PqmnVquZVEmrGai19323WY1oS0su0j72HMM3waRhazqdWgszGq/S6Ky6pZQd8JyU8mltxbw6MxgMAsOgplFr/wFKS77quhCcx2g0CvIU0uowKrPy6w0g6Aas8+e8NW7BRy6Ox+NA9eBYGxsbtrZ0+e3s7CTOzzH4OZlAxNdDZAIRERnHUjABSq3j42Pb9bV2PTCXXj6CLS1iUNOLCTUeUgoyu204HAbdaXq9XlAkhBJYuyTpfJhVx+ObzWYi4EWP1/d84BGwsAVQoqkhTKWzv85Op2O6elpxER8UValUbFw1umluga6LZmhqyTZG/r3++uu2HhyLUp+2mJOTE2NcGgHoexEQZGA6H7X7cK2UTcSeAr8bIhOIiMg4loIJUMqura0FGXeUSrlcLiijXa1WE6W1gDmrYEgpj9MwXe/yKxQKiRwAvvrQVs5LrfqU1OVyOQjJVQu811+14KmG2PK4tHBdf53T6TQoc16tVs1FqQE+vO60wCSfaTmZTMxDQ5sH1+zs7Mx+K0LtFcyvICtiiTad9/r6uo3LuWpJM167ljTjfNUzwetSTwDvFW9DiPhqLMUmQPfaYDCwm8En+qgRSzcG9T8TvmeANq3k32qY864trU7LG5mbxu3bt+0h0bqDfm75fD4womkLLG2fxbG0OhLHAJJNWWg4KxaLNo+0VmYcg9epapIaYrmpaYNPbjh8SPU8PI5j9ft9e9j4PTYO7XQ6to6M63/llVeC1mTT6dTWgWoDU317vV7C2Mpz+pRw/VtjSiL+e0R1ICIi41gKJkCaN5vNghJiKikpkTSYxRuZCoWCBZp4o9RwOAwMUOPxOEglnkwm1lLrN7/5TWKu5XLZCmVomzPfi0Aj33zEYD6fT0TyAXMpx2vlZ9qe3Rvper1eInAImEtIreUHLChxu922+WoAlI7HNdDahjqParUa1BisVCoW4MNza2NSzoNzbTQatn5aJs6nZ3PNdnZ2zDioBlxfj1FrOvrWdBFfjcgEIiIyjqVgAurS8Tn4Gv9PiaAdbHxpsMlkYtLKS30NhCGrABZSk4xkb2/PcuRZr57zePDggRnA1G3n8+DH43HQyUclOyWv5jVQ3/dSUQN9qKerIVHDadXAx3NxXb1hUBmJZgd6N60GMfl25Xt7e/Y3P1N7hw9LPjs7s3Xhmqm9gvOg8bBWqwUuSy3iqjYK310q4uthqTaByWQSpNHqZuC75ObzebNWp1njfd0/9S+rUcrH9u/t7VmlWq3uA8w773IzYuOLUqmUajDzLdJ4Tt2MNFmIBrO0lGnv1dDNT6Pt+MCw27BGDvpISl2rNCMkrfx8aAuFgo2nhjl+l3P6+OOPbew0b4U35qqHxkcftlotUy/43oMHD0zF05gHr0JGfD1EdSAiIuNYCiagRjWNjQeSWXBaFxBItt1SQ5GPjNO6f6S4lGS7u7tB6uzBwYFJex+frxl9VAs0dkClkFdVtFyYzglAwv+ubdZ1DorRaGTj0WCmVY/9taf1GJjNZomIO2Aubemr//TTTwEsDKvaWk1draT8/B6jFovFoq0RVZ39/X2LMOQ8SqVSkF7Ma5vNZsakOFatVjOmRlWu1+vFSMFviMgEIiIyjqVgAtoKS1t7+WM0EAeYS0NKJEqLWq0WFKGgVFxZWbHxNcae3+V7+/v7CUkELCTlK6+8gh/+8IcAFsarZ8+e2Tm1YKYvkJFWwEWzJr2L0AcZ6RjdbtcYDI/XqErfhUndjGor0cArjkvpSuOoj4YEkDB60v7A34wRm9evXzc7B4N/xuOxBQ5p7oCfm7oKfbVh7WKkebvXLPkAAA2kSURBVArLUCDnfyMiE4iIyDiWggloJhslMCW22gh8bnyaO7DZbAYZd5Qyw+HQ3qMeWy6XE51tgHnPAXUrAouKNz/+8Y/xh3/4hwAWeitDY3l+zpcuMEpI6vjdbjeQrmlhxp4R8DgP1f99g1Zt7OlzGKrVaqJPI69J+0Do/NP6FALz7j+6Dlyrdrtt8+F7xWIxkNjj8TjoYqR2Ip5fg6LILNSbFF2D3wxLsQmoG4501qfYViqVoLTVeDwOimIoxeWNrY0n+F2NZKNh7+bNmwCAP/3TPzUq/Ktf/QrAIvb99u3btkFoJKImEwFzdcBHCmpdft9IJa2dl3Zh9gbKtEYqaanKPvVXoTkMPL7ZbNrm5TfT8Xgc1IDc39/HBx98kBj3xz/+sa2Zd2nm8/lgg1I10H+macZ0EW5tbdnvyNfnz58Hm1zE10NUByIiMo6lYAKa0eclmKYN+7bbKiV0LI2wA5KBQRyXEmQwGAQtwW7fvo133nkHwELasy1ZrVYzqa8uPP7NcdPi8zVwh5JOm7GS7lLiEWkt2M/OzoJsQy1M4mPwR6NREESl59RKyL5ysv4+fO/p06cA5m5BtiRj2TXmbqytrdm6cW01xp/reHp6amoGX9Xw5wu8aLSkqoYR3wyRCUREZBxLwQS4+7daLdvtKSnpbioUCkEosYaKEmdnZ6mhwUAyoETLbnmX4srKCn70ox8BgLW01pLZtBdw3rVazSQdpdze3l4i/l0/G4/HJo3TQmfVBQrMJaUGSPEzSmiOUavVAmakmXo+mKbRaAQx+FpjgBJd3Xe8Js0XYKciGv8o/V955RUzlHKuapzVfAHf6emr+g/0+/0gXyHim2MpNgE+6Fpt2HcZ1oaaauTig0XMZrNErgC/C8ypPW9G3uDNZtOMfmoI483OG09TdH2ugdJTvnY6HdskOK7WBPTJPMPhMFBjeKMfHR0lCoFwLB9JqN/n+GkeBm5o9Xo90XaM4PWpD56v3GDp/9dqwNqklNd99+5dAIuYAx1Pf2P14Oi1aIVovnd6ehqkkEd8c0R1ICIi41gKJsAd/vDw0KQ8jWNam14LSABzSUkJpzTStyTX/ylVaOAql8tmhGIhkX6/bwZBuhK11RePV7+0d7VpRB+ZhkpxXyRkNBoFbjJKaXUpagyBVvzldXqDqtJ9zRTUueoY3W7XpLZvZaaRepTAKysr5lIkuyIzePz4MT7//HMbl3P0MRLaOi6NwZAdkDHeu3fP5ubZU8TvjsgEIiIyjqVgAloMwnfmUX3aG7HSmo/mcrmEuwtIust8MNLz58/N3aV6NyUN2QHj48+fPx+0BK9UKkFBi6OjoyBDjxJybW3NGIZGLvL6fCedNCMZkN6o0+c6aNRk2jh8j8fv7e1ZNJ6X+oeHh/aeFh/l+X3hU+0x4O0Mek6V5r7rkQZ4cV47Ozu2Nmk1EiJ+NyzFJqBhr2r8ARaUUR8Stahr5Rxgvnnw4ff1/gaDgaWgkloeHR0FBrxarWbj8TM+tFeuXDE1QxN4vLV/Op3ad3kTk4a3Wi07ng+8Rh1yXFUx1DgHJMOA+TocDgN1QKm396TkcjkbTxvAaMqz4uDgIKgsXCqVAqOetnBTwycwf+B9QZVOpxPUB2RacqfTsfe0GlP0Cnx7iOpARETGsRRMgEgr9UVpoS2w1XjkDYP1et0kNT8jtX/8+LFJdK1c6xuGFgoFmwcln47lKyKrC48uzlKpZBKVZboopdfW1mwMHr+zs2Nz8iXWVIrzOpUGqwpAqelzGfL5fKAmFYtFo+t8LRQKxlh8anO9Xk8UeeG5Kfk5f67nuXPnEm5OIBkBqDUUvYFP2ZsWTQGiW/DbRmQCEREZx1IwAZVkPiCIkkRTiTUKTvVsYK5383NK/S+++ML+93q02hC0B4A3zmmLcrrCKL2ePXtm+j8zEYGFBKV+Swl4cnKCjY0NAMk8CJ4rrZinT7FVg5xeC4/zLdhzuZytlRYyIeOhDaTdbhur8aXJNHdAKx3T4Ml5c15Xr1616ENWbT46OrJ143Hr6+sm7TXTkt+7c+eOrb1+L+LbQWQCEREZx1IwAUKlm7YfB+buNc3CA5Itu7UIBaUImQA9AZS0QLo0UXcZpTalJ5mANuVUvdzn9KvHwGfN9ft9+4ysYjabJWrz6zWpjUKZki+ymsvlzG7ii4XkcjmT4pw/1wVA4nuUxr4AS6VSsePSsjA5H3528eLFRAgxMLepaM9HYC71ybzIqHjOyWRi8yQTiAFC3y6WahMYDodB7LgaAfng8iaqVquJZCIeR/rtuxMrrdZmpaTHbI81Ho+NRrMyrqonGnsPzGMH+J7mH/C8PodhOp0maiIC882L7/n6hmmps6VSKXCP6sbjz9lqtRINV3QNgKRbz1d81lqH/IwPq+Y8cCNkbAWwyDEgNC1aN06NXlSkzSfi20VUByIiMo6l2Fop/QeDQSBVNH3Uu6eq1apJT+1Jz8gyb0jK5XJBduLh4aGdn5JSa/WRiZCuTqdTk/qUurVazViBurHSIuI4pi80UiqVTOJReqaVI1NjoV8jZQwazQjM2QrVAU3D1XwG/hYvotsaPKQRklS7fBr4ycmJMbW0QiYKH/mnmaBpVZcjvj1EJhARkXEsBRNQ6e91X80X8NJiY2Mj0bkHmNsBqJNSylKqaMhqWp69lq/ycfkcK5/PB66wzc1Nsx3QDtHpdOy8fNVim7Rr0IhWqVQCOwihDEbXxYcSa+6AZvkBSd2c7rhCoWCshuNq4RUfoNTtdhOsje/xXKzBwDXVEms85+npqbE2Df7y9RU4/u7urtl4omvwu8FSbALqA/eUT33hvjnoysqK0VnSdY0F8JGDavUntra27OblTXl8fGzn8pWFd3d37UYlvdZWWdq9mOf1TVMHg0FggW80GomCJDwOSJbT1i7CvmtxLpdLNOjUOXJtACRyJXz6skYWptUuJNQLwvPzN+D8Dw8P7To1GpIbJjemarVq8+bmyM306dOntlHG5iLfDaI6EBGRcSwFE9BYcq8OqPtLa+MDc0MeJZJKIZ/Nxu9pxhsld7vdtvFoSDw4OAjcb5Rku7u7JsE0Uo7zppvx4ODApBqh8Q2UspxrpVIJXGHMJtQSYBoP4al5LpezOTEika+TySRwPWqsAc+tTVA0n4DHUxWimlEul/Gzn/3MrkHPWa/XbW1Zh1DB3/jg4MCkPX9HzYHgdcaKwt8NIhOIiMg4loIJEKPRKNB9KTG1doBKcUofzU33lXm1SxHH0AAhSh1Ko9FoZONyLEpjLWmmRUgprTQngFItrYow56S59dTfGUXIOag9hNBsPM2k5HWxSjLdnvv7+0E5Mr0+zlGLsvCVLKHRaATFSsbjsX2Xvwuv8/z589ZOXI2APqDpwYMHVueB7IdMQzMXIxP4brAUm4CWtE6zpAPJGnm8oVqtVmBN1tBZT2uHw6GNS0pfLpftBuRx2gTFF/poNptBmOxwOLTv8ua9du1aIqoOSNJqLYPO+XPefJj4sKrnQAuN+JLq7XbbwnR5fTz36elpopELv8eNiteXz+dtw/HVgKbTqW0qvN7RaJSIXQDmzVuAeQEWX+BFS6sTnU7HNj6Oy7XTDZPn4Vwjvh1EdSAiIuNYCiagNFlTX4FkRV9KSFUB6EOmUW8wGAQptsoS6A6koUobe1CiaidcGvpYMXgymdhnGlvPc/D16tWrJmXv3bsHYGHs8rENPDc/p6TTzsw+am4wGCQYAADcuHHDmADBOSiT0pJp/Fwlu28OwnNq4pO6/njNWkMRmDch8T0DxuNx0Ci2Xq+btOdYajAlS/DrE/HtIDKBiIiMYymYgEbWed1XpbOvb9/r9fDgwQMAwMOHDwHMpZx372mMP5kApefZ2VkQrdZoNHDr1i0ACwMi53X//n07TiPpdnd3ASwCcra2tswoxmtgmbHT01NjM5qHoNIYWNg+1Cio66IMAJin7qrbjXPjtXMeXLNHjx4FEYYa28/j1UXHtdUCqWRVvuVYp9MxdqB2Hz9uuVy2a6FNheys0WjY7x5TiL8bRCYQEZFxLAUT0EKSlJDUEdMKZVIiaJcfQi3PlDiUUFeuXDHXmXYl8sFC9+7dwz/+4z8CgJW2Ivu4efNm4CJMC3JqNBqBq4/67r179xK5CDoWgCDsuV6vB6XBCoWC6d5kDP1+39bD9y7UOgt0hRaLxaCIy2g0MpsBx1KG5HMqrl27Zq3JeTwZzbNnz0yKK9vzQVxaM4CfKXPwzV4jvl0sxSZA49vjx48DH7U+ELzZ1a+vbj1gfkP5qrek5VeuXLGbUhNsfPXgfr9vf3PT4AN0eHhoD7eqHb5YyXA4tHPx/AqqBlodiO5INkNh3MDly5eDJqtASNdHo1FQ4Uhj8n014/F4bH9zY9jb27O/CW4Co9HIaDs7EHMjAhYGR15Hr9ezlmac9+rqql0Xx+31enZOrp8WT+E6amWoiG8PUR2IiMg4cjEzKyIi24hMICIi44ibQERExhE3gYiIjCNuAhERGUfcBCIiMo64CUREZBxxE4iIyDjiJhARkXHETSAiIuOIm0BERMYRN4GIiIwjbgIRERlH3AQiIjKOuAlERGQccROIiMg44iYQEZFxxE0gIiLjiJtARETGETeBiIiMI24CEREZR9wEIiIyjrgJRERkHHETiIjIOP4f697mJtzeNuYAAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"torch.Size([2, 3, 128, 128])\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"idb = faiv.ImageDataBunch.create(tds, vds, bs=2, ds_tfms=(tfms,[]), num_workers=1, tfm_y=True)\n", | |
"\n", | |
"for sample in idb.train_dl:\n", | |
" for x in sample:\n", | |
" print(x.shape)\n", | |
" plt.imshow(np.rot90(x[0,0,:,:]), cmap='gist_gray')\n", | |
" plt.axis('off')\n", | |
" plt.show()\n", | |
" break" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python [conda env:neuropp]", | |
"language": "python", | |
"name": "conda-env-neuropp-py" | |
}, | |
"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.7.0" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment