Skip to content

Instantly share code, notes, and snippets.

@esdonto
Last active November 16, 2019 04:10
Show Gist options
  • Save esdonto/345ff1b54653ccaff178f544f654dbb0 to your computer and use it in GitHub Desktop.
Save esdonto/345ff1b54653ccaff178f544f654dbb0 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# TensorFlow e Keras"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2.0.0\n"
]
}
],
"source": [
"# Import do TF e da ferramentas usadas\n",
"from __future__ import absolute_import, division, print_function, unicode_literals\n",
"import tensorflow as tf\n",
"from tensorflow.keras import layers\n",
"\n",
"# Import de outras bibliotecas que serão usada\n",
"import numpy as np\n",
"import datetime\n",
"import os\n",
"\n",
"# Imprimindo versão do TensorFlow\n",
"print(tf.__version__)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Exemplo 1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Carregando base de dados"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# Passando base de dados para one hot encoding\n",
"mapping = np.identity(10, dtype=int)\n",
"\n",
"y_train = np.array([mapping[y] for y in y_train])\n",
"y_test = np.array([mapping[y] for y in y_test])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Montando modelo"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"modelo = tf.keras.Sequential()\n",
"\n",
"modelo.add(layers.Flatten())\n",
"modelo.add(layers.Dense(800, kernel_initializer=\"random_uniform\", bias_initializer=\"random_uniform\", activation=\"sigmoid\"))\n",
"modelo.add(layers.Dense(10, kernel_initializer=\"random_uniform\", bias_initializer=\"random_uniform\", activation=\"sigmoid\"))\n",
"\n",
"modelo.compile(optimizer=\"sgd\", loss=\"categorical_crossentropy\", metrics=[\"binary_accuracy\"])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Treinando o modelo"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"log_dir = os.path.join( \"logs\", \"fit\", datetime.datetime.now().strftime(\"%Y%m%d-%H%M%S\"))\n",
"tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 60000 samples\n",
"Epoch 1/99\n",
"60000/60000 [==============================] - 2s 41us/sample - loss: 2.3973 - binary_accuracy: 0.4837\n",
"Epoch 2/99\n",
"60000/60000 [==============================] - 2s 26us/sample - loss: 2.3790 - binary_accuracy: 0.4818\n",
"Epoch 3/99\n",
"60000/60000 [==============================] - 2s 25us/sample - loss: 2.3623 - binary_accuracy: 0.4799\n",
"Epoch 4/99\n",
"60000/60000 [==============================] - 2s 26us/sample - loss: 2.3470 - binary_accuracy: 0.4781\n",
"[...]\n",
"Epoch 96/99\n",
"60000/60000 [==============================] - 2s 27us/sample - loss: 1.2007 - binary_accuracy: 0.9089\n",
"Epoch 97/99\n",
"60000/60000 [==============================] - 2s 25us/sample - loss: 1.1912 - binary_accuracy: 0.9087\n",
"Epoch 98/99\n",
"60000/60000 [==============================] - 2s 27us/sample - loss: 1.1817 - binary_accuracy: 0.9086\n",
"Epoch 99/99\n",
"60000/60000 [==============================] - 2s 27us/sample - loss: 1.1725 - binary_accuracy: 0.9084\n"
]
}
],
"source": [
"results = modelo.fit(x_train, y_train, batch_size = 60000, epochs=99)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Exemplo 2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Carregando base de dados"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"(train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.cifar10.load_data()\n",
"# Normalizando os valores dos pixel para serem entre 0 e 1\n",
"train_images, test_images = train_images / 255.0, test_images / 255.0"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Montando modelo"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"modelo = tf.keras.Sequential()\n",
"\n",
"modelo.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)))\n",
"modelo.add(layers.Conv2D(64, (3, 3), activation='relu'))\n",
"modelo.add(layers.MaxPooling2D((2, 2)))\n",
"modelo.add(layers.Conv2D(64, (3, 3), activation='relu'))\n",
"modelo.add(layers.Flatten())\n",
"modelo.add(layers.Dense(64, activation='relu'))\n",
"modelo.add(layers.Dense(10, activation='softmax'))\n",
"\n",
"modelo.compile(optimizer=\"adam\", loss=\"sparse_categorical_crossentropy\", metrics=[\"accuracy\"])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Treinando o modelo"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"log_dir = os.path.join( \"logs\", \"fit\", datetime.datetime.now().strftime(\"%Y%m%d-%H%M%S\"))\n",
"tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 50000 samples\n",
"Epoch 1/20\n",
"50000/50000 [==============================] - 138s 3ms/sample - loss: 1.4302 - accuracy: 0.4832\n",
"Epoch 2/20\n",
"50000/50000 [==============================] - 142s 3ms/sample - loss: 1.0061 - accuracy: 0.6466\n",
"Epoch 3/20\n",
"50000/50000 [==============================] - 151s 3ms/sample - loss: 0.8440 - accuracy: 0.7072\n",
"Epoch 4/20\n",
"50000/50000 [==============================] - 144s 3ms/sample - loss: 0.7344 - accuracy: 0.7447\n",
"[...]\n",
"Epoch 18/20\n",
"50000/50000 [==============================] - 136s 3ms/sample - loss: 0.1187 - accuracy: 0.9574\n",
"Epoch 19/20\n",
"50000/50000 [==============================] - 137s 3ms/sample - loss: 0.1227 - accuracy: 0.9569\n",
"Epoch 20/20\n",
"50000/50000 [==============================] - 138s 3ms/sample - loss: 0.1079 - accuracy: 0.9612\n"
]
}
],
"source": [
"results = modelo.fit(train_images, train_labels, epochs=20, callbacks=[tensorboard_callback])"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.7.4"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment