{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\n\nimport os\nprint(os.listdir(\"../input\"))\n\n# Any results you write to the current directory are saved as output.","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport tensorflow as tf\nfrom sklearn.model_selection import train_test_split\nfrom keras.models import Model, Sequential\nfrom keras.layers import Input, Conv2D, Dense, Dropout, Flatten, MaxPool2D, MaxPooling2D, BatchNormalization, Activation, Add, AveragePooling2D, GlobalAveragePooling2D, ZeroPadding2D, concatenate\nfrom keras.initializers import glorot_uniform, Constant\nfrom keras.utils import to_categorical\nfrom keras.callbacks import EarlyStopping\nfrom keras.constraints import maxnorm\nfrom keras.optimizers import SGD, Adam\n\n\nX = np.load('../input/training-data/train_X.npy')\ny = np.load('../input/training-data/train_y.npy')\ntest_X = np.load('../input/test-data/test_X.npy')\nX = X/255\ntest_X = test_X/255\ntrain_X, dev_X, train_y, dev_y = train_test_split(X, y, test_size = 0.3, random_state=21)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def model():\n    images = Input((100, 100, 3))\n    X = Conv2D(128, kernel_size=(3,3), padding='same', activation='relu', kernel_initializer='glorot_uniform')(images)\n    X = MaxPooling2D(pool_size=(2, 2))(X)\n    X = Dropout(0.2)(X)\n    X = Conv2D(128, kernel_size=(3,3), activation='relu', padding='same', kernel_initializer='glorot_uniform')(X)\n    X = MaxPooling2D(pool_size=(2, 2))(X)\n    X = Dropout(0.2)(X)\n    X = Conv2D(256, kernel_size=(3,3), activation='relu', padding='same', kernel_initializer='glorot_uniform')(X)\n    X = MaxPooling2D(pool_size=(2, 2))(X)\n    X = Dropout(0.2)(X)\n    X = Conv2D(256, kernel_size=(3,3), activation='relu', padding='same', kernel_initializer='glorot_uniform')(X)\n    X = MaxPooling2D(pool_size=(2, 2))(X)\n    X = Dropout(0.3)(X)\n    X = Conv2D(256, kernel_size=(3,3), activation='relu', padding='same', kernel_initializer='glorot_uniform')(X)\n    X = MaxPooling2D(pool_size=(2, 2))(X)\n    X = Dropout(0.3)(X)\n    X = Flatten()(X)\n    X = Dense(512, activation='relu', kernel_constraint=maxnorm(3))(X)\n    X = Dropout(0.4)(X)\n    X = Dense(1, activation='sigmoid')(X)\n    model = Model(inputs=images, outputs=X)\n    # Compile model\n    epochs = 25\n    lrate = 0.0005\n    adam = Adam(lr=lrate, beta_1=0.9, beta_2=0.999)\n    model.compile(loss='binary_crossentropy', optimizer=adam, metrics=['accuracy'])\n    print(model.summary())\n    return model\n\nmodel = model()\n\nmodel.fit(train_X, train_y, validation_data=(dev_X, dev_y), epochs=100, batch_size=32)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"print(model.history.history.keys())\nimport matplotlib.pyplot as plt\nplt.figure(0)\nplt.plot(model.history.history['accuracy'])\nplt.plot(model.history.history['val_accuracy'])\nplt.legend(['accuracy', 'val_accuracy'])\nplt.figure(1)\nplt.plot(model.history.history['loss'])\nplt.plot(model.history.history['val_loss'])\nplt.legend(['loss', 'val_loss'])","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.4","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}