{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import os\nprint(os.listdir(\"../input\"))","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"import os.path\nimport itertools\nfrom itertools import chain\n\nimport numpy as np\nimport pandas as pd\nfrom sklearn import datasets\nfrom sklearn import preprocessing\nfrom sklearn.decomposition import PCA\nfrom sklearn import cluster, datasets, mixture\nfrom sklearn.datasets import load_digits\nfrom sklearn.preprocessing import StandardScaler, OneHotEncoder\nfrom sklearn.metrics import f1_score, classification_report, confusion_matrix\nfrom sklearn.model_selection import train_test_split\n\nimport matplotlib.pyplot as plt\nfrom matplotlib.colors import ListedColormap\nimport seaborn as sns\n\nfrom keras.layers import Input, Embedding, LSTM, GRU, Dense, Dropout, Lambda, \\\n    Conv1D, Conv2D, Conv3D, \\\n    Conv2DTranspose, \\\n    AveragePooling1D, AveragePooling2D, \\\n    MaxPooling1D, MaxPooling2D, MaxPooling3D, \\\n    GlobalAveragePooling1D, \\\n    GlobalMaxPooling1D, GlobalMaxPooling2D, GlobalMaxPooling3D, \\\n    LocallyConnected1D, LocallyConnected2D, \\\n    concatenate, Flatten, Average, Activation, \\\n    RepeatVector, Permute, Reshape, Dot, \\\n    multiply, dot, add, \\\n    PReLU, \\\n    Bidirectional, TimeDistributed, \\\n    SpatialDropout1D, \\\n    BatchNormalization\nfrom keras.models import Model, Sequential\nfrom keras import losses\nfrom keras.callbacks import BaseLogger, ProgbarLogger, Callback, History\nfrom keras.callbacks import ModelCheckpoint, LearningRateScheduler, ReduceLROnPlateau\nfrom keras.wrappers.scikit_learn import KerasClassifier\nfrom keras import regularizers\nfrom keras import initializers\nfrom keras.metrics import categorical_accuracy\nfrom keras.constraints import maxnorm, non_neg\nfrom keras.optimizers import RMSprop\nfrom keras.utils import to_categorical, plot_model\nfrom keras import backend as K","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"6a36b2b770021f56aa12cbb757e2182a5644ef74"},"cell_type":"code","source":"from PIL import Image\nfrom zipfile import ZipFile\nimport h5py\nimport cv2\nfrom tqdm import tqdm","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"9cf0266dd08b6edc0df6d32360e74a0e616bb723"},"cell_type":"code","source":"def unpickle(file):\n    import pickle\n    with open(file, 'rb') as fo:\n        dict = pickle.load(fo, encoding='bytes')\n    return dict","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"bf1ead366e3797fb5ef0fa49077f99854b162dc0"},"cell_type":"code","source":"batch1 = unpickle(\"../input/data_batch_1\")\nbatch2 = unpickle(\"../input/data_batch_2\")\nbatch3 = unpickle(\"../input/data_batch_3\")\nbatch4 = unpickle(\"../input/data_batch_4\")\nbatch5 = unpickle(\"../input/data_batch_5\")\ntest_batch = unpickle(\"../input/test_batch\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1a3a238af9e74380f43cb755a74e6f419c7dae63"},"cell_type":"code","source":"def load_data0(btch):\n    labels = btch[b'labels']\n    imgs = btch[b'data'].reshape((-1, 32, 32, 3))\n    \n    res = []\n    for ii in range(imgs.shape[0]):\n        img = imgs[ii].copy()\n        #img = np.transpose(img.flatten().reshape(3,32,32))\n        img = np.fliplr(np.rot90(np.transpose(img.flatten().reshape(3,32,32)), k=-1))\n        res.append(img)\n    imgs = np.stack(res)\n    return labels, imgs\n\nlabels, imgs = load_data0(batch1)\nimgs.shape\n\ndef load_data():\n    x_train_l = []\n    y_train_l = []\n    for ibatch in [batch1, batch2, batch3, batch4, batch5]:\n        labels, imgs = load_data0(ibatch)\n        x_train_l.append(imgs)\n        y_train_l.extend(labels)\n    x_train = np.vstack(x_train_l)\n    y_train = np.vstack(y_train_l)\n    \n    x_test_l = []\n    y_test_l = []\n    labels, imgs = load_data0(test_batch)\n    x_test_l.append(imgs)\n    y_test_l.extend(labels)\n    x_test = np.vstack(x_test_l)\n    y_test = np.vstack(y_test_l)\n    \n    \n    return (x_train, y_train), (x_test, y_test)\n\n(x_train, y_train), (x_test, y_test) = load_data()\n\ndel batch1, batch2, batch3, batch4, batch5, test_batch","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"8549619ce9b4c3b7506b5dd63acc107f1cb8639d"},"cell_type":"code","source":"y_train","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"ee0fc7ef04bc911bc60139e0af4371c2ac79574c"},"cell_type":"code","source":"y_test","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1d3ce6cddb9417b5125a6a2e7c9ef405b142924e"},"cell_type":"code","source":"x_train.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"bc110ebd019895b5d20d6bb7d3eccfd5df1c839c"},"cell_type":"code","source":"x_test.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"51c94952097bcd513bca10e83b68eb4386128827"},"cell_type":"code","source":"plt.imshow(x_train[0])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"32518fa065a314e7a2bc9e8e5c2b53574b9ac5e4"},"cell_type":"code","source":"plt.imshow(x_test[0])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"ce90c1b77eb78dd4f85824829ffcf66b8bcf0dba"},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"0bb468278b660980f16bf2a38fc3f2c36184aa11"},"cell_type":"code","source":"x_train = x_train.astype('float32') / 255.0\nx_test = x_test.astype('float32') / 255.0","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"b21eebf8e2d6352b4beb902dc405b95816dbd72e"},"cell_type":"code","source":"x_train_fl = x_train.reshape((x_train.shape[0], -1))\nprint(x_train_fl.shape)\nx_test_fl = x_test.reshape((x_test.shape[0], -1))\nprint(x_test_fl.shape)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"dfd35845992e27d71b4fe78a9e8c4f70ecbe72cc"},"cell_type":"code","source":"y_train = y_train.flatten()\ny_train\ny_cat_train = to_categorical(y_train)\nprint(y_cat_train.shape)\n\ny_test = y_test.flatten()\ny_test\n\ny_cat_test = to_categorical(y_test)\nprint(y_cat_test.shape)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"7b605be6625fa958c9070985b661c648aa22abea"},"cell_type":"code","source":"plt.imshow(x_train[0])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"5006b6a92e62cf23ff8443ab11481807b9e1da95"},"cell_type":"code","source":"nrows=10\nncols=10\nfig, subs = plt.subplots(nrows=nrows, ncols=ncols, figsize=(15, 10))\n\nfor ii in range(nrows):\n    for jj in range(ncols):\n        iplt = subs[ii, jj]\n        img_array = x_train[ii*ncols + jj]\n        iplt.imshow(img_array)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"3d8b3a30002cba9a56862714664a490983a4bcb7"},"cell_type":"code","source":"nrows=10\nncols=12\nfig, subs = plt.subplots(nrows=nrows, ncols=ncols, figsize=(15, 10))\n\nfor ii in range(nrows):\n    idx = (y_train == ii)\n    target_img = x_train[idx][:ncols]\n    for jj in range(ncols):\n        iplt = subs[ii, jj]\n        img_array = target_img[jj]\n        iplt.imshow(img_array)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"771856067b06a386aaa1ac2cc96abb7b3af68156"},"cell_type":"code","source":"nrows=10\nncols=12\nfig, subs = plt.subplots(nrows=nrows, ncols=ncols, figsize=(15, 10))\n\nfor ii in range(nrows):\n    idx = (y_train == ii)\n    target_img = x_train_fl[idx][:ncols]\n    for jj in range(ncols):\n        iplt = subs[ii, jj]\n        img_array = target_img[jj].reshape((32,32,3))\n        iplt.imshow(img_array)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"e6c855f278b4681e3a72b1f12741b8c7298982a4"},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.6","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}