{"cells":[{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"cell_type":"code","source":"# this notebook is edied based on https://www.kaggle.com/sandy1112/create-and-train-resnet50-from-scratch\nimport numpy as np \nimport pandas as pd\nimport os\nimport tensorflow as tf\nimport cv2\nimport skimage.io\nfrom skimage.transform import resize\nfrom imgaug import augmenters as iaa\nfrom sklearn import preprocessing\nfrom sklearn.preprocessing import LabelBinarizer,LabelEncoder\nfrom sklearn.utils.class_weight import compute_class_weight\nfrom tensorflow.keras import layers\nfrom tensorflow.keras.layers import Input, Add, Dense, Dropout, Activation, ZeroPadding2D, BatchNormalization, Flatten, Conv2D, AveragePooling2D, MaxPooling2D, GlobalMaxPooling2D,GlobalAveragePooling2D,Concatenate,concatenate, ReLU, LeakyReLU,Reshape, Lambda\nfrom tensorflow.keras.callbacks import ModelCheckpoint, LearningRateScheduler, EarlyStopping, ReduceLROnPlateau\nfrom tensorflow.keras.optimizers import Adam,SGD\nfrom tensorflow.keras.preprocessing.image import ImageDataGenerator\nfrom tensorflow.keras.models import Sequential, load_model, Model\nfrom tensorflow.keras.callbacks import LearningRateScheduler\nfrom tensorflow.keras.preprocessing import image\nfrom tensorflow.keras.utils import to_categorical\nfrom tensorflow.keras import metrics\nfrom tensorflow.keras.preprocessing import image\nfrom tensorflow.keras.applications.imagenet_utils import preprocess_input\nfrom tensorflow.keras.initializers import glorot_uniform\nfrom tqdm import tqdm\nimport imgaug as ia\nfrom imgaug import augmenters as iaa\nfrom PIL import Image\nimport keras.backend as K\nK.set_image_data_format('channels_last')\n# \nK.set_learning_phase(1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"os.listdir('/kaggle/input/landmark-retrieval-2020')\ntrain_df = pd.read_csv('/kaggle/input/landmark-retrieval-2020/train.csv')\ntrain_df.head()\ndct = train_df.landmark_id.value_counts().to_dict()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"rows = []\nfor row in tqdm(train_df.id):\n    path  = list(row)[:3]\n    temp = f\"../input/landmark-retrieval-2020/train/{path[0]}/{path[1]}/{path[2]}/{row}.jpg\"\n    rows.append(temp)\n    # print(temp)\nrows = pd.DataFrame(rows)\nrows['landmark_id'] = train_df.landmark_id\nrows['count'] = rows.landmark_id.apply(lambda x: dct[x])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"target = rows.landmark_id.value_counts().argsort()[:100].index.to_list()\ntarget","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"top_ten = target[:10]\ntop_one = top_ten[0]\nrows[rows.landmark_id == top_one][0].to_list()[0]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"example = cv2.imread('../input/landmark-retrieval-2020/train/0/0/0/0006f34cf361f69c.jpg')\nimport matplotlib.pyplot as plt\nplt.imshow(example)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"top_ten[0]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"os.makedirs('../working/training', exist_ok=True)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"for item in tqdm(top_ten):\n    pa = os.path.join('../working/training', str(item))\n    os.makedirs(pa, exist_ok=True)\n    paths = rows[rows.landmark_id == item][0].to_list()[:500]\n    for i in range(len(paths)):\n        path = paths[i]\n        target_path = os.path.join(pa, str(i)+'.jpg')\n        temp = cv2.imread(path)\n        cv2.imwrite(target_path, temp)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"import zipfile\ndef zipdir(path, ziph):\n    # ziph is zipfile handle\n    for root, dirs, files in os.walk(path):\n        for file in files:\n            ziph.write(os.path.join(root, file))\nzipf = zipfile.ZipFile('samples.zip', 'w')# , zipfile.ZIP_DEFLATED\nzipdir('../working/training', zipf)\nzipf.close()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"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":4,"nbformat_minor":4}