Olá,
Fiz tudo exatamente igual a aula, porém quando coloco meu app no StreamLit ele não abre, fica a tela branca. Gostaria de saber se podem me ajudar.
Olá,
Fiz tudo exatamente igual a aula, porém quando coloco meu app no StreamLit ele não abre, fica a tela branca. Gostaria de saber se podem me ajudar.
" O link da aula com o arquivo finalizado esta com erro, não abre.
import streamlit as st
import gdown
import tensorflow as tf
import io
from PIL import Image
import numpy as np
import pandas as pd
import plotly.express as px
@st.cache_resource
def load_model():
#https://drive.google.com/file/d/1NSsQconZZViIPqI5Z-2tWqK1AVXoN-0h/view?usp=sharing
url = 'https://drive.google.com/uc?id=1NSsQconZZViIPqI5Z-2tWqK1AVXoN-0h'
gdown.download(url, 'model_16bits.tflite')
interpreter = tf.lite.Intepreter(model_path = 'model_16bits.tflite')
interpreter.allocate_tensors()
return interpreter
def load_image():
uploaded_file = st.file_uploader('Drag and drop the image here or click to select an image', type=['png', 'jpeg', 'jpg'])
if uploaded_file is not None:
image_data = uploaded_file.read()
image = Image.open(io.BytesIO(image_data))
st.image(image)
st.success('The image was loaded successfully')
image = np.array(image, dtype=np.float32)
image = image / 255.0
image = np.expand_dims(image, axis=0)
return image
def forecast(interpreter,image):
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()
interpreter.set_tensor(input_details[0]['index'],image)
interpreter.invoke()
output_data = interpreter.get_tensor(output_details[0]['index'])
classes = ['BlackMeasles', 'BlackRot', 'HealthyGrapes', 'LeafBlight']
df = pd.DataFrame()
df['classes'] = classes
df['probability (%)'] = 100*output_data[0]
fig = px.bar(df,y='classes',x='probability (%)',orientation ='h', text='probability (%)',
title='Probability of grape disease class')
st.plotly_chart(fig)
def main():
st.set_page_config(
page_title="Classify vine leaves"
)
st.write("# Classify vine leaves!")
#load model
interpreter = load_model()
#load image
image = load_image
#classify
if image is not None:
forecast(interpreter,image)
if __name__ == "__main___":
main() "
Olá, Viktor, como vai?
O problema está no trecho onde a imagem é carregada. No método load_image()
, você se esqueceu de chamar a função ao atribuí-la a uma variável. O correto seria:
image = load_image() # Não se esqueça dos parênteses
Além disso, no final do código, há um erro de digitação. O correto é usar dois underlines no __main__
:
if __name__ == "__main__":
main()
Faça essas alterações e tente novamente. Também recomendo a leitura desse artigo.
Se mesmo assim não funcionar, verifique se há mensagens de erro no terminal ou no console do Streamlit, pois isso pode fornecer mais informações sobre o que está acontecendo. O fórum está à disposição para mais dúvidas!
Um abraço e bons estudos!