🚀 im2latex
本模型是一个基础的视觉编码器 - 解码器模型(VisionEncoderDecoderModel),在一个用于从图像生成 LaTeX 公式的数据集上进行了微调。
✨ 主要特性
- 能够根据图像生成 LaTeX 公式。
- 采用 Swin Transformer 作为编码器,GPT - 2 作为解码器。
- 使用 PyTorch 框架,并在训练中运用了分布式数据并行(DDP)技术。
📦 安装指南
文档未提及安装步骤,暂不展示。
💻 使用示例
基础用法
from transformers import VisionEncoderDecoderModel, AutoTokenizer, AutoFeatureExtractor
import torch
from PIL import Image
model = VisionEncoderDecoderModel.from_pretrained("DGurgurov/im2latex")
tokenizer = AutoTokenizer.from_pretrained("DGurgurov/im2latex")
feature_extractor = AutoFeatureExtractor.from_pretrained("microsoft/swin-base-patch4-window7-224-in22k")
image = Image.open("path/to/your/image.png")
pixel_values = feature_extractor(images=image, return_tensors="pt").pixel_values
generated_ids = model.generate(pixel_values)
generated_texts = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)
print("Generated LaTeX formula:", generated_texts[0])
📚 详细文档
模型详情
- 编码器:Swin Transformer
- 解码器:GPT - 2
- 框架:PyTorch
- 分布式数据并行(DDP):用于训练

训练数据
数据来源于 OleehyO/latex - formulas,并按照 80:10:10 的比例划分为训练集、验证集和测试集。划分方式如下:
dataset = load_dataset(OleehyO/latex-formulas, cleaned_formulas)
train_val_split = dataset["train"].train_test_split(test_size=0.2, seed=42)
train_ds = train_val_split["train"]
val_test_split = train_val_split["test"].train_test_split(test_size=0.5, seed=42)
val_ds = val_test_split["train"]
test_ds = val_test_split["test"]
评估指标
该模型在测试集上的评估结果如下:
- 测试损失:0.10
- 测试 BLEU 分数:0.67
训练脚本
此模型的训练脚本可在以下仓库中找到:GitHub
引用信息
如果您在研究中使用了此工作,请引用我们的论文:
@misc{gurgurov2024imagetolatexconvertermathematicalformulas,
title={Image-to-LaTeX Converter for Mathematical Formulas and Text},
author={Daniil Gurgurov and Aleksey Morshnev},
year={2024},
eprint={2408.04015},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2408.04015},
}
📄 许可证
本模型采用 MIT 许可证。