{ "cells": [ { "cell_type": "code", "execution_count": 4, "id": "90418142-03d2-4803-b187-f112f426a008", "metadata": {}, "outputs": [], "source": [ "from fastai.vision.all import *\n", "from fastbook import *\n", "import pandas as pd\n", "from math import exp\n", "import numpy as np\n", "matplotlib.rc('image', cmap='Greys')" ] }, { "cell_type": "code", "execution_count": 5, "id": "03498927-394e-4438-98f3-27d71e3a8920", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "digit-recognizer.zip: Skipping, found more recently modified local copy (use --force to force download)\n" ] } ], "source": [ "! kaggle competitions download -c digit-recognizer" ] }, { "cell_type": "code", "execution_count": 6, "id": "65ffc9ef-eeb4-4318-b648-d257d3bb4b34", "metadata": {}, "outputs": [], "source": [ "data = pd.read_csv('train.csv')\n" ] }, { "cell_type": "code", "execution_count": 7, "id": "670c7b49-01f3-446a-bd60-b1e1710a30a6", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
labelpixel0pixel1pixel2pixel3pixel4pixel5pixel6pixel7pixel8pixel9pixel10pixel11pixel12pixel13pixel14pixel15pixel16pixel17pixel18pixel19pixel20pixel21pixel22pixel23pixel24pixel25pixel26pixel27pixel28pixel29pixel30pixel31pixel32pixel33pixel34pixel35pixel36pixel37pixel38pixel39pixel40pixel41pixel42pixel43pixel44pixel45pixel46pixel47pixel48pixel49pixel50pixel51pixel52pixel53pixel54pixel55pixel56pixel57pixel58pixel59pixel60pixel61pixel62pixel63pixel64pixel65pixel66pixel67pixel68pixel69pixel70pixel71pixel72pixel73pixel74pixel75pixel76pixel77pixel78pixel79pixel80pixel81pixel82pixel83pixel84pixel85pixel86pixel87pixel88pixel89pixel90pixel91pixel92pixel93pixel94pixel95pixel96pixel97pixel98pixel99pixel100pixel101pixel102pixel103pixel104pixel105pixel106pixel107pixel108pixel109pixel110pixel111pixel112pixel113pixel114pixel115pixel116pixel117pixel118pixel119pixel120pixel121pixel122pixel123pixel124pixel125pixel126pixel127pixel128pixel129pixel130pixel131pixel132pixel133pixel134pixel135pixel136pixel137pixel138pixel139pixel140pixel141pixel142pixel143pixel144pixel145pixel146pixel147pixel148pixel149pixel150pixel151pixel152pixel153pixel154pixel155pixel156pixel157pixel158pixel159pixel160pixel161pixel162pixel163pixel164pixel165pixel166pixel167pixel168pixel169pixel170pixel171pixel172pixel173pixel174pixel175pixel176pixel177pixel178pixel179pixel180pixel181pixel182pixel183pixel184pixel185pixel186pixel187pixel188pixel189pixel190pixel191pixel192pixel193pixel194pixel195pixel196pixel197pixel198pixel199pixel200pixel201pixel202pixel203pixel204pixel205pixel206pixel207pixel208pixel209pixel210pixel211pixel212pixel213pixel214pixel215pixel216pixel217pixel218pixel219pixel220pixel221pixel222pixel223pixel224pixel225pixel226pixel227pixel228pixel229pixel230pixel231pixel232pixel233pixel234pixel235pixel236pixel237pixel238pixel239pixel240pixel241pixel242pixel243pixel244pixel245pixel246pixel247pixel248pixel249pixel250pixel251pixel252pixel253pixel254pixel255pixel256pixel257pixel258pixel259pixel260pixel261pixel262pixel263pixel264pixel265pixel266pixel267pixel268pixel269pixel270pixel271pixel272pixel273pixel274pixel275pixel276pixel277pixel278pixel279pixel280pixel281pixel282pixel283pixel284pixel285pixel286pixel287pixel288pixel289pixel290pixel291pixel292pixel293pixel294pixel295pixel296pixel297pixel298pixel299pixel300pixel301pixel302pixel303pixel304pixel305pixel306pixel307pixel308pixel309pixel310pixel311pixel312pixel313pixel314pixel315pixel316pixel317pixel318pixel319pixel320pixel321pixel322pixel323pixel324pixel325pixel326pixel327pixel328pixel329pixel330pixel331pixel332pixel333pixel334pixel335pixel336pixel337pixel338pixel339pixel340pixel341pixel342pixel343pixel344pixel345pixel346pixel347pixel348pixel349pixel350pixel351pixel352pixel353pixel354pixel355pixel356pixel357pixel358pixel359pixel360pixel361pixel362pixel363pixel364pixel365pixel366pixel367pixel368pixel369pixel370pixel371pixel372pixel373pixel374pixel375pixel376pixel377pixel378pixel379pixel380pixel381pixel382pixel383pixel384pixel385pixel386pixel387pixel388pixel389pixel390pixel391pixel392pixel393pixel394pixel395pixel396pixel397pixel398pixel399pixel400pixel401pixel402pixel403pixel404pixel405pixel406pixel407pixel408pixel409pixel410pixel411pixel412pixel413pixel414pixel415pixel416pixel417pixel418pixel419pixel420pixel421pixel422pixel423pixel424pixel425pixel426pixel427pixel428pixel429pixel430pixel431pixel432pixel433pixel434pixel435pixel436pixel437pixel438pixel439pixel440pixel441pixel442pixel443pixel444pixel445pixel446pixel447pixel448pixel449pixel450pixel451pixel452pixel453pixel454pixel455pixel456pixel457pixel458pixel459pixel460pixel461pixel462pixel463pixel464pixel465pixel466pixel467pixel468pixel469pixel470pixel471pixel472pixel473pixel474pixel475pixel476pixel477pixel478pixel479pixel480pixel481pixel482pixel483pixel484pixel485pixel486pixel487pixel488pixel489pixel490pixel491pixel492pixel493pixel494pixel495pixel496pixel497pixel498pixel499pixel500pixel501pixel502pixel503pixel504pixel505pixel506pixel507pixel508pixel509pixel510pixel511pixel512pixel513pixel514pixel515pixel516pixel517pixel518pixel519pixel520pixel521pixel522pixel523pixel524pixel525pixel526pixel527pixel528pixel529pixel530pixel531pixel532pixel533pixel534pixel535pixel536pixel537pixel538pixel539pixel540pixel541pixel542pixel543pixel544pixel545pixel546pixel547pixel548pixel549pixel550pixel551pixel552pixel553pixel554pixel555pixel556pixel557pixel558pixel559pixel560pixel561pixel562pixel563pixel564pixel565pixel566pixel567pixel568pixel569pixel570pixel571pixel572pixel573pixel574pixel575pixel576pixel577pixel578pixel579pixel580pixel581pixel582pixel583pixel584pixel585pixel586pixel587pixel588pixel589pixel590pixel591pixel592pixel593pixel594pixel595pixel596pixel597pixel598pixel599pixel600pixel601pixel602pixel603pixel604pixel605pixel606pixel607pixel608pixel609pixel610pixel611pixel612pixel613pixel614pixel615pixel616pixel617pixel618pixel619pixel620pixel621pixel622pixel623pixel624pixel625pixel626pixel627pixel628pixel629pixel630pixel631pixel632pixel633pixel634pixel635pixel636pixel637pixel638pixel639pixel640pixel641pixel642pixel643pixel644pixel645pixel646pixel647pixel648pixel649pixel650pixel651pixel652pixel653pixel654pixel655pixel656pixel657pixel658pixel659pixel660pixel661pixel662pixel663pixel664pixel665pixel666pixel667pixel668pixel669pixel670pixel671pixel672pixel673pixel674pixel675pixel676pixel677pixel678pixel679pixel680pixel681pixel682pixel683pixel684pixel685pixel686pixel687pixel688pixel689pixel690pixel691pixel692pixel693pixel694pixel695pixel696pixel697pixel698pixel699pixel700pixel701pixel702pixel703pixel704pixel705pixel706pixel707pixel708pixel709pixel710pixel711pixel712pixel713pixel714pixel715pixel716pixel717pixel718pixel719pixel720pixel721pixel722pixel723pixel724pixel725pixel726pixel727pixel728pixel729pixel730pixel731pixel732pixel733pixel734pixel735pixel736pixel737pixel738pixel739pixel740pixel741pixel742pixel743pixel744pixel745pixel746pixel747pixel748pixel749pixel750pixel751pixel752pixel753pixel754pixel755pixel756pixel757pixel758pixel759pixel760pixel761pixel762pixel763pixel764pixel765pixel766pixel767pixel768pixel769pixel770pixel771pixel772pixel773pixel774pixel775pixel776pixel777pixel778pixel779pixel780pixel781pixel782pixel783
01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000188255940000000000000000000000001912502539300000000000000000000000123248253167100000000000000000000000802472532081300000000000000000000002920725323577000000000000000000000054209253253880000000000000000000000932542532381701700000000000000000000023210254253159000000000000000000000016209253254240810000000000000000000000272532532541300000000000000000000002020625425419870000000000000000000000168253253196700000000000000000000002020325324876000000000000000000000022188253245930000000000000000000000010325325319100000000000000000000000892402531952500000000000000000000001522025325380000000000000000000000009425325325394000000000000000000000008925125325013100000000000000000000000021421895000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018301371371928672100000000000000000013862502542542542542172461513200000000000000001617925425425425425425425425425423154150000000000000072254254254254254254254254254254254254104000000000000061191254254254254254109831992542542542542438500000000000017225425425420214714745011292002542542541710000000000011742542548967000000128252254254212760000000000472542542542900000000832542542541530000000000802542542402400000000252402542541530000000000642542541867000000000166254254224120000000014232254254254290000000007525425425417000000001825425425425429000000000482542542541700000000216325425425429000000000482542542541700000000094254254254200120000000162092542541501000000000152062542542542026600000211612542542453100000000000602122542542541944848344148209254254254171000000000000086243254254254254254233243254254254254254860000000000000011425425425425425425425425425425423986110000000000000013182254254254254254254254254243700000000000000000087614625425525425514619150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
2100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003141139300000000000000000000000092542548000000000000000000000000925425480000000000000000000000009254254106000000000000000000000000925425418400000000000000000000000092542541840000000000000000000000009254254184000000000000000000000000618525418400000000000000000000000008925418400000000000000000000000041462541840000000000000000000000009254254184000000000000000000000000925425418400000000000000000000000092542541840000000000000000000000009254254184000000000000000000000000925425418400000000000000000000000015625425418400000000000000000000000018525525518400000000000000000000000018525425418400000000000000000000000018525425418400000000000000000000000063254254620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
34000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002201796000000009770000000000000002824717000000002720200000000000000002421550000000027254630000000000000001602076000000027254650000000000000001272542100000002023965000000000000000772542100000000195650000000000000007025421000000001951420000000000000005625121000000001952270000000000000000222153500000001202401300000000000000067251400000000942556900000000000000002341840000000192456900000000000000002341690000000319918210000000000000000154205400267212820320825425413100000000000000061254129113186245251189755613625473000000000000000152162332331591045200038254730000000000000000000000000182547300000000000000000000000001825473000000000000000000000000052061060000000000000000000000000018615900000000000000000000000006209101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001251301552542542541573020000000000000000081032532532532532532532532531142000000000000000112082532532532532532532532532532531070000000000000003125325325325325325325325325325325321510130000000000002321025325325324816122222224625325325325325339000000000000136253253253229770007021825325325325321591000000000052142532532531950000010422425325325325321529000000000116253253253247750000002620025325325325321640000000025425325325319500000000262002532532532535000000002542532532539900000000025231253253253360000000025425325325399000000000022325325325312900000000254253253253990000000000127253253253129000000002542532532539900000000001392532532539000000000254253253253990000000007824825325325350000000025425325325321634000000033152253253253107100000000206253253253253140000003013923425325325315420000000001620525325325325020810610610620023725325325325320922000000000008225325325325325325325325325325325325325320922000000000000191253253253253253253253253253253213907000000000000001181292082532532532531591299040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
\n", "
" ], "text/plain": [ " label pixel0 pixel1 pixel2 pixel3 pixel4 pixel5 pixel6 pixel7 \\\n", "0 1 0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 0 0 \n", "2 1 0 0 0 0 0 0 0 0 \n", "3 4 0 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 0 0 \n", "\n", " pixel8 pixel9 pixel10 pixel11 pixel12 pixel13 pixel14 pixel15 \\\n", "0 0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 0 \n", "\n", " pixel16 pixel17 pixel18 pixel19 pixel20 pixel21 pixel22 pixel23 \\\n", "0 0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 0 \n", "\n", " pixel24 pixel25 pixel26 pixel27 pixel28 pixel29 pixel30 pixel31 \\\n", "0 0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 0 \n", "\n", " pixel32 pixel33 pixel34 pixel35 pixel36 pixel37 pixel38 pixel39 \\\n", "0 0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 0 \n", "\n", " pixel40 pixel41 pixel42 pixel43 pixel44 pixel45 pixel46 pixel47 \\\n", "0 0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 0 \n", "\n", " pixel48 pixel49 pixel50 pixel51 pixel52 pixel53 pixel54 pixel55 \\\n", "0 0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 0 \n", "\n", " pixel56 pixel57 pixel58 pixel59 pixel60 pixel61 pixel62 pixel63 \\\n", "0 0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 0 \n", "\n", " pixel64 pixel65 pixel66 pixel67 pixel68 pixel69 pixel70 pixel71 \\\n", "0 0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 0 \n", "\n", " pixel72 pixel73 pixel74 pixel75 pixel76 pixel77 pixel78 pixel79 \\\n", "0 0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 0 \n", "\n", " pixel80 pixel81 pixel82 pixel83 pixel84 pixel85 pixel86 pixel87 \\\n", "0 0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 0 \n", "\n", " pixel88 pixel89 pixel90 pixel91 pixel92 pixel93 pixel94 pixel95 \\\n", "0 0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 0 \n", "\n", " pixel96 pixel97 pixel98 pixel99 pixel100 pixel101 pixel102 pixel103 \\\n", "0 0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 0 \n", "\n", " pixel104 pixel105 pixel106 pixel107 pixel108 pixel109 pixel110 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel111 pixel112 pixel113 pixel114 pixel115 pixel116 pixel117 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel118 pixel119 pixel120 pixel121 pixel122 pixel123 pixel124 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 18 30 137 \n", "2 0 0 0 0 0 0 3 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 1 25 130 155 \n", "\n", " pixel125 pixel126 pixel127 pixel128 pixel129 pixel130 pixel131 \\\n", "0 0 0 0 0 0 0 0 \n", "1 137 192 86 72 1 0 0 \n", "2 141 139 3 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 254 254 254 157 30 2 0 \n", "\n", " pixel132 pixel133 pixel134 pixel135 pixel136 pixel137 pixel138 \\\n", "0 188 255 94 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel139 pixel140 pixel141 pixel142 pixel143 pixel144 pixel145 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel146 pixel147 pixel148 pixel149 pixel150 pixel151 pixel152 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 13 86 250 254 254 \n", "2 0 0 0 0 0 0 9 \n", "3 220 179 6 0 0 0 0 \n", "4 0 0 8 103 253 253 253 \n", "\n", " pixel153 pixel154 pixel155 pixel156 pixel157 pixel158 pixel159 \\\n", "0 0 0 0 0 0 0 191 \n", "1 254 254 217 246 151 32 0 \n", "2 254 254 8 0 0 0 0 \n", "3 0 0 0 0 9 77 0 \n", "4 253 253 253 253 253 114 2 \n", "\n", " pixel160 pixel161 pixel162 pixel163 pixel164 pixel165 pixel166 \\\n", "0 250 253 93 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel167 pixel168 pixel169 pixel170 pixel171 pixel172 pixel173 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel174 pixel175 pixel176 pixel177 pixel178 pixel179 pixel180 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 16 179 254 254 254 254 \n", "2 0 0 0 0 0 0 9 \n", "3 28 247 17 0 0 0 0 \n", "4 0 11 208 253 253 253 253 \n", "\n", " pixel181 pixel182 pixel183 pixel184 pixel185 pixel186 pixel187 \\\n", "0 0 0 0 0 0 123 248 \n", "1 254 254 254 254 254 231 54 \n", "2 254 254 8 0 0 0 0 \n", "3 0 0 0 0 27 202 0 \n", "4 253 253 253 253 253 253 107 \n", "\n", " pixel188 pixel189 pixel190 pixel191 pixel192 pixel193 pixel194 \\\n", "0 253 167 10 0 0 0 0 \n", "1 15 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel195 pixel196 pixel197 pixel198 pixel199 pixel200 pixel201 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel202 pixel203 pixel204 pixel205 pixel206 pixel207 pixel208 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 72 254 254 254 254 254 \n", "2 0 0 0 0 0 0 9 \n", "3 0 242 155 0 0 0 0 \n", "4 0 31 253 253 253 253 253 \n", "\n", " pixel209 pixel210 pixel211 pixel212 pixel213 pixel214 pixel215 \\\n", "0 0 0 0 0 80 247 253 \n", "1 254 254 254 254 254 254 254 \n", "2 254 254 106 0 0 0 0 \n", "3 0 0 0 0 27 254 63 \n", "4 253 253 253 253 253 253 215 \n", "\n", " pixel216 pixel217 pixel218 pixel219 pixel220 pixel221 pixel222 \\\n", "0 208 13 0 0 0 0 0 \n", "1 104 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 101 3 0 0 0 0 0 \n", "\n", " pixel223 pixel224 pixel225 pixel226 pixel227 pixel228 pixel229 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel230 pixel231 pixel232 pixel233 pixel234 pixel235 pixel236 \\\n", "0 0 0 0 0 0 0 0 \n", "1 61 191 254 254 254 254 254 \n", "2 0 0 0 0 0 0 9 \n", "3 0 160 207 6 0 0 0 \n", "4 23 210 253 253 253 248 161 \n", "\n", " pixel237 pixel238 pixel239 pixel240 pixel241 pixel242 pixel243 \\\n", "0 0 0 0 29 207 253 235 \n", "1 109 83 199 254 254 254 254 \n", "2 254 254 184 0 0 0 0 \n", "3 0 0 0 0 27 254 65 \n", "4 222 222 246 253 253 253 253 \n", "\n", " pixel244 pixel245 pixel246 pixel247 pixel248 pixel249 pixel250 \\\n", "0 77 0 0 0 0 0 0 \n", "1 243 85 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 253 39 0 0 0 0 0 \n", "\n", " pixel251 pixel252 pixel253 pixel254 pixel255 pixel256 pixel257 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel258 pixel259 pixel260 pixel261 pixel262 pixel263 pixel264 \\\n", "0 0 0 0 0 0 0 0 \n", "1 172 254 254 254 202 147 147 \n", "2 0 0 0 0 0 0 9 \n", "3 0 127 254 21 0 0 0 \n", "4 136 253 253 253 229 77 0 \n", "\n", " pixel265 pixel266 pixel267 pixel268 pixel269 pixel270 pixel271 \\\n", "0 0 0 54 209 253 253 88 \n", "1 45 0 11 29 200 254 254 \n", "2 254 254 184 0 0 0 0 \n", "3 0 0 0 0 20 239 65 \n", "4 0 0 70 218 253 253 253 \n", "\n", " pixel272 pixel273 pixel274 pixel275 pixel276 pixel277 pixel278 \\\n", "0 0 0 0 0 0 0 0 \n", "1 254 171 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 253 215 91 0 0 0 0 \n", "\n", " pixel279 pixel280 pixel281 pixel282 pixel283 pixel284 pixel285 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 1 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 5 \n", "\n", " pixel286 pixel287 pixel288 pixel289 pixel290 pixel291 pixel292 \\\n", "0 0 0 0 0 0 0 0 \n", "1 174 254 254 89 67 0 0 \n", "2 0 0 0 0 0 0 9 \n", "3 0 77 254 21 0 0 0 \n", "4 214 253 253 253 195 0 0 \n", "\n", " pixel293 pixel294 pixel295 pixel296 pixel297 pixel298 pixel299 \\\n", "0 0 93 254 253 238 170 17 \n", "1 0 0 0 0 128 252 254 \n", "2 254 254 184 0 0 0 0 \n", "3 0 0 0 0 0 195 65 \n", "4 0 0 0 104 224 253 253 \n", "\n", " pixel300 pixel301 pixel302 pixel303 pixel304 pixel305 pixel306 \\\n", "0 0 0 0 0 0 0 0 \n", "1 254 212 76 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 253 253 215 29 0 0 0 \n", "\n", " pixel307 pixel308 pixel309 pixel310 pixel311 pixel312 pixel313 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 47 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 116 \n", "\n", " pixel314 pixel315 pixel316 pixel317 pixel318 pixel319 pixel320 \\\n", "0 0 0 0 0 0 0 0 \n", "1 254 254 254 29 0 0 0 \n", "2 0 0 0 0 0 0 6 \n", "3 0 70 254 21 0 0 0 \n", "4 253 253 253 247 75 0 0 \n", "\n", " pixel321 pixel322 pixel323 pixel324 pixel325 pixel326 pixel327 \\\n", "0 23 210 254 253 159 0 0 \n", "1 0 0 0 0 0 83 254 \n", "2 185 254 184 0 0 0 0 \n", "3 0 0 0 0 0 195 142 \n", "4 0 0 0 0 26 200 253 \n", "\n", " pixel328 pixel329 pixel330 pixel331 pixel332 pixel333 pixel334 \\\n", "0 0 0 0 0 0 0 0 \n", "1 254 254 153 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 253 253 253 216 4 0 0 \n", "\n", " pixel335 pixel336 pixel337 pixel338 pixel339 pixel340 pixel341 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 80 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 254 \n", "\n", " pixel342 pixel343 pixel344 pixel345 pixel346 pixel347 pixel348 \\\n", "0 0 0 0 0 0 0 16 \n", "1 254 254 240 24 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 56 251 21 0 0 0 \n", "4 253 253 253 195 0 0 0 \n", "\n", " pixel349 pixel350 pixel351 pixel352 pixel353 pixel354 pixel355 \\\n", "0 209 253 254 240 81 0 0 \n", "1 0 0 0 0 0 25 240 \n", "2 89 254 184 0 0 0 0 \n", "3 0 0 0 0 0 195 227 \n", "4 0 0 0 0 0 26 200 \n", "\n", " pixel356 pixel357 pixel358 pixel359 pixel360 pixel361 pixel362 \\\n", "0 0 0 0 0 0 0 0 \n", "1 254 254 153 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 253 253 253 253 5 0 0 \n", "\n", " pixel363 pixel364 pixel365 pixel366 pixel367 pixel368 pixel369 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 64 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 254 \n", "\n", " pixel370 pixel371 pixel372 pixel373 pixel374 pixel375 pixel376 \\\n", "0 0 0 0 0 0 0 27 \n", "1 254 254 186 7 0 0 0 \n", "2 0 0 0 0 0 0 4 \n", "3 0 0 222 153 5 0 0 \n", "4 253 253 253 99 0 0 0 \n", "\n", " pixel377 pixel378 pixel379 pixel380 pixel381 pixel382 pixel383 \\\n", "0 253 253 254 13 0 0 0 \n", "1 0 0 0 0 0 0 166 \n", "2 146 254 184 0 0 0 0 \n", "3 0 0 0 0 0 120 240 \n", "4 0 0 0 0 0 0 25 \n", "\n", " pixel384 pixel385 pixel386 pixel387 pixel388 pixel389 pixel390 \\\n", "0 0 0 0 0 0 0 0 \n", "1 254 254 224 12 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 13 0 0 0 0 0 0 \n", "4 231 253 253 253 36 0 0 \n", "\n", " pixel391 pixel392 pixel393 pixel394 pixel395 pixel396 pixel397 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 14 232 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 254 \n", "\n", " pixel398 pixel399 pixel400 pixel401 pixel402 pixel403 pixel404 \\\n", "0 0 0 0 0 0 20 206 \n", "1 254 254 254 29 0 0 0 \n", "2 0 0 0 0 0 0 9 \n", "3 0 0 67 251 40 0 0 \n", "4 253 253 253 99 0 0 0 \n", "\n", " pixel405 pixel406 pixel407 pixel408 pixel409 pixel410 pixel411 \\\n", "0 254 254 198 7 0 0 0 \n", "1 0 0 0 0 0 0 75 \n", "2 254 254 184 0 0 0 0 \n", "3 0 0 0 0 0 94 255 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel412 pixel413 pixel414 pixel415 pixel416 pixel417 pixel418 \\\n", "0 0 0 0 0 0 0 0 \n", "1 254 254 254 17 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 69 0 0 0 0 0 0 \n", "4 223 253 253 253 129 0 0 \n", "\n", " pixel419 pixel420 pixel421 pixel422 pixel423 pixel424 pixel425 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 18 254 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 254 \n", "\n", " pixel426 pixel427 pixel428 pixel429 pixel430 pixel431 pixel432 \\\n", "0 0 0 0 0 0 168 253 \n", "1 254 254 254 29 0 0 0 \n", "2 0 0 0 0 0 0 9 \n", "3 0 0 0 234 184 0 0 \n", "4 253 253 253 99 0 0 0 \n", "\n", " pixel433 pixel434 pixel435 pixel436 pixel437 pixel438 pixel439 \\\n", "0 253 196 7 0 0 0 0 \n", "1 0 0 0 0 0 0 48 \n", "2 254 254 184 0 0 0 0 \n", "3 0 0 0 0 0 19 245 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel440 pixel441 pixel442 pixel443 pixel444 pixel445 pixel446 \\\n", "0 0 0 0 0 0 0 0 \n", "1 254 254 254 17 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 69 0 0 0 0 0 0 \n", "4 127 253 253 253 129 0 0 \n", "\n", " pixel447 pixel448 pixel449 pixel450 pixel451 pixel452 pixel453 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 2 163 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 254 \n", "\n", " pixel454 pixel455 pixel456 pixel457 pixel458 pixel459 pixel460 \\\n", "0 0 0 0 0 20 203 253 \n", "1 254 254 254 29 0 0 0 \n", "2 0 0 0 0 0 0 9 \n", "3 0 0 0 234 169 0 0 \n", "4 253 253 253 99 0 0 0 \n", "\n", " pixel461 pixel462 pixel463 pixel464 pixel465 pixel466 pixel467 \\\n", "0 248 76 0 0 0 0 0 \n", "1 0 0 0 0 0 0 48 \n", "2 254 254 184 0 0 0 0 \n", "3 0 0 0 0 0 3 199 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel468 pixel469 pixel470 pixel471 pixel472 pixel473 pixel474 \\\n", "0 0 0 0 0 0 0 0 \n", "1 254 254 254 17 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 182 10 0 0 0 0 0 \n", "4 139 253 253 253 90 0 0 \n", "\n", " pixel475 pixel476 pixel477 pixel478 pixel479 pixel480 pixel481 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 94 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 254 \n", "\n", " pixel482 pixel483 pixel484 pixel485 pixel486 pixel487 pixel488 \\\n", "0 0 0 0 22 188 253 245 \n", "1 254 254 254 200 12 0 0 \n", "2 0 0 0 0 0 0 9 \n", "3 0 0 0 154 205 4 0 \n", "4 253 253 253 99 0 0 0 \n", "\n", " pixel489 pixel490 pixel491 pixel492 pixel493 pixel494 pixel495 \\\n", "0 93 0 0 0 0 0 0 \n", "1 0 0 0 0 0 16 209 \n", "2 254 254 184 0 0 0 0 \n", "3 0 26 72 128 203 208 254 \n", "4 0 0 0 0 0 0 78 \n", "\n", " pixel496 pixel497 pixel498 pixel499 pixel500 pixel501 pixel502 \\\n", "0 0 0 0 0 0 0 0 \n", "1 254 254 150 1 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 254 131 0 0 0 0 0 \n", "4 248 253 253 253 5 0 0 \n", "\n", " pixel503 pixel504 pixel505 pixel506 pixel507 pixel508 pixel509 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 15 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 254 \n", "\n", " pixel510 pixel511 pixel512 pixel513 pixel514 pixel515 pixel516 \\\n", "0 0 0 0 103 253 253 191 \n", "1 206 254 254 254 202 66 0 \n", "2 0 0 0 0 0 0 9 \n", "3 0 0 0 61 254 129 113 \n", "4 253 253 253 216 34 0 0 \n", "\n", " pixel517 pixel518 pixel519 pixel520 pixel521 pixel522 pixel523 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 21 161 254 \n", "2 254 254 184 0 0 0 0 \n", "3 186 245 251 189 75 56 136 \n", "4 0 0 0 0 0 33 152 \n", "\n", " pixel524 pixel525 pixel526 pixel527 pixel528 pixel529 pixel530 \\\n", "0 0 0 0 0 0 0 0 \n", "1 254 245 31 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 254 73 0 0 0 0 0 \n", "4 253 253 253 107 1 0 0 \n", "\n", " pixel531 pixel532 pixel533 pixel534 pixel535 pixel536 pixel537 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 206 \n", "\n", " pixel538 pixel539 pixel540 pixel541 pixel542 pixel543 pixel544 \\\n", "0 0 0 89 240 253 195 25 \n", "1 60 212 254 254 254 194 48 \n", "2 0 0 0 0 0 0 156 \n", "3 0 0 0 15 216 233 233 \n", "4 253 253 253 253 140 0 0 \n", "\n", " pixel545 pixel546 pixel547 pixel548 pixel549 pixel550 pixel551 \\\n", "0 0 0 0 0 0 0 0 \n", "1 48 34 41 48 209 254 254 \n", "2 254 254 184 0 0 0 0 \n", "3 159 104 52 0 0 0 38 \n", "4 0 0 0 30 139 234 253 \n", "\n", " pixel552 pixel553 pixel554 pixel555 pixel556 pixel557 pixel558 \\\n", "0 0 0 0 0 0 0 0 \n", "1 254 171 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 254 73 0 0 0 0 0 \n", "4 253 253 154 2 0 0 0 \n", "\n", " pixel559 pixel560 pixel561 pixel562 pixel563 pixel564 pixel565 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 16 \n", "\n", " pixel566 pixel567 pixel568 pixel569 pixel570 pixel571 pixel572 \\\n", "0 0 15 220 253 253 80 0 \n", "1 0 86 243 254 254 254 254 \n", "2 0 0 0 0 0 0 185 \n", "3 0 0 0 0 0 0 0 \n", "4 205 253 253 253 250 208 106 \n", "\n", " pixel573 pixel574 pixel575 pixel576 pixel577 pixel578 pixel579 \\\n", "0 0 0 0 0 0 0 0 \n", "1 254 233 243 254 254 254 254 \n", "2 255 255 184 0 0 0 0 \n", "3 0 0 0 0 0 0 18 \n", "4 106 106 200 237 253 253 253 \n", "\n", " pixel580 pixel581 pixel582 pixel583 pixel584 pixel585 pixel586 \\\n", "0 0 0 0 0 0 0 0 \n", "1 254 86 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 254 73 0 0 0 0 0 \n", "4 253 209 22 0 0 0 0 \n", "\n", " pixel587 pixel588 pixel589 pixel590 pixel591 pixel592 pixel593 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel594 pixel595 pixel596 pixel597 pixel598 pixel599 pixel600 \\\n", "0 0 94 253 253 253 94 0 \n", "1 0 0 114 254 254 254 254 \n", "2 0 0 0 0 0 0 185 \n", "3 0 0 0 0 0 0 0 \n", "4 82 253 253 253 253 253 253 \n", "\n", " pixel601 pixel602 pixel603 pixel604 pixel605 pixel606 pixel607 \\\n", "0 0 0 0 0 0 0 0 \n", "1 254 254 254 254 254 254 239 \n", "2 254 254 184 0 0 0 0 \n", "3 0 0 0 0 0 0 18 \n", "4 253 253 253 253 253 253 253 \n", "\n", " pixel608 pixel609 pixel610 pixel611 pixel612 pixel613 pixel614 \\\n", "0 0 0 0 0 0 0 0 \n", "1 86 11 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 254 73 0 0 0 0 0 \n", "4 209 22 0 0 0 0 0 \n", "\n", " pixel615 pixel616 pixel617 pixel618 pixel619 pixel620 pixel621 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel622 pixel623 pixel624 pixel625 pixel626 pixel627 pixel628 \\\n", "0 0 89 251 253 250 131 0 \n", "1 0 0 13 182 254 254 254 \n", "2 0 0 0 0 0 0 185 \n", "3 0 0 0 0 0 0 0 \n", "4 1 91 253 253 253 253 253 \n", "\n", " pixel629 pixel630 pixel631 pixel632 pixel633 pixel634 pixel635 \\\n", "0 0 0 0 0 0 0 0 \n", "1 254 254 254 254 254 243 70 \n", "2 254 254 184 0 0 0 0 \n", "3 0 0 0 0 0 0 5 \n", "4 253 253 253 253 253 213 90 \n", "\n", " pixel636 pixel637 pixel638 pixel639 pixel640 pixel641 pixel642 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 206 106 0 0 0 0 0 \n", "4 7 0 0 0 0 0 0 \n", "\n", " pixel643 pixel644 pixel645 pixel646 pixel647 pixel648 pixel649 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel650 pixel651 pixel652 pixel653 pixel654 pixel655 pixel656 \\\n", "0 0 0 214 218 95 0 0 \n", "1 0 0 0 8 76 146 254 \n", "2 0 0 0 0 0 0 63 \n", "3 0 0 0 0 0 0 0 \n", "4 0 1 18 129 208 253 253 \n", "\n", " pixel657 pixel658 pixel659 pixel660 pixel661 pixel662 pixel663 \\\n", "0 0 0 0 0 0 0 0 \n", "1 255 254 255 146 19 15 0 \n", "2 254 254 62 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 253 253 159 129 90 4 0 \n", "\n", " pixel664 pixel665 pixel666 pixel667 pixel668 pixel669 pixel670 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 186 159 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel671 pixel672 pixel673 pixel674 pixel675 pixel676 pixel677 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel678 pixel679 pixel680 pixel681 pixel682 pixel683 pixel684 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel685 pixel686 pixel687 pixel688 pixel689 pixel690 pixel691 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 6 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel692 pixel693 pixel694 pixel695 pixel696 pixel697 pixel698 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 209 101 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel699 pixel700 pixel701 pixel702 pixel703 pixel704 pixel705 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel706 pixel707 pixel708 pixel709 pixel710 pixel711 pixel712 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel713 pixel714 pixel715 pixel716 pixel717 pixel718 pixel719 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel720 pixel721 pixel722 pixel723 pixel724 pixel725 pixel726 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel727 pixel728 pixel729 pixel730 pixel731 pixel732 pixel733 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel734 pixel735 pixel736 pixel737 pixel738 pixel739 pixel740 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel741 pixel742 pixel743 pixel744 pixel745 pixel746 pixel747 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel748 pixel749 pixel750 pixel751 pixel752 pixel753 pixel754 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel755 pixel756 pixel757 pixel758 pixel759 pixel760 pixel761 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel762 pixel763 pixel764 pixel765 pixel766 pixel767 pixel768 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel769 pixel770 pixel771 pixel772 pixel773 pixel774 pixel775 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel776 pixel777 pixel778 pixel779 pixel780 pixel781 pixel782 \\\n", "0 0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 0 \n", "\n", " pixel783 \n", "0 0 \n", "1 0 \n", "2 0 \n", "3 0 \n", "4 0 " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.head()" ] }, { "cell_type": "code", "execution_count": 8, "id": "b6de1f03-d0bd-48d2-96f6-cfb5bdca6819", "metadata": {}, "outputs": [], "source": [ "data = np.array(data)" ] }, { "cell_type": "markdown", "id": "1e526aac-7ce2-498c-afb6-18b08948929d", "metadata": {}, "source": [ "m,n = data.shape\n", "np.random.shuffle(data)" ] }, { "cell_type": "code", "execution_count": 9, "id": "5aa2c7da-e7e6-426d-9867-86937a76892c", "metadata": {}, "outputs": [], "source": [ "m,n = data.shape\n", "np.random.shuffle(data)" ] }, { "cell_type": "code", "execution_count": 10, "id": "2fa2a087-fec8-4a7a-8c94-95520e87e83c", "metadata": {}, "outputs": [], "source": [ "data_dev = data[0:1000].T\n", "X_dev = data_dev[1:n]\n", "y_dev = data_dev[0]\n", "X_dev = X_dev / 255." ] }, { "cell_type": "code", "execution_count": 11, "id": "b00b5e87-6762-4d9d-9089-268ab82cdfee", "metadata": {}, "outputs": [], "source": [ "data_train = data[1000:m].T\n", "Y_train = data_train[0]\n", "X_train = data_train[1:n]\n", "X_train = X_train /255.\n", "_, m_train = X_train.shape \n" ] }, { "cell_type": "code", "execution_count": 12, "id": "3dfbc08b-676c-424f-9620-5a15716a291a", "metadata": {}, "outputs": [], "source": [ "def init_params():\n", " W1 = np.random.rand(10, 784) -0.5\n", " b1 = np.random.rand(10, 1) - 0.5\n", " W2 = np.random.rand(10, 10) -0.5\n", " b2 = np.random.rand(10, 1) - 0.5\n", " return W1 , b1 , W2 , b2 " ] }, { "cell_type": "code", "execution_count": 20, "id": "cddd98b0-9287-4398-a0e1-dc985efccbf2", "metadata": {}, "outputs": [], "source": [ "def ReLu(Z):\n", " return np.maximum(0, Z)\n", " \n", "def softmax(Z):\n", " exp_Z = np.exp(Z - np.max(Z, axis=0, keepdims=True))\n", " return exp_Z / np.sum(exp_Z, axis=0, keepdims=True)\n", " \n", "def forward_prop(W1, b1 , W2, b2, X):\n", " Z1 = W1.dot(X) + b1\n", " A1 = ReLu(Z1)\n", " Z2 = W2.dot(A1) + b2 \n", " A2 = softmax(Z2)\n", " \n", " return Z1 , Z2 , A1 , A2\n", " " ] }, { "cell_type": "code", "execution_count": 21, "id": "90c76872-2a23-4756-8d04-dfecce8fbcd0", "metadata": {}, "outputs": [], "source": [ "def one_hot(Y):\n", " one_hot_Y = np.zeros((Y.size, Y.max() + 1))\n", " one_hot_Y[np.arange(Y.size) , Y] = 1\n", " return one_hot_Y.T\n", "\n", "def deriv_ReLU(Z):\n", " return Z > 0\n", " \n", "def back_prop(Z1 , Z2 , A1 , A2, W2 ,X, Y ):\n", " m= Y.size\n", " one_hot_Y = one_hot(Y)\n", " dZ2 = A2 - one_hot_Y\n", " dW2 = 1/m * dZ2.dot(A1.T)\n", " db2 = 1/m * np.sum(dZ2)\n", " dZ1 = W2.T.dot(dZ2) *deriv_ReLU(Z1)\n", " dW1 = 1/m * dZ1.dot(X.T)\n", " db1 = 1/m * np.sum(dZ1)\n", " return dW2 ,dW1, db1, db2" ] }, { "cell_type": "code", "execution_count": 22, "id": "2735f3d3-df5a-465f-aa59-a247ecb27343", "metadata": {}, "outputs": [], "source": [ "def update_params(W1, b1, W2, b2, dW2, dW1, db1, db2, alpha):\n", " \n", " W1 = W1 - alpha * dW2\n", " b1 = b1 - alpha * db1\n", " W2 = W2 - alpha * dW1\n", " b2 = b2 - alpha * db2\n", " return W1, b1, W2, b2\n" ] }, { "cell_type": "code", "execution_count": 23, "id": "9b2e810f-9911-445b-944b-6a7488647b80", "metadata": {}, "outputs": [], "source": [ "def get_predictions(A2):\n", " return np.argmax(A2, 0)\n", "\n", "def get_accuracy(predictions, Y):\n", " print(predictions, Y)\n", " return np.sum(predictions == Y) / Y.size\n", "\n", "def gradient_descent(X, Y , iter, alpha):\n", " W1, b1 , W2 , b2 = init_params()\n", " for i in range(iter):\n", " Z1 , Z2 , A1 , A2= forward_prop(W1, b1 , W2 , b2, X)\n", " dW1 , dW2, db1 , db2 =back_prop(Z1 , Z2 , A1 , A2, W2, X , Y)\n", " W1, b1 , W2, b2 = update_params(W1, b1, W2 , b2 ,dW2 ,dW1, db1, db2, alpha)\n", " \n", " if i % 10 == 0 :\n", " print(\"Iteration: \", i)\n", " predictions = get_predictions(A2)\n", " print(get_accuracy(predictions, Y))\n", " return W1 , b1 , W2 , b2 \n", " " ] }, { "cell_type": "code", "execution_count": 24, "id": "543f85cc-6171-4d5d-80c4-3206e44e1714", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Iteration: 0\n", "[4 4 4 ... 4 7 2] [2 6 4 ... 2 6 0]\n", "0.10421951219512195\n", "Iteration: 10\n", "[4 4 4 ... 6 4 4] [2 6 4 ... 2 6 0]\n", "0.1402439024390244\n", "Iteration: 20\n", "[2 4 4 ... 6 4 4] [2 6 4 ... 2 6 0]\n", "0.18260975609756097\n", "Iteration: 30\n", "[2 4 4 ... 6 4 2] [2 6 4 ... 2 6 0]\n", "0.22639024390243903\n", "Iteration: 40\n", "[2 4 4 ... 6 4 2] [2 6 4 ... 2 6 0]\n", "0.27358536585365856\n", "Iteration: 50\n", "[2 4 4 ... 6 4 0] [2 6 4 ... 2 6 0]\n", "0.3517073170731707\n", "Iteration: 60\n", "[2 4 4 ... 6 4 0] [2 6 4 ... 2 6 0]\n", "0.40836585365853656\n", "Iteration: 70\n", "[2 4 4 ... 6 4 0] [2 6 4 ... 2 6 0]\n", "0.4554878048780488\n", "Iteration: 80\n", "[2 4 4 ... 6 4 0] [2 6 4 ... 2 6 0]\n", "0.49997560975609756\n", "Iteration: 90\n", "[2 4 4 ... 6 4 0] [2 6 4 ... 2 6 0]\n", "0.5408780487804878\n", "Iteration: 100\n", "[2 4 4 ... 6 6 0] [2 6 4 ... 2 6 0]\n", "0.5816341463414634\n", "Iteration: 110\n", "[2 4 4 ... 6 6 0] [2 6 4 ... 2 6 0]\n", "0.6165121951219512\n", "Iteration: 120\n", "[2 4 4 ... 6 6 0] [2 6 4 ... 2 6 0]\n", "0.6435853658536586\n", "Iteration: 130\n", "[2 4 4 ... 6 6 0] [2 6 4 ... 2 6 0]\n", "0.6667073170731708\n", "Iteration: 140\n", "[2 4 4 ... 6 6 0] [2 6 4 ... 2 6 0]\n", "0.6854634146341464\n", "Iteration: 150\n", "[2 4 4 ... 6 6 0] [2 6 4 ... 2 6 0]\n", "0.7005121951219512\n", "Iteration: 160\n", "[2 6 4 ... 6 6 0] [2 6 4 ... 2 6 0]\n", "0.7150487804878048\n", "Iteration: 170\n", "[2 6 4 ... 6 6 0] [2 6 4 ... 2 6 0]\n", "0.7254146341463414\n", "Iteration: 180\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.7356585365853658\n", "Iteration: 190\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.7440243902439024\n", "Iteration: 200\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.7522926829268293\n", "Iteration: 210\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.759609756097561\n", "Iteration: 220\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.766\n", "Iteration: 230\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.7719268292682927\n", "Iteration: 240\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.777\n", "Iteration: 250\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.781829268292683\n", "Iteration: 260\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.7859756097560976\n", "Iteration: 270\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.7901951219512195\n", "Iteration: 280\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.7943902439024391\n", "Iteration: 290\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.7986829268292683\n", "Iteration: 300\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.8016341463414635\n", "Iteration: 310\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.8048780487804879\n", "Iteration: 320\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.8074878048780488\n", "Iteration: 330\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.810829268292683\n", "Iteration: 340\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.8133170731707317\n", "Iteration: 350\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.8162682926829268\n", "Iteration: 360\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.8192926829268292\n", "Iteration: 370\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.8213170731707317\n", "Iteration: 380\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.8239024390243902\n", "Iteration: 390\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.8258048780487804\n", "Iteration: 400\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.8281219512195122\n", "Iteration: 410\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.8301463414634146\n", "Iteration: 420\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.8321951219512195\n", "Iteration: 430\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.8337317073170731\n", "Iteration: 440\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.8355853658536585\n", "Iteration: 450\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.8376585365853658\n", "Iteration: 460\n", "[2 6 4 ... 7 6 0] [2 6 4 ... 2 6 0]\n", "0.8391463414634146\n", "Iteration: 470\n", "[2 6 4 ... 9 6 0] [2 6 4 ... 2 6 0]\n", "0.840780487804878\n", "Iteration: 480\n", "[2 6 4 ... 9 6 0] [2 6 4 ... 2 6 0]\n", "0.8422682926829268\n", "Iteration: 490\n", "[2 6 4 ... 9 6 0] [2 6 4 ... 2 6 0]\n", "0.8439512195121951\n" ] } ], "source": [ "W1, b1, W2, b2 = gradient_descent(X_train, Y_train, 500, 0.10)" ] }, { "cell_type": "code", "execution_count": 25, "id": "4a6a9819-bf7f-443b-b654-8b4a94c07d4f", "metadata": {}, "outputs": [], "source": [ "def make_predictions(X, W1, b1, W2, b2):\n", " _, _, _, A2 = forward_prop(W1, b1, W2, b2, X)\n", " predictions = get_predictions(A2)\n", " return predictions\n", "\n", "def test_prediction(index, W1, b1, W2, b2):\n", " current_image = X_train[:, index, None]\n", " prediction = make_predictions(X_train[:, index, None], W1, b1, W2, b2)\n", " label = Y_train[index]\n", " print(\"Prediction: \", prediction)\n", " print(\"Label: \", label)\n", " \n", " current_image = current_image.reshape((28, 28)) * 255\n", " plt.gray()\n", " plt.imshow(current_image, interpolation='nearest')\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 26, "id": "430ac2c1-f81c-488c-9b94-433d750d459e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Prediction: [2]\n", "Label: 2\n" ] }, { "data": { "image/png": "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mEAgAQBMIJAAACYQSAAAEwgkAIAJBBIAwASP4zhOuJu4EL/fL6/XG+42IlZMjPsHus+YMSOguR544AHXNRs3bnRd895777muwcCkp6e7rqmtrQ3JPPPmzXNds3v3btc1GDifz6fExMQ+13OGBAAwgUACAJhAIAEATCCQAAAmEEgAABMIJACACQQSAMAEAgkAYAKBBAAwgUACAJhAIAEATCCQAAAmuH/yJiJKR0eH65q///3vAc31ox/9KKA62FdfX++6ZufOna5rfvazn7muWbRokesaHq5qE2dIAAATCCQAgAkEEgDABAIJAGACgQQAMIFAAgCYQCABAEwgkAAAJhBIAAATCCQAgAkEEgDABAIJAGACD1cFEBQTJkwIyTwZGRkhmQfBxxkSAMAE14HU3NyskpISzZ07V6mpqfJ4PCorK+t124MHD+q6665TQkKCkpKSVFRUpC+++GKgPQMAopDrQGpoaNCWLVvU3t6uJUuW9Lndp59+qlmzZunrr7/Wq6++queff16fffaZZs6cqVOnTg2kZwBAFHL9HlJGRoaamprk8Xh0+vRpPffcc71uV1paqtjYWFVXVysxMVGSNG3aNE2YMEGbNm3SY489NrDOAQBRxfUZksfjkcfjueA2HR0dqq6u1o033tgVRtK5MJs9e7Z27NjhvlMAQFQLyocajhw5otbWVuXm5vZYl5ubq7q6OrW1tfVa297eLr/f320AAKJfUAKpoaFBkpScnNxjXXJyshzHUVNTU6+1FRUV8nq9XSM9PT0YLQIAjAnqx74vdGmvr3Vr1qyRz+frGvX19cFqDwBgSFBujE1JSZH0f2dK/6uxsVEej0dJSUm91sbGxio2NjYYbQEADAvKGdL48eMVFxenQ4cO9Vh36NAhZWVlaeTIkcGYGgAQoYISSDExMVq0aJG2b9+u5ubmruVffvml9uzZo6KiomBMCwCIYAFdstu5c6fOnDnTFTYff/yxqqqqJEnz58/XqFGjVF5erunTp2vhwoVavXq12traVFpaqtGjR+v+++8fvJ8AABAVPI7jOG6LMjMzdfz48V7XHT16VJmZmZKkAwcO6IEHHtC7776rmJgYzZkzR5s2bdL48eP7PZff75fX63XbIoAwu+WWW1zXvPTSS65r3njjDdc1hYWFrmswcD6fr9u9qd8W0BnSsWPH+rXdtGnT9PbbbwcyBQBgiOFp3wAAEwgkAIAJBBIAwAQCCQBgAoEEADCBQAIAmEAgAQBMIJAAACYQSAAAEwgkAIAJBBIAwAQCCQBgQlC+MRYAhg3j7124wxEDADCBQAIAmEAgAQBMIJAAACYQSAAAEwgkAIAJBBIAwAQCCQBgAoEEADCBQAIAmEAgAQBMIJAAACbwcFUAFxUXF+e65r777gtCJz3V1taGZB4EH2dIAAATCCQAgAkEEgDABAIJAGACgQQAMIFAAgCYQCABAEwgkAAAJhBIAAATCCQAgAkEEgDABAIJAGACD1cFcFHz5893XTNlyhTXNS0tLa5r3n77bdc1sIkzJACACQQSAMAEAgkAYAKBBAAwgUACAJhAIAEATCCQAAAmEEgAABMIJACACQQSAMAEAgkAYAKBBAAwgYerYtCMGDHCdc3cuXNd1xQUFLiuiUanT592XfP6668HNNe6desCqnOrrq7Odc3hw4eD0AnCgTMkAIAJrgOpublZJSUlmjt3rlJTU+XxeFRWVtZju2XLlsnj8fQY2dnZg9E3ACDKuL5k19DQoC1btigvL09LlizRc8891+e2cXFxqqmp6bEMAIBvcx1IGRkZampqksfj0enTpy8YSMOGDVN+fv6AGgQADA2uA8nj8QSjDwDAEBfUDzW0trZqzJgxGj58uMaNG6eVK1eqsbHxgjXt7e3y+/3dBgAg+gXtY995eXnKy8vTpEmTJEm1tbXavHmzdu/erf379yshIaHXuoqKCpWXlwerLQCAUUELpHvvvbfbvwsKCjR16lTddNNNevbZZ3usP2/NmjW67777uv7t9/uVnp4erDYBAEaE9MbYwsJCxcfHa9++fX1uExsbq9jY2BB2BQCwIOQ3xjqOo2HDuB8XANBdSJOhqqpKZ8+e5aPgAIAeArpkt3PnTp05c0bNzc2SpI8//lhVVVWSpPnz5+vUqVMqLi7WzTffrKysLHk8HtXW1urxxx9XTk6O7rzzzsH7CQAAUcHjOI7jtigzM1PHjx/vdd3Ro0fl9Xp1xx136P3339fJkyf1zTffKCMjQ4WFhVq7dq28Xm+/5/L7/a62x8BlZmYGVLd27VrXNXfccUdAcyE6HTt2zHXNM88847qmvr7edU0ovfvuu65rAtl3oebz+ZSYmNjn+oDOkPrzg2/fvj2QlwYADFF8ugAAYAKBBAAwgUACAJhAIAEATCCQAAAmEEgAABMIJACACQQSAMAEAgkAYAKBBAAwgUACAJhAIAEATAjoad+hxNO+Q+/WW28NqO53v/ud65qzZ8+6rtm0aZPrmra2Ntc1kvSvf/3LdU1OTo7rmkC+tHLlypWua8aMGeO6BqEXyP+Le+65J6C5fvvb3wZUF4iLPe2bMyQAgAkEEgDABAIJAGACgQQAMIFAAgCYQCABAEwgkAAAJhBIAAATCCQAgAkEEgDABAIJAGACgQQAMCEm3A3Anvnz54dsrrvvvtt1TSAPcQ2l6urqkMxTV1fnuuaVV14JaK6WlhbXNYE87DOQeYqLi13XZGZmuq6RAuvvBz/4geuaUaNGua5JSUlxXWMNZ0gAABMIJACACQQSAMAEAgkAYAKBBAAwgUACAJhAIAEATCCQAAAmEEgAABMIJACACQQSAMAEAgkAYAIPV0UP6enpAdV98803rmuOHDkS0FyWjRgxwnXND3/4Q9c1zz//vOuaQG3bts11Tagegvvaa6+5romPjw9oro6ODtc1ycnJAc3l1unTp0MyTzBxhgQAMIFAAgCYQCABAEwgkAAAJhBIAAATCCQAgAkEEgDABAIJAGACgQQAMIFAAgCYQCABAEwgkAAAJvBwVQyakydPuq45fPhwEDoZPJmZma5r1q9f77pm+fLlrmsC8fvf/z6gup///OeD3El4nTlzJmRz/fvf/w7ZXJGOMyQAgAmuAqmmpka33367srOzFR8fr7Fjx2rx4sU6cOBAj20PHjyo6667TgkJCUpKSlJRUZG++OKLQWscABBdXAXSU089pWPHjmnVqlX6y1/+oieeeEL/+c9/lJ+fr5qamq7tPv30U82aNUtff/21Xn31VT3//PP67LPPNHPmTJ06dWrQfwgAQORz9R7Sr3/9a1166aXdls2bN09ZWVl65JFHNGfOHElSaWmpYmNjVV1drcTEREnStGnTNGHCBG3atEmPPfbYILUPAIgWrs6Qvh1GkpSQkKCJEyeqvr5e0rlvVKyurtaNN97YFUaSlJGRodmzZ2vHjh0DbBkAEI0G/KEGn8+ngwcPKicnR9K5r6RubW1Vbm5uj21zc3NVV1entra2Pl+vvb1dfr+/2wAARL8BB9KKFSt05swZrVu3TpLU0NAgqffvkU9OTpbjOGpqaurz9SoqKuT1ertGenr6QFsEAESAAQXSgw8+qJdfflmbN2/WtGnTuq3zeDx91l1o3Zo1a+Tz+brG+UuBAIDoFvCNseXl5Xr44Ye1ceNGrVy5smt5SkqKpP87U/pfjY2N8ng8SkpK6vN1Y2NjFRsbG2hbAIAIFdAZUnl5ucrKylRWVqa1a9d2Wzd+/HjFxcXp0KFDPeoOHTqkrKwsjRw5MrBuAQBRy3UgPfTQQyorK9P69eu1YcOGHutjYmK0aNEibd++Xc3NzV3Lv/zyS+3Zs0dFRUUD6xgAEJVcXbKrrKxUaWmp5s2bpwULFmjfvn3d1ufn50s6dwY1ffp0LVy4UKtXr1ZbW5tKS0s1evRo3X///YPXPQAgargKpD//+c+SpF27dmnXrl091juOI0nKzs7W3r179cADD+imm25STEyM5syZo02bNik1NXUQ2kYwffjhhwHVnf+DxI077rjDdc1vfvMb1zXz5s1zXSNJv/jFL1zXZGRkuK75+uuvXdcsXbrUdc3bb7/tukaSOjs7A6oD3HAVSHv37u33ttOmTQv44AcADD087RsAYAKBBAAwgUACAJhAIAEATCCQAAAmEEgAABMIJACACQQSAMAEAgkAYAKBBAAwgUACAJhAIAEATPA45x/RbZTf75fX6w13G0PKDTfcEFDdG2+84bpm2LDo+5vI7/e7rvnJT37iuuavf/2r6xognHw+nxITE/tcH32/DQAAEYlAAgCYQCABAEwgkAAAJhBIAAATCCQAgAkEEgDABAIJAGACgQQAMIFAAgCYQCABAEwgkAAAJvBwVQyaq6++2nXN1q1bXdeMHTvWdc2uXbtc10jSn/70J9c1NTU1rmuOHDniugaINDxcFQAQEQgkAIAJBBIAwAQCCQBgAoEEADCBQAIAmEAgAQBMIJAAACYQSAAAEwgkAIAJBBIAwAQCCQBgAg9XBQCEBA9XBQBEBAIJAGACgQQAMIFAAgCYQCABAEwgkAAAJhBIAAATCCQAgAkEEgDABAIJAGACgQQAMIFAAgCYQCABAEwgkAAAJrgKpJqaGt1+++3Kzs5WfHy8xo4dq8WLF+vAgQPdtlu2bJk8Hk+PkZ2dPajNAwCiR4ybjZ966ik1NDRo1apVmjhxok6dOqXKykrl5+frrbfe0pw5c7q2jYuLU01NTbf6uLi4wekaABB9HBdOnjzZY1lzc7Nz2WWXOddee23Xsttuu82Jj49389J98vl8jiQGg8FgRPjw+XwX/H3v6pLdpZde2mNZQkKCJk6cqPr6ejcvBQBANwP+UIPP59PBgweVk5PTbXlra6vGjBmj4cOHa9y4cVq5cqUaGxsv+nrt7e3y+/3dBgAg+rl6D6k3K1as0JkzZ7Ru3bquZXl5ecrLy9OkSZMkSbW1tdq8ebN2796t/fv3KyEhoc/Xq6ioUHl5+UDbAgBEmoG8v7N+/XpHkvPkk09edNuqqipHkvPLX/7ygtu1tbU5Pp+va9TX14f9uieDwWAwBj4u9h5SwIFUVlbmSHI2btzYr+2/+eYbJz4+3vnxj3/sah4+1MBgMBjRMQb1Qw3nlZeXq6ysTGVlZVq7dm2/6xzH0bBh3IsLAOjJdTo89NBDKisr0/r167Vhw4Z+11VVVens2bPKz893OyUAYAhw9aGGyspKlZaWat68eVqwYIH27dvXbX1+fr6OHz+u4uJi3XzzzcrKypLH41Ftba0ef/xx5eTk6M477xzUHwAAECXcvJ9zzTXXXPD6oOM4TmNjo1NYWOhkZmY6cXFxzogRI5wJEyY4JSUlzldffeXq/SPeQ2IwGIzoGRd7D8njOI4jw/x+v7xeb7jbAAAMkM/nU2JiYp/r+YQBAMAEAgkAYAKBBAAwgUACAJhAIAEATCCQAAAmEEgAABMIJACACQQSAMAEAgkAYAKBBAAwgUACAJhAIAEATCCQAAAmEEgAABMIJACACQQSAMAEAgkAYAKBBAAwgUACAJhAIAEATCCQAAAmEEgAABMIJACACeYDyXGccLcAABgEF/t9bj6Qmpubw90CAGAQXOz3uccxfgrS2dmpEydO6JJLLpHH4+m2zu/3Kz09XfX19UpMTAxTh+HHfjiH/XAO++Ec9sM5FvaD4zhqbm5WWlqahg3r+zwoJoQ9BWTYsGEaN27cBbdJTEwc0gfceeyHc9gP57AfzmE/nBPu/eD1ei+6jflLdgCAoYFAAgCYENGBFBsbqw0bNig2NjbcrYQV++Ec9sM57Idz2A/nRNJ+MP+hBgDA0BDRZ0gAgOhBIAEATCCQAAAmRFwgtbS06J577lFaWppGjhypKVOm6JVXXgl3WyG3d+9eeTyeXse+ffvC3V5QNDc3q6SkRHPnzlVqaqo8Ho/Kysp63fbgwYO67rrrlJCQoKSkJBUVFemLL74IbcNB0t/9sGzZsl6Pj+zs7NA3Pchqamp0++23Kzs7W/Hx8Ro7dqwWL16sAwcO9Ng2mo+F/u6HSDkWzN8Y+21FRUXav3+/Hn30UV1xxRXaunWrbrnlFnV2dqq4uDjc7YXcI488otmzZ3dbNmnSpDB1E1wNDQ3asmWL8vLytGTJEj333HO9bvfpp59q1qxZmjJlil599VW1tbWptLRUM2fO1AcffKDU1NQQdz64+rsfJCkuLk41NTU9lkW6p556Sg0NDVq1apUmTpyoU6dOqbKyUvn5+Xrrrbc0Z84cSdF/LPR3P0gRciw4EeTNN990JDlbt27ttrygoMBJS0tzOjo6wtRZ6O3Zs8eR5Lz22mvhbiVkOjs7nc7OTsdxHOfUqVOOJGfDhg09tlu6dKkzevRox+fzdS07duyY853vfMcpKSkJVbtB09/9cNtttznx8fEh7i40Tp482WNZc3Ozc9lllznXXntt17JoPxb6ux8i5ViIqEt2O3bsUEJCgpYuXdpt+fLly3XixAm99957YeoMoXD+MsOFdHR0qLq6WjfeeGO3x6RkZGRo9uzZ2rFjR7DbDLr+7Idod+mll/ZYlpCQoIkTJ6q+vl7S0DgW+rMfIklEBdLhw4d15ZVXKiam+5XG3NzcrvVDzYoVKxQTE6PExERdf/31euedd8LdUlgdOXJEra2tXcfE/8rNzVVdXZ3a2trC0Fl4tLa2asyYMRo+fLjGjRunlStXqrGxMdxtBYXP59PBgweVk5MjaegeC9/eD+dFwrEQUe8hNTQ06Hvf+16P5cnJyV3rhwqv16tVq1Zp1qxZSklJUV1dnX7xi19o1qxZevPNN3X99deHu8WwOH8MnD8m/ldycrIcx1FTU5O++93vhrq1kMvLy1NeXl7Xe4q1tbXavHmzdu/erf379yshISHMHQ6uFStW6MyZM1q3bp2koXssfHs/SJFzLERUIEm64KWKoXQZY+rUqZo6dWrXv2fOnKnCwkJNnjxZJSUlQzaQzuM4ke69995u/y4oKNDUqVN100036dlnn+2xPpI9+OCDevnll/Xkk09q2rRp3dYNpWOhr/0QKcdCRF2yS0lJ6fUs6PxpZ29/CQ0lSUlJWrhwoT766CO1traGu52wSElJkdT72XJjY6M8Ho+SkpJC3JUdhYWFio+Pj6pbA8rLy/Xwww9r48aNWrlyZdfyoXYs9LUf+mLxWIioQJo8ebI++eQTdXR0dFt+6NAhSdH7cWc3nP//aMJo+8uvv8aPH6+4uLiuY+J/HTp0SFlZWRo5cmQYOrPDcZwLfklaJCkvL1dZWZnKysq0du3abuuG0rFwof1wIdaOBTud9ENhYaFaWlr0+uuvd1v+4osvKi0tTTNmzAhTZzY0NTWpurpaU6ZMiZr/aG7FxMRo0aJF2r59e7evS/7yyy+1Z88eFRUVhbG78KuqqtLZs2eVn58f7lYG7KGHHlJZWZnWr1+vDRs29Fg/VI6Fi+2Hvlg8FiLqPaQbbrhBBQUFuuuuu+T3+5WVlaVt27Zp165deumllzR8+PBwtxgyxcXFuvzyy3XVVVdp9OjR+vzzz1VZWamTJ0/qhRdeCHd7QbNz506dOXOm6xfMxx9/rKqqKknS/PnzNWrUKJWXl2v69OlauHChVq9e3XUz5OjRo3X//feHs/1Bc7H9cOrUKRUXF+vmm29WVlaWPB6Pamtr9fjjjysnJ0d33nlnONsfsMrKSpWWlmrevHlasGBBj8tO53/JRvux0J/9cPz48cg5FsJ6F1QAmpubnbvvvtsZM2aMM2LECCc3N9fZtm1buNsKuYqKCmfKlCmO1+t1hg8f7qSmpjqFhYXOP/7xj3C3FlQZGRmOpF7H0aNHu7b75z//6Vx77bXOqFGjnMTERGfJkiVOXV1d+BofZBfbD42NjU5hYaGTmZnpxMXFOSNGjHAmTJjglJSUOF999VW42x+wa665ps+f/9u/1qL5WOjPfoikY4HvQwIAmBBR7yEBAKIXgQQAMIFAAgCYQCABAEwgkAAAJhBIAAATCCQAgAkEEgDABAIJAGACgQQAMIFAAgCYQCABAEz4fyoMn5ltGqrGAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Prediction: [6]\n", "Label: 6\n" ] }, { "data": { "image/png": "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nG6//Xbt3r2719clf/vtt9q/f79KSkoi2F3k1dTU6Ny5cyooKIh0K0P25JNPqqKiQhs2bNDGjRv7rB8p58LljsNALJ4LUfUe0q233qqioiKtXLlSgUBAmZmZ2rlzp9555x299tprGj16dKRbDJvS0lJdddVVuvbaazVhwgR99dVXqq6u1unTp7Vt27ZItxcyb7/9ts6ePdvzB+bIkSOqqamRJN12220aN26cKisrNW/ePC1ZskRr167t+TDkhAkT9Oijj0ay/WFzuePQ1NSk0tJSrVixQpmZmXIcR/X19dq6datycnL04IMPRrL9IauurlZ5ebkWLVqkxYsX97nsdPGPbKyfC4M5DidPnoyecyGin4IKQltbm/vQQw+56enp7pgxY9zc3Fx3586dkW4r7Kqqqtz8/HzX5/O5o0ePdidOnOgWFxe7H330UaRbC6lp06a5kvod33zzTc92H3/8sXvjjTe648aNc5OTk92lS5e6x44di1zjw+xyx6GlpcUtLi52p0+f7iYkJLhjxoxxs7Ky3LKyMvf777+PdPtDdsMNNwz4+//0z1osnwuDOQ7RdC7wfUgAABOi6j0kAEDsIpAAACYQSAAAEwgkAIAJBBIAwAQCCQBgAoEEADCBQAIAmEAgAQBMIJAAACYQSAAAEwgkAIAJ/w8caFvydw4z2gAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Prediction: [4]\n", "Label: 4\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Prediction: [3]\n", "Label: 8\n" ] }, { "data": { "image/png": "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unXd1o2kc6G/49Afa+eCnU4GID8/X2fOnNGbb77Zbfkrr7yipKQkXXPNNSHqzIampiZVVVUpKysrYv5HcysqKkpLlizRrl27un1d8smTJ7Vv3z4VFBSEsLvQq6ys1NmzZ5WTkxPqVgZt48aNKikp0fr167Vhw4Ye60fKuXCx49AXi+dCWL2HdMsttygvL08PPPCA/H6/0tLStGPHDr3zzjt69dVXNXr06FC3OGwKCwt1xRVX6Oqrr9aECRP09ddfq7y8XKdPn9bLL78c6vaCZu/evWppaen6A/P555+rsrJSknTrrbdq3LhxKi0t1bx587R48WKtWbOm68OQEyZM0KOPPhrK9ofMxY5DfX29CgsLdeeddyotLU0ej0c1NTXasmWL0tPTdf/994ey/UErLy9XcXGxFi1apNtuu63HbacLf2Qj/VwYyHE4ceJE+JwLIf0UVACam5udhx56yJk8ebIzZswYJyMjw9mxY0eo2xp2ZWVlTlZWluP1ep3Ro0c7EydOdPLz851//etfoW4tqFJTUx1JvY5jx451bffvf//bueGGG5xx48Y58fHxzrJly5zDhw+HrvEhdrHj0NjY6OTn5ztTp051YmJinDFjxjjTp093ioqKnO+//z7U7Q/a9ddf3+fv/9M/a5F8LgzkOITTucD3IQEATAir95AAAJGLQAIAmEAgAQBMIJAAACYQSAAAEwgkAIAJBBIAwAQCCQBgAoEEADCBQAIAmEAgAQBMIJAAACb8P/orjD03AKHpAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "test_prediction(0, W1, b1, W2, b2)\n", "test_prediction(1, W1, b1, W2, b2)\n", "test_prediction(2, W1, b1, W2, b2)\n", "test_prediction(3, W1, b1, W2, b2)" ] }, { "cell_type": "code", "execution_count": 31, "id": "fdb878e1-cd7c-48c8-bbab-2407dcc41eab", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from PIL import Image\n", "\n", "def preprocess_image(image_path, target_size=(28, 28)):\n", " try:\n", " # Load the image\n", " img = Image.open(image_path)\n", " \n", " # Convert to RGB if the image has an alpha channel (PNG)\n", " if img.mode == 'RGBA':\n", " img = img.convert('RGB')\n", " \n", " # Convert to grayscale\n", " img = img.convert('L')\n", " \n", " # Resize the image\n", " img = img.resize(target_size)\n", " \n", " # Convert to numpy array and normalize\n", " img_array = np.array(img).reshape(1, 28*28) / 255.0\n", " \n", " return img_array.T # Transpose to match the shape (784, 1)\n", " \n", " except Exception as e:\n", " print(f\"Error processing image {image_path}: {str(e)}\")\n", " return None\n", " return img_array.T # Transpose to match the shape (784, 1)" ] }, { "cell_type": "code", "execution_count": 32, "id": "723d31e8-33dd-438b-8b6a-21d3cde7eace", "metadata": {}, "outputs": [], "source": [ "def predict_custom_image(image_path, W1, b1, W2, b2):\n", " # Preprocess the image\n", " X = preprocess_image(image_path)\n", " \n", " # Forward propagation\n", " _, _, _, A2 = forward_prop(W1, b1, W2, b2, X)\n", " \n", " # Get the prediction\n", " prediction = get_predictions(A2)\n", " \n", " return prediction[0] # Return the single prediction" ] }, { "cell_type": "code", "execution_count": 35, "id": "a9aa8b02-edd4-477f-a74e-8b63c77eb51e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The predicted digit is: 6\n" ] } ], "source": [ "# Assuming you have already trained your model and have W1, b1, W2, b2\n", "\n", "# Path to your custom image\n", "custom_image_path = \"images.png\"\n", "\n", "# Make prediction\n", "predicted_digit = predict_custom_image(custom_image_path, W1, b1, W2, b2)\n", "\n", "print(f\"The predicted digit is: {predicted_digit}\")" ] }, { "cell_type": "code", "execution_count": 36, "id": "2e02ae63-cdff-4b57-ab45-4906693645eb", "metadata": {}, "outputs": [], "source": [ "import pickle\n", "\n", "model_params = {\n", " 'W1': W1,\n", " 'b1': b1,\n", " 'W2': W2,\n", " 'b2': b2\n", "}\n", "\n", "with open('model.pkl', 'wb') as f:\n", " pickle.dump(model_params, f)" ] }, { "cell_type": "code", "execution_count": null, "id": "f5b72124-7465-46ee-8bc7-72e2ab756b1b", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "e50817d2-c0a4-4564-8afc-c570526ab8fa", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.13" } }, "nbformat": 4, "nbformat_minor": 5 }