{"cells":[{"metadata":{},"cell_type":"markdown","source":"# Imports"},{"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)\nimport tensorflow as tf\nprint(pd.__version__)\n\n\nimport matplotlib.pyplot as plt\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(\"/kaggle/working\"))\n\n# Any results you write to the current directory are saved as output.","execution_count":23,"outputs":[{"output_type":"stream","text":"0.23.4\n['.ipynb_checkpoints', '__notebook_source__.ipynb']\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"Load Data"},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"test = pd.read_csv(\"../input/test.csv\")\ntrain = pd.read_csv(\"../input/train.csv\")\n\ntrain_labels = train['label'].values\ntrain_input = train.drop('label', axis=1).values\n\ntest_input = test.values","execution_count":13,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"\nfor i in range(1, 5):\n    plt.subplot(2,2, i)\n    plt.imshow(train_input[i].reshape((28,28)))\n    plt.title(train_labels[i])\nplt.show()","execution_count":21,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 4 Axes>","image/png":"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\n"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"## model"},{"metadata":{"trusted":true},"cell_type":"code","source":"model = tf.keras.Sequential([\n    tf.keras.layers.Dense(128, activation=tf.nn.relu),\n    tf.keras.layers.Dense(10, activation=tf.nn.softmax)\n])","execution_count":24,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model.compile(optimizer=\"adam\", loss=\"sparse_categorical_crossentropy\", metrics=[\"accuracy\"])","execution_count":25,"outputs":[{"output_type":"stream","text":"WARNING:tensorflow:From /opt/conda/lib/python3.6/site-packages/tensorflow/python/ops/resource_variable_ops.py:435: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\nInstructions for updating:\nColocations handled automatically by placer.\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_input, test_input = train_input / 255.0, test_input / 255.0","execution_count":27,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model.fit(train_input, train_labels, epochs=5)","execution_count":28,"outputs":[{"output_type":"stream","text":"Epoch 1/5\n42000/42000 [==============================] - 10s 250us/sample - loss: 0.3966 - acc: 0.8930\nEpoch 2/5\n42000/42000 [==============================] - 9s 218us/sample - loss: 0.1863 - acc: 0.9467\nEpoch 3/5\n42000/42000 [==============================] - 9s 223us/sample - loss: 0.1443 - acc: 0.9581\nEpoch 4/5\n42000/42000 [==============================] - 9s 224us/sample - loss: 0.1154 - acc: 0.9662\nEpoch 5/5\n42000/42000 [==============================] - 9s 220us/sample - loss: 0.0936 - acc: 0.9724\n","name":"stdout"},{"output_type":"execute_result","execution_count":28,"data":{"text/plain":"<tensorflow.python.keras.callbacks.History at 0x7f08b8f08240>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"predictions = model.predict(test_input)\npred_labels = np.argmax(predictions, axis=1)\nsubmission = pd.DataFrame({'ImageId': range(1,28001), 'Label': pred_labels})\nsubmission.to_csv(\"submission.csv\", index=False)","execution_count":45,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":41,"outputs":[{"output_type":"error","ename":"OSError","evalue":"[Errno 18] Invalid cross-device link: 'predictions.csv' -> '../predictions.csv'","traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mOSError\u001b[0m                                   Traceback (most recent call last)","\u001b[0;32m<ipython-input-41-5b4827a6865b>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrename\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"predictions.csv\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"../predictions.csv\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m","\u001b[0;31mOSError\u001b[0m: [Errno 18] Invalid cross-device link: 'predictions.csv' -> '../predictions.csv'"]}]}],"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}