{"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 tensorflow as tf\nfrom tensorflow.python import keras\nfrom tensorflow.python.keras.models import Sequential\nfrom tensorflow.python.keras.layers import Dense, Flatten, Conv2D, Dropout\n\nimg_rows, img_cols = 28, 28\nnum_classes = 10\n\ndef data_prep(raw):\n    out_y = keras.utils.to_categorical(raw.label, num_classes)\n    num_images = raw.shape[0]\n    x_as_array = raw.values[:,1:]\n    x_shaped_array = x_as_array.reshape(num_images, img_rows, img_cols, 1)\n    out_x = x_shaped_array / 255\n    return out_x, out_y\n\ntrain_file = \"../input/train.csv\"\nraw_data = pd.read_csv(train_file)\nx, y = data_prep(raw_data)\nwith tf.device('/gpu:0'):\n    model = Sequential()\n    model.add(Conv2D(20, kernel_size=(3, 3),\n                     activation='relu',\n                     input_shape=(img_rows, img_cols, 1)))\n    for _ in range(5):\n        model.add(Conv2D(1000, kernel_size=(3, 3), activation='relu'))\n    model.add(Flatten())\n    model.add(Dense(1000, activation='relu'))\n    model.add(Dense(num_classes, activation='softmax'))\n\n    model.compile(loss=keras.losses.categorical_crossentropy,\n                  optimizer='adam',\n                  metrics=['accuracy'])\n\n\n    model.fit(x, y, epochs=1, batch_size=200)\n","execution_count":1,"outputs":[]},{"metadata":{"_cell_guid":"612e928f-61d1-4579-ba8f-a6bfb6c7019c","_uuid":"1d4aff234777b21f782e706a2451c40249944dac","trusted":true},"cell_type":"code","source":"","execution_count":3,"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}