thierryguyot67's picture
Update app.py
427b187 verified
import gradio as gr
from transformers import AutoProcessor, LayoutLMForSequenceClassification
from PIL import Image
import torch
# Charger le modèle et le processeur
model_name = "impira/layoutlm-document-classifier"
processor = AutoProcessor.from_pretrained(model_name)
model = LayoutLMForSequenceClassification.from_pretrained(model_name)
def classify_document(image):
# Préparer l'image pour le modèle
inputs = processor(images=image, return_tensors="pt")
# Obtenir la prédiction
with torch.no_grad():
logits = model(**inputs).logits
# Convertir les logits en probabilités
probabilities = torch.nn.functional.softmax(logits, dim=-1)
predicted_class = torch.argmax(probabilities, dim=-1).item()
# Retourner la classe prédite et les probabilités
return f"Classe prédite : {model.config.id2label[predicted_class]}"
# Interface Gradio
interface = gr.Interface(
fn=classify_document,
inputs=gr.Image(type="pil", label="Téléchargez votre document"),
outputs="text",
title="Classification de Documents avec LayoutLM",
description="Ce modèle classifie les documents en fonction de leur contenu et de leur mise en page."
)
# Lancer l'application
interface.launch()