{"cells":[{"metadata":{"trusted":true},"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport math\nimport matplotlib.pyplot as plt\nimport random\nimport tensorflow as tf","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from tensorflow.keras.models import Sequential\nfrom tensorflow.keras.layers import Conv2D, MaxPooling2D, Dense, Flatten, Softmax","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"simple implementation of tensorflow"},{"metadata":{"trusted":true},"cell_type":"code","source":"train = pd.read_csv(\"../input/digit-recognizer/train.csv\")\ntest = pd.read_csv(\"../input/digit-recognizer/test.csv\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def model_data(input_df, col_start): \n    Xlist = []\n    pixel_names = list(input_df.columns[col_start:])\n    for pixel in pixel_names:\n        Xlist.append(list(input_df[pixel]))\n    Xarray = np.array(Xlist)\n    image_list = []\n    for image in Xarray.T:\n        image_list.append(np.reshape(image, (28,28)))\n    image_list = np.array(image_list)\n    return image_list\nXtrain = np.expand_dims(model_data(train, 1), 3)/255","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"Xtest = np.expand_dims(model_data(test, 0), 3)/255","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"Ytrain = np.expand_dims(np.array(train['label']), 1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"Xtrain.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def model_init():\n    model = Sequential([\n        Conv2D(16, (5,5), activation='relu'),\n        Conv2D(16, (5,5), activation='relu'),\n        Conv2D(16, (5,5), activation='relu'),\n        Conv2D(16, (3,3), activation='relu'),\n        Conv2D(16, (3,3), activation='relu'),\n        MaxPooling2D((3,3)),\n        Flatten(),\n        Dense(10, activation='softmax')\n    ])\n    return model ","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model = model_init()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def compile_model(model):\n    model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.001),\n                  loss='sparse_categorical_crossentropy',\n                  metrics=['accuracy'])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"compile_model(model)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def train_model(model, scaled_train_images, train_labels):\n    history = model.fit(scaled_train_images, train_labels, epochs=2, batch_size=64)\n    return history","execution_count":null,"outputs":[]},{"metadata":{"scrolled":true,"trusted":true},"cell_type":"code","source":"history = train_model(model, Xtrain, Ytrain)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"prediction = np.argmax(model.predict(Xtest), axis=-1)\nimageid = np.array(range(1,len(prediction)+1))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"data = np.column_stack((imageid, prediction))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission_digits = pd.DataFrame(data=data, columns=['ImageId', 'Label'])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission_digits.set_index('ImageId', inplace=True)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission_digits","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat":4,"nbformat_minor":4}