{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import cv2\nimport numpy as np\nimport pandas as pd\n\nimport matplotlib.pyplot as plt\n%matplotlib inline\n\nimport os\nimport random\nimport gc\n\ntraindir='../input/train'\ntestdir='../input/test'\ntrain_dog=['../input/train/{}'.format(i) for i in os.listdir(traindir) if 'dog' in i]\ntrain_cat=['../input/train/{}'.format(i) for i in os.listdir(traindir) if 'cat' in i]\n\ntest_img=['../input/train/{}'.format(i) for i in os.listdir(testdir)]\ntrain_img=train_dog[:2000]+train_cat[:2000]\nrandom.shuffle(train_img)\ndel train_dog\ndel train_cat\ngc.collect()","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"import matplotlib.image as mpimg\nfor ima in train_img[0:3]:\n    img=mpimg.imread(ima)\n    imgplot=plt.imshow(img)\n    plt.show()\n    ","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"4d62f11ff30aff580c532126bb7161c823261455"},"cell_type":"code","source":"nrows=150\nncolumns=150\nchannels=3\n\ndef read_imag(list_images):\n    x=[]\n    y=[]\n    for image in list_images:\n        x.append(cv2.resize(cv2.imread(image,cv2.IMREAD_COLOR),(nrows,ncolumns),interpolation=cv2.INTER_CUBIC))\n        if 'dog' in image:\n            y.append(1)\n        elif 'cat' in image:\n            y.append(0)\n            \n    return x,y\nx,y=read_imag(train_img)\nx[0]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"56a5c994a32bc2d1c6edf80101ef1ad098f47f6c"},"cell_type":"code","source":"y","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"c837f5c781bfe9711b23461bad576693b0a24d32"},"cell_type":"code","source":"plt.figure(figsize=(20,10))\ncolumns=5\nfor i in range(columns):\n    plt.subplot(5/columns + 1,columns,i + 1)\n    plt.imshow(x[i])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"4f89856ef603a62f810fd7f33688c94488f597e9"},"cell_type":"code","source":"import seaborn as sns\ndel train_img\ngc.collect()\n\nX=np.array(x)\nY=np.array(y)\n\nsns.countplot(y)\nplt.title(\"cats and dogs\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"56bde824dae0522fe670a63b3123facd0d39a9c5"},"cell_type":"code","source":"print('shape of train images is', X.shape)\nprint('shape of labels is:',Y.shape)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"076ae69a32b3fa32401f1020b6ab7b73856aa569"},"cell_type":"code","source":"from sklearn.model_selection import train_test_split\nx_train,x_val,y_train,y_val= train_test_split(X,Y,test_size=0.20,random_state=2)\nprint('shape of train images is:',x_train.shape)\nprint('shape of validation images is:',x_val.shape)\nprint('shape of labels is:',y_train.shape)\nprint('shape of train images is:',y_val.shape)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"71a70af2ae416cdb36fe62cb8c59fa6b0734c862"},"cell_type":"code","source":"\n\nntrain=len(x_train)\nnval=len(x_val)\nbatch_size =32\n\nfrom keras import layers\nfrom keras import models\nfrom keras import optimizers\nfrom keras.preprocessing.image import ImageDataGenerator\nfrom keras.preprocessing.image import img_to_array,load_img\nmodel=models.Sequential()\nmodel.add(layers.Conv2D(32, (3,3), activation='relu',input_shape=(150,150,3)))\nmodel.add(layers.MaxPooling2D((2,2)))\nmodel.add(layers.Conv2D(64,(3,3),activation='relu'))\nmodel.add(layers.MaxPooling2D((2,2)))\nmodel.add(layers.Conv2D(128,(3,3),activation='relu'))\nmodel.add(layers.MaxPooling2D((2,2)))\nmodel.add(layers.Flatten())\nmodel.add(layers.Dropout(0.5))\nmodel.add(layers.Dense(512,activation='relu'))\nmodel.add(layers.Dense(1,activation='sigmoid'))\n\nmodel.summary()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"d3212cd3675a461e0c068fc599343a1fa60beca5"},"cell_type":"code","source":"model.compile(loss='binary_crossentropy',optimizer=optimizers.RMSprop(lr=1e-4),metrics=['acc'])","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}