Se quiser copiar o código do PIX:

00020126580014BR.GOV.BCB.PIX013643c5f950-535b-4658-b91f-1f1d135fe4105204000053039865802BR5925Antonio Cavalcante de Pau6009SAO PAULO61080540900062070503***6304946B

Aula 32 - Tensor Flow - Keras - CIFAR-10 - Carregando o Modelo

CIFAR-10

Recapitulando o que já fizemos

Primeiro chegamos ao nosso modelo base, que é o VGG3, depois testamos algumas técnicas de regularização, fomos vendo o desempenho do modelo e tentando melhorar. O modelo que teve a maior precisão foi o que misturou 3 técnicas de regularização: Dropout, Data Augmentation e Batch Normalization.

Resultados Finais:

VGG3 + Weight Decay - 74,84% VGG3 + Dropout - 82,33% VGG3 + Data Augmentation - 84,77% VGG3 + Dropout + Data Augmentation - 83,79% VGG3 + Dropout + Data Augmentation + Batch Normalization - 89.85% Poderíamos continuar o processo de melhoria do modelo enquanto a gente tiver ideias, tempo e recursos para testá-las. Na aula passada, a gente salvou o modelo VGG3 + Dropout + Data Augmentation + Batch Normalization, que teve uma precisão de 89.85%, no arquivo final_model.h5. Agora, a gente vai carregar o modelo final final_model.h5 e avaliá-lo no conjunto de dados de teste.

Carregando o Modelo

O modelo pode ser carregado através da função load_model().

# load model
model = load_model('/content/final_model.h5')

Avalia do modelo


# evaluate model
_, acc = model.evaluate(testX, testY, verbose = 0)
print('> %.3f' % (acc * 100.0))

Carrega e Prepara a Imagem


# load and prepare the image
def load_image(filename):
    # load the image
    img = load_img(filename, target_size=(32, 32))
    # convert to array
    img = img_to_array(img)
    # reshape into a single sample with 3 channels
    img = img.reshape(1, 32, 32, 3)
    # prepare pixel data
    img = img.astype('float32')
    img = img / 255.0
    return img

Imagem a Ser Prevista

Agora carregamos a imagem aviao.png para submeter ao modelo.

# load the aviao image
img = load_image('aviao.png')

Previsão

# predict the class
y_predict = np.argmax(model.predict(img), axis=-1)

Resultado da Previsão


print(y_predict[0])

Aplicação Web Com Streamlit

Teste o app online, exatamente o mesmo que vamos.

Visite a página do Streamlit.

Preparação do Ambiente do App

Se não tiver o virtuaenv instalado, instale com:

pip install virtualenv
Agora crie um ambiente virtual para a gente instalar as bibliotecas que vamos precisar.

python -m venv streamlit_app
Ative o ambiente

streamlit_app\Scripts\activate
Com o ambiente ativado, instale o streamlit:

pip install streamlit
Agora o openCV.

pip install opencv-python
Instale também o Tensorflow.

pip install tensorflow

Acessando e Testando o Classificador de Imagens

Execute a Aplicação Na pasta onde tá o app.py execute o comando abaixo.

streamlit run app.py

Acesse e Teste o Classificador

http://localhost:8501

Deploy

https://share.streamlit.io/

Vamos fazer o deploy no streamlit cloud de forma bem fácil, veja no vídeo do post. Para isso, você precisa ter o projeto em um repositório online como o github. Aí então é só informar qual é o repositório. O nome do arquivo que inicia a aplicação, no meu caso: app.py. E clicar no botão Deploy!

Agora é esperar o deploy e pronto, seu app classificador de imagens já está online.

Acesse ele e teste ;)

Por essa aula é só.

Notebook da aula

Repositórios no Github:

Notebooks/Modelo/Logs de Treinamento

Aplicação Streamilt

Meu github:

https://github.com/toticavalcanti

Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no Facebook

Link do código fluente no Pinterest

Novamente deixo meus link de afiliados:

Hostinger

Digital Ocean

One.com

Obrigado, até a próxima e bons estudos. ;)