{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# DeepVision: Exploiting computer vision techniques to minimize CPU Utilization \n",
"\n",
"[![](https://img.shields.io/github/license/sourcerer-io/hall-of-fame.svg?colorB=ff0000)](https://github.com/akshaybahadur21/Autopilot/blob/master/LICENSE.txt) \n",
"\n",
"[![](https://img.shields.io/badge/Akshay-Bahadur-brightgreen.svg?colorB=ff0000)](https://akshaybahadur.com)\n",
"\n",
"This python notebook is for explanation of the core concepts used and the models developed for this webinar.\n",
"\n",
"### Acknowledgement\n",
"\n",
"I would like to extend my gratitude towards Open Data Science Conference, Boston team for giving me this opportunity to showcase my findings especially Alena, Vimal and Rafael.\n",
"\n",
"### Akshay Bahadur\n",
"\n",
"- Software engineer working with Symantec.\n",
"- ML Researcher\n",
"\n",
"#### Contact \n",
"\n",
"- [Portfolio](https://www.akshaybahadur.com/)\n",
"- [LinkedIN](https://www.linkedin.com/in/akshaybahadur21/)\n",
"- [GitHub](https://github.com/akshaybahadur21)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Agenda\n",
"\n",
"\n",
"\n",
"\n",
"- Introduction\n",
"- Tania's Story\n",
"- MNIST \n",
"- Autopilot\n",
"- Malaria Detection\n",
"\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Tania's Story"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/jpeg": "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\n",
"text/html": [
"\n",
" \n",
" "
],
"text/plain": [
""
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from IPython.display import YouTubeVideo\n",
"YouTubeVideo('Oc_QMQ4QHcw')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## MNIST Digit Recognition"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
""
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%HTML\n",
""
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Using TensorFlow backend.\n"
]
}
],
"source": [
"from keras import Sequential\n",
"from keras.callbacks import ModelCheckpoint\n",
"from keras.datasets import mnist\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from keras.layers import Flatten, Dense, Dropout\n",
"from keras.utils import np_utils, print_summary\n",
"from keras.models import load_model"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {},
"outputs": [],
"source": [
"(x_train, y_train), (x_test, y_test) = mnist.load_data()"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [],
"source": [
"def showData(x, label):\n",
" pixels = np.array(x, dtype='uint8')\n",
"\n",
" pixels = pixels.reshape((28, 28))\n",
"\n",
" plt.title('Label is {label}'.format(label=label))\n",
" plt.imshow(pixels, cmap='gray')\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"