{"cells":[{"metadata":{"_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","trusted":true},"cell_type":"code","source":"import numpy as np \nimport pandas as pd\nimport os\nfrom tensorflow.python.keras.models import Sequential\nfrom tensorflow.python.keras.layers import Dense, Flatten, GlobalAveragePooling2D, Activation, Flatten, Dropout, BatchNormalization\nfrom tensorflow.python.keras import optimizers, regularizers\nfrom tensorflow.python.keras.applications import Xception\nfrom keras.applications.xception import preprocess_input\nfrom tensorflow.python.keras.models import Model\nfrom tensorflow.python.keras.optimizers import sgd\nfrom tensorflow.python.keras.preprocessing.image import ImageDataGenerator","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"1395387c3341d53e9ca207245c9d8ff8d5492f10","trusted":true},"cell_type":"code","source":"df=pd.read_csv('../input/labels.csv')\ntest_df=pd.read_csv('../input//sample_submission.csv')\nimage_size = 299","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"78cba25909a86a4d574e699d4e95b1062f5db538","trusted":true},"cell_type":"code","source":"model = Sequential()\nmodel.add(Xception(include_top=False, pooling='avg', weights=\"imagenet\"))\nmodel.add(Dense(512))\nmodel.add(Activation('relu'))\nmodel.add(Dropout(0.8))\nmodel.add(Dense(120, activation='softmax'))\nmodel.layers[0].trainable = False\nmodel.compile(optimizer='sgd', loss='categorical_crossentropy', metrics=['accuracy'])","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"20b5d2cdb5718bbf9122fdac8272c10dcfc084f5","trusted":true},"cell_type":"code","source":"\ndatagen = ImageDataGenerator(preprocessing_function=preprocess_input, \n                             rescale=1./255.,\n                             horizontal_flip=True,\n                             width_shift_range = 0.2,\n                             height_shift_range = 0.2,\n                             validation_split=0.25)\ntrain_generator=datagen.flow_from_dataframe(dataframe=df,directory=\"../input/train/\",\n                        x_col=\"id\",y_col=\"breed\",has_ext=False,\n                        subset=\"training\",batch_size=32,\n                        shuffle=True,class_mode=\"categorical\",\n                        target_size=(image_size, image_size))\nvalid_generator=datagen.flow_from_dataframe(\n                        dataframe=df,\n                        directory=\"../input/train/\",\n                        x_col=\"id\",\n                        y_col=\"breed\",has_ext=False,\n                        subset=\"validation\",batch_size=1,\n                        class_mode=\"categorical\",target_size=(image_size, image_size))\ntest_datagen=ImageDataGenerator(preprocessing_function=preprocess_input,rescale=1./255.)\ntest_generator=test_datagen.flow_from_dataframe(\n                            dataframe=test_df,\n                            directory=\"../input/test/\",x_col=\"id\",\n                            y_col=None,has_ext=False,batch_size=1,\n                            seed=42,shuffle=False,\n                            class_mode=None,target_size=(image_size, image_size))\n","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"1ae05aa2a5f25d39d576d2e1ef10a02b5b158d5d","trusted":true},"cell_type":"code","source":"model.fit_generator(generator=train_generator,steps_per_epoch=train_generator.n,validation_data=valid_generator,validation_steps=train_generator.n,epochs=1)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"4a22b0a2c1e2173fd9327abf4dd78f58acf00ac0","trusted":true},"cell_type":"code","source":"pred=model.predict_generator(test_generator,verbose=1)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"05d7c646e1685870d859c113518de36ef3aae0b9","scrolled":true,"trusted":true},"cell_type":"code","source":"labels = (train_generator.class_indices)\nlabels = list(labels.keys())\ndf = pd.DataFrame(data=pred,\n                 columns=labels)\n\ncolumns = list(df)\ncolumns.sort()\ndf = df.reindex(columns=columns)\n\nfilenames = test_df[\"id\"]\ndf[\"id\"]  = filenames\n\ncols = df.columns.tolist()\ncols = cols[-1:] + cols[:-1]\ndf = df[cols]\ndf.head(5)\n\ndf.to_csv(\"submission_nas.csv\",index=False)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"9eaf5ad4e55d7033a5092da1059f648a2241d7a4"},"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}