🐍

TensorFlow

Those are notes from a 2018 class, based on a online course. The proporse of my notes are only to demonstrate the Tensorflow potential. I was unable to find the code, so I will leave this untraslated
 
  • Me retornar duas tuplas. Duas listas imutáveis, traduzindo do termo matemático
  • Pego argumento para ter treino e teste, separando as 2 turmas para dois usos distintos
  • Tupla separada para treino tem 6000 e 1000 para teste
  • Com shape de 28x28
  • Uma biblioteca do Python apenas para visualizar os dados, usada é: import matplotlib.pyplot as plt
  • As imagens são identificadas por um número, para eu saber que imagem é tal imagem. total_de_classificacoes = 10 nomes_de_classificacoes = [‘Camiseta’, ‘Calça’, ‘Pullover’, ‘Vestido’, ‘Casaco’, ‘Sandália’, ‘Camisa’, ‘Tênis’, ‘Bolsa’, ‘Bota’]
    • notion image
  • Input shape eu digo o tamanho da minha imagem, o flatten para deixar elas com uma dimensão.
  • Antes de deixar a camada mais densa:
    • notion image
Normal
Para uma onde todo mundo fala com todo mundo:
notion image
Camada do tipo dense ou camada totalmente conectada
O que vou estar fazendo:
notion image
Para:
  1. Achato as imagens que são 28x28
  1. Faço o cálculo relu. Por ter poucas camadas, posso deixar mais camadas. Alguns consideram apenas se tiver mais camadas
  1. Faço dropout de 0.2 (20%) que é o recomendado para ajudar lá em baixo para não dar overfit
  1. Softmax para eu saber a probabilidade daquilo ser aquilo. Ele vai dizer a probabilidade da imagem ser CADA coisa. No total DEVE dar 1 modelo = keras.Sequential([ keras.layers.Flatten(input_shape=(28, 28)), keras.layers.Dense(256, activation=tensorflow.nn.relu), keras.layers.Dropout(0.2), keras.layers.Dense(10, activation=tensorflow.nn.softmax) ])
    1. notion image
Tanto faz o número do dense, tem que ser um número para. O escolhido foi 256, para depois ser feito o cálculo que nesse caso é o RELU:
notion image
Basicamente ela faz a aprendizagem não linear funcionar
notion image
 
 
notion image
 
Para depois ir para a saída:
keras.layers.Dense(10, activation=tensorflow.nn.softmax)
Antes de eu fazer o fit, para eu treinar. Eu preciso copilar:
modelo.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
  1. Adam é o mais usado para otimizar os dados, quando tem mais categorias como o nosso
  1. Para perda é usado esse cálculo, por termos 10 categorias
  1. Métrica que eu vou usar para treinar, para saber se é de qualidade. Acurrary é o mais comum. Assim ajuda a diminuir a perda e aumentar a acurácia
Depois eu faço o fit do dado, para ver o quanto eu devo treinar (lembrando que isso depende de caso para caso, só vai saber testando):
  1. comparados os dois
  1. por 5 vezes, mais que isso vai ter uma perda pior na hora da avaliação. Por dar um overfit
  1. Quebro mais uma vez o valor, para ter mais uma camada de teste. Invés de apenas 2 historico = modelo.fit(imagens_treino, identificacoes_treino, epochs=5, validation_split=0.2)
Em baixo por último eu uso a biblioteca especifica onde eu posso acessar o resultado de cada teste, para ver se bate com o que é a imagem de verdade