🐍

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