{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "view-in-github"
},
"source": [
""
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"# for tf 2.0\n",
"#!pip install -U tensorflow-gpu"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "ckOHCuiArv5c"
},
"outputs": [
{
"data": {
"text/plain": [
"'2.0.0'"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import tensorflow as tf\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import os\n",
"import PIL\n",
"import time\n",
"from skimage.io import imshow\n",
"\n",
"from IPython.display import display\n",
"tf.__version__"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "1V2PJHrDrxf2"
},
"outputs": [],
"source": [
"(train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.mnist.load_data()\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"colab_type": "code",
"id": "L0iNo21Arykj",
"outputId": "05458ce2-9340-4569-f2f6-2712f80e1b1c"
},
"outputs": [
{
"data": {
"text/plain": [
"(dtype('uint8'), (60000, 28, 28))"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"train_images.dtype, train_images.shape"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 314
},
"colab_type": "code",
"id": "uAcCsSinus1d",
"outputId": "6c5b8499-8d08-415c-c2e3-36520c5c4a30"
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"