layoutlmv2-document-classifier

This model is a fine-tuned version of microsoft/layoutlmv2-base-uncased on an unknown dataset. It achieves the following results on the evaluation set:

  • Loss: 0.0008
  • Accuracy: 1.0

Dataset Infomation

This model was fine-tuned to classify some company documents.

Dataset used: Company Documents Dataset

Dependencies

pip install PyMuPDF
pip install transformers
pip install torch
pip install torchvision
pip install pytesseract

Model Usage

use a file in this dataset to test: https://www.kaggle.com/datasets/navodpeiris/company-documents-dataset

import os
from PIL import Image
from transformers import LayoutLMv2Processor, LayoutLMv2ForSequenceClassification
import fitz
import io

processor = LayoutLMv2Processor.from_pretrained("microsoft/layoutlmv2-base-uncased")
model = LayoutLMv2ForSequenceClassification.from_pretrained("navodPeiris/layoutlmv2-document-classifier")

DATA_FOLDER = "data"
filename = "invoice.pdf"

file_location = os.path.join(DATA_FOLDER, filename)
doc = fitz.open(file_location)

page = doc.load_page(0)
pix = page.get_pixmap(dpi=200)

# Convert Pixmap to bytes
img_bytes = pix.tobytes("png")

# Load into PIL.Image
image = Image.open(io.BytesIO(img_bytes)).convert("RGB")
doc.close()

encoding = processor(image, return_tensors="pt", truncation=True, padding="max_length", max_length=512)

outputs = model(**encoding)
logits = outputs.logits

predicted_class_id = logits.argmax(dim=1).item()
classified_output = model.config.id2label[predicted_class_id]

print(f"Predicted class: {classified_output}")

Training hyperparameters

The following hyperparameters were used during training:

  • learning_rate: 5e-05
  • train_batch_size: 8
  • eval_batch_size: 8
  • seed: 42
  • optimizer: Use OptimizerNames.ADAMW_TORCH with betas=(0.9,0.999) and epsilon=1e-08 and optimizer_args=No additional optimizer arguments
  • lr_scheduler_type: linear
  • num_epochs: 1

Training results

Training Loss Epoch Step Validation Loss Accuracy
0.7722 0.0970 26 0.2249 0.9216
0.0828 0.1940 52 0.0452 0.9907
0.026 0.2910 78 0.0459 0.9907
0.0265 0.3881 104 0.0267 0.9907
0.0263 0.4851 130 0.0068 1.0
0.008 0.5821 156 0.0026 1.0
0.0023 0.6791 182 0.0014 1.0
0.0014 0.7761 208 0.0009 1.0
0.0011 0.8731 234 0.0008 1.0
0.0012 0.9701 260 0.0008 1.0

Framework versions

  • Transformers 4.51.3
  • Pytorch 2.6.0+cu124
  • Datasets 3.6.0
  • Tokenizers 0.21.1
Downloads last month
17
Safetensors
Model size
200M params
Tensor type
F32
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for navodPeiris/layoutlmv2-document-classifier

Finetuned
(79)
this model