Spaces:
Runtime error
Runtime error
import gradio as gr | |
from sklearn.datasets import load_iris | |
from sklearn.model_selection import train_test_split | |
from sklearn.linear_model import LogisticRegression | |
from joblib import dump, load | |
import os | |
from huggingface_hub import HfApi | |
from huggingface_hub import login | |
login(token="botcoin") | |
huggingface-cli login | |
# Função para treinar e salvar o modelo | |
def train_model(): | |
# Carregar e dividir o dataset | |
data = load_iris() | |
X = data.data | |
y = data.target | |
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) | |
# Treinando o modelo | |
model = LogisticRegression(max_iter=200) | |
model.fit(X_train, y_train) | |
# Criar diretório para salvar o modelo | |
diretorio = "/mnt/data" | |
os.makedirs(diretorio, exist_ok=True) | |
# Salvar o modelo em /mnt/data/ | |
model_filename = os.path.join(diretorio, "model.pkl") | |
dump(model, model_filename) | |
# Criar repositório no Hugging Face se não existir | |
api = HfApi() | |
repo_id = "coan/botClaiton" # Substitua pelo seu repositório | |
# Verificar se o repositório já existe | |
try: | |
api.repo_info(repo_id) | |
except: | |
# Criar o repositório caso não exista | |
api.create_repo(repo_id, repo_type="model") | |
# Upload do modelo para o repositório Hugging Face | |
api.upload_file( | |
path_or_fileobj=model_filename, | |
path_in_repo="model.pkl", # Nome do arquivo no repositório | |
repo_id=repo_id, | |
repo_type="model" | |
) | |
return f"Modelo treinado e salvo em: {model_filename}" | |
# Função para carregar o modelo treinado e fazer previsões | |
def predict(input_data): | |
# Carregar o modelo treinado | |
model = load("/mnt/data/model.pkl") # Caminho do modelo salvo | |
# Garantir que a entrada seja um vetor (as características) | |
input_data = [float(i) for i in input_data.split()] | |
# Realizar a previsão | |
prediction = model.predict([input_data]) # input_data deve ser um vetor com as características | |
return f"Previsão: {prediction[0]}" | |
# Interface para treinamento do modelo | |
train_iface = gr.Interface( | |
fn=train_model, | |
inputs=[], # Nenhuma entrada necessária para treinar | |
outputs=["text"] # Exibe uma mensagem de sucesso | |
) | |
# Interface para previsões | |
predict_iface = gr.Interface( | |
fn=predict, # Função para chamar ao gerar previsão | |
inputs=gr.Textbox(label="Input (4 features, espaço separado)"), # Caixa de entrada de texto | |
outputs=gr.Textbox(label="Output") # Caixa de saída com a previsão | |
) | |
# Iniciar a interface de treinamento | |
train_iface.launch() | |
# Iniciar a interface de previsões | |
predict_iface.launch() | |