Atividade 1 - Importando a biblioteca TensorFlow e os conjuntos de dados
Importar Dependências
Pacotes
A primeira coisa que precisamos fazer é importar a biblioteca TensorFlow para que possamos utilizar funções que nos permitirão treinar o modelo.
Também utilizaremos gráficos para visualizar as previsões do nosso modelo. Para isso, precisamos importar as seguintes bibliotecas:
import tensorflow as tf
from tensorflow import keras
import numpy as np
import matplotlib.pyplot as plt
Essas bibliotecas são essenciais pois fornecem uma coleção de métodos e funções já prontos. Importá-las para nosso programa permite usá-las sem reescrever tudo do zero.
Carregar Conjuntos de Dados
fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
Dividimos os dados em dois conjuntos: treinamento e teste. O primeiro serve para o modelo aprender, e o segundo para validar o aprendizado.
Preparar os Dados
class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat', 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']
title: “Atividade 2 - Exibindo Valores de Cor RGB para Imagens” date: 2020-09-09T16:19:17-07:00 prereq: “Fundamentos de Python: Funções - Funções integradas, Funções de bibliotecas; Tipos de Dados - Strings, Números, Leitura do console; Estruturas de Dados - Listas” difficulty: Intermediário weight: 3 draft: false
Visualizar Imagens das Amostras
plt.figure()
plt.imshow(train_images[0])
plt.colorbar()
plt.grid(False)
plt.show()
Pixels vão de 0 a 255 e formam imagens ao se combinarem.
Pergunta 1:
Use outro índice em train_images[x]
para ver outra imagem.
Exemplo com índice 7:
Normalizar os Valores dos Pixels
train_images = train_images / 255.0
test_images = test_images / 255.0
Dividir por 255 normaliza os valores para o intervalo 0 a 1, como em porcentagens.
title: “Atividade 3 - Exibindo Amostras de Roupas” date: 2020-09-09T16:19:17-07:00 prereq: “Fundamentos de Python: Funções - Funções integradas, Funções de bibliotecas; Tipos de Dados - Strings, Números, Leitura do console; Estruturas de Dados - Listas; Laços - For” difficulty: Intermediário weight: 5 draft: false
Exibir Amostras
Copie o código abaixo para seu notebook. Ele mostra uma coleção de imagens com seus respectivos rótulos:
plt.figure(figsize=(10,10))
for i in range(25):
plt.subplot(5,5,i+1)
plt.xticks([])
plt.yticks([])
plt.grid(False)
plt.imshow(train_images[i], cmap=plt.cm.binary)
plt.xlabel(class_names[train_labels[i]])
plt.show()
Pergunta 1
Seu supervisor entregou entre 15 e 20 novas amostras de roupas, que você deverá incluir no programa.
Altere o for
para que sejam exibidas 6 linhas e 7 colunas de imagens.
Quantas imagens no total isso representará?
Reflita sobre quais partes do código precisam ser modificadas, como o range()
e os parâmetros do subplot()
.
title: “Atividade 4 - Treinando o Modelo” date: 2020-09-09T16:19:17-07:00 prereq: “Fundamentos de Python: Funções - Funções integradas, Funções de bibliotecas; Tipos de Dados - Strings, Números, Leitura do console; Estruturas de Dados - Listas, Tuplas, Conjuntos” difficulty: Intermediário weight: 7 draft: false
Parâmetros de Treinamento
O código abaixo define quantas vezes o modelo será treinado. É normal que essa etapa demore um pouco mais para ser executada:
model.fit(train_images, train_labels, epochs=10)
Épocas (epochs) representam quantas vezes o modelo processa todos os dados de treinamento.
O código a seguir imprime a acurácia do modelo com o conjunto de teste:
test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2)
print('\nTest accuracy:', test_acc)
Pergunta 1
Defina epochs=2
. Qual é a acurácia da última época? E qual a acurácia de teste ao comparar com o conjunto de teste?
Pergunta 2
Defina epochs=10
. Repita a Pergunta 1.
Pergunta 3
Defina epochs=20
. Repita a Pergunta 1.
Pergunta 4
Qual correlação você percebe ao aumentar o número de épocas? A acurácia aumenta ou diminui?