{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"gpu","dataSources":[{"sourceId":21755,"databundleVersionId":1475600,"sourceType":"competition"}],"dockerImageVersionId":30822,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import numpy as np\nimport torch\nfrom pathlib import Path\nfrom tqdm import tqdm\nimport matplotlib.pyplot as plt\nfrom shutil import make_archive\n\ndef kaggle_setup():\n    \"\"\"Convenient Kaggle environment setup function.\n\n    Clones the source from my repository and then manipulate the environment variable\n    such that packages can be loaded.\n    \"\"\"\n    import os\n    import sys\n    import subprocess\n    from pathlib import Path\n\n\n    if Path(\"/kaggle/working/kaggle_kernels\").exists(): \n        subprocess.call(\"cd /kaggle/working/kaggle_kernels; git pull\", shell=True)\n        print(\"git pulled\")\n    else:\n        subprocess.call(\"git clone https://github.com/anthropikos/kaggle_kernels.git\", shell=True)\n        print(\"git cloned\")\n    subprocess.call(\"cd /kaggle/working/kaggle_kernels\", shell=True)\n\n    package_dir_path = Path(\"/kaggle/working/kaggle_kernels/gan/src\")\n\n    package_dir_path = os.path.abspath(package_dir_path)\n    \n    if package_dir_path not in sys.path:\n        sys.path.append(package_dir_path)\n\n    return\n\nkaggle_setup()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-01-06T22:59:35.691699Z","iopub.execute_input":"2025-01-06T22:59:35.692018Z","iopub.status.idle":"2025-01-06T22:59:50.244598Z","shell.execute_reply.started":"2025-01-06T22:59:35.691982Z","shell.execute_reply":"2025-01-06T22:59:50.243862Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from gan.utility_training import training_loop\nfrom gan.data import ImageDataset\nfrom gan.utility_data import map_rgb_to_tanh, map_tanh_to_rgb\nfrom gan.utility_plotting import plot_before_after, plot_single_RGB_tensor\n\nmodel = training_loop(monet_data_dir=\"/kaggle/input/gan-getting-started/monet_jpg\", photo_data_dir=\"/kaggle/input/gan-getting-started/photo_jpg\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-01-06T22:59:50.245576Z","iopub.execute_input":"2025-01-06T22:59:50.245846Z","execution_failed":"2025-01-06T23:03:42.215Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"photo_dataset = ImageDataset(\"/kaggle/input/gan-getting-started/photo_jpg\")","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Predict through all the photos\nfor idx, photo_rgb in tqdm(enumerate(photo_dataset)): \n    photo_tanh = map_rgb_to_tanh(photo_rgb).to(torch.device('cuda'))\n\n    gen_monet_tanh = model.generate_monet(photo_tanh)\n    gen_monet_rgb = map_tanh_to_rgb(gen_monet_tanh).to(torch.device('cpu'))\n\n    ax = plot_single_RGB_tensor(gen_monet_rgb)\n    fig = ax.get_figure()\n    (Path(\"/kaggle/working\") / Path(\"images\")).mkdir(exist_ok=True)\n    fig.savefig(f\"images/gen_monet_{idx}.jpg\")\n    plt.close()\n","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-06T23:03:42.215Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Create the zip archive\nsrc = Path(\"/kaggle/working/images\")\ndst = Path(\"/kaggle/working/images\")\n\nmake_archive(base_name=dst, format=\"zip\", root_dir=src)","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-06T23:03:42.215Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# # Testing it\n# img_idx = np.random.randint(0, len(photo_dataset), 1)[0]\n\n# img_rgb = photo_dataset[img_idx]\n# img_tanh = map_rgb_to_tanh(img_rgb)\n\n# img_gen_tanh = model.generate_monet(img_tanh)\n# img_gen_rgb = map_tanh_to_rgb(img_gen_tanh)\n\n# fig = plot_before_after(img_rgb, img_gen_rgb)","metadata":{"trusted":true,"execution":{"execution_failed":"2025-01-06T23:03:42.215Z"}},"outputs":[],"execution_count":null}]}