{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"from fastai.vision.all import *","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Copying the metadata files","metadata":{}},{"cell_type":"code","source":"from shutil import copyfile\nfor f in Path('/kaggle/input/plant-pathology-2021-fgvc8').ls():\n    if f.is_file():\n        copyfile(f, Path('.')/f.name)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Creating directory","metadata":{}},{"cell_type":"code","source":"train_folder = Path('/kaggle/input/plant-pathology-2021-fgvc8/train_images')\ntrain_folder.ls()\nout_folder = Path('/kaggle/temp/train_images')\nout_folder.mkdir(exist_ok=True, parents=True)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Listing all images inside train directory","metadata":{}},{"cell_type":"code","source":"files = get_image_files(train_folder)\nfiles","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Creating and testing a pipeline to process the image","metadata":{}},{"cell_type":"code","source":"from torchvision.transforms import Resize","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"file = files[0]\npipe = Pipeline([PILImage.create, Resize(400)])\nimg = pipe(file)\nshow_image(img)\nimg.shape, out_folder/file.name","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Processing all the images in paralell and saving to the output directory","metadata":{}},{"cell_type":"code","source":"def pre_process(file):    \n    img = pipe(file)\n    img.save(out_folder/file.name)\n    img.close","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from joblib import Parallel, delayed  \nfrom tqdm.auto import tqdm\nout = Parallel(n_jobs=2)(delayed(pre_process)(file) for file in tqdm(files))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"! cd /kaggle/temp/\n! zip -r train_images.zip train_images --q","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}