基于Vision Transformer的Latex公式识别系统的设计与实现

基于Vision Transformer的Latex公式识别系统的设计与实现1

近年来深度学习,在图像与自然语言处理领域取得显著成效.而这其中像ResNet、Transformer等网络发挥着巨大作用。本系列以
https://github.com/lukas-blecher/LaTeX-OCR为例,阐述下如何基于人工智能技术实现latex公式识别服务。本系列主要分为3篇,分别从系统构建(环境+训练)、系统原理(代码层面)、系统的增强三个部分展开论述。

环境构建

  1. 查看cuda版本

下面看到,cuda版本最高支持到12.1,我们下面选用的cu116
gpu版本查看

  1. 创建conda环境
    conda env create -f 下述文件
name: latex3.9
channels:
		- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
		- conda-forge
dependencies:
      - python=3.9
      - pip
      - pip:
            - tqdm>=4.47.0
            - munch>=2.5.0
            - torch==1.13.1+cu116
            - opencv_python_headless>=4.1.1.26
            - requests>=2.22.0
            - einops>=0.3.0
            - x_transformers==0.15.0
            - transformers>=4.18.0
            - tokenizers>=0.13.0
            - numpy>=1.19.5
            - Pillow>=9.1.0
            - PyYAML>=5.4.1
            - pandas>=1.0.0
            - timm==0.5.4
            - albumentations>=0.5.2
            - pyreadline3>=3.4.1
            - python-Levenshtein>=0.12.2
            - torchtext>=0.6.0
            - imagesize>=1.2.0
            - wandb>=0.15.5
            - --extra-index-url https://download.pytorch.org/whl/cu116
  1. 检查pytorch与gpu是否兼容
import torch

if torch.cuda.is_available():
		cuda_version = torch.version.cuda
		print(f"PyTorch CUDA版本为: {cuda_version}")

		# 检查CUDA版本是否与PyTorch兼容
		if torch.backends.cudnn.version() is None:
				print("PyTorch不支持当前CUDA版本")
		else:
				print("PyTorch支持当前CUDA版本")
else:
		print("PyTorch不支持GPU加速")

数据准备

  1. 准备数据(包括训练集+验证集+测试集)
    **

现在训练测试数据集,然后放的位置很讲究!!!

**
数据存放位置

  1. activate latex3.9 (这个在windows上执行,linux上 conda activate latex3.9)
  2. python -m pix2tex.dataset.dataset --equations data/math.txt --images data/train --out data/train.pkl
  3. python -m pix2tex.dataset.dataset --equations data/math.txt --images data/val–out data/val.pkl
  4. python -m pix2tex.dataset.dataset --equations data/math.txt --images data/test–out data/test.pkl

训练调试

Pycharm上debug训练代码

注:参数–config D:\LanJing\LaTeX-OCR-main\pix2tex\model\settings\debug.yaml --debug
pycharm配置
debug.yaml配置修改
一轮epoch结束

加速训练

1.为了加速训练过程,可以使用提供的权重,并更新配置文件使用权重。该步骤也叫做fine tune

下载 https://github.com/lukas-blecher/LaTeX-OCR/releases/download/v0.0.1/weights.pth

权重路径

训练测试数据

https://drive.google.com/drive/folders/13CA4vAmOmD_I_dSbvLp-Lf0s6KiaNfuO

数据集
接下来在第二篇中我会重点介绍下,代码的实现,如何构建这样一个训练网络,以及它的关键代码,尤其是数据shape是如何变化的

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-07 23:12:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-07 23:12:02       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-07 23:12:02       87 阅读
  4. Python语言-面向对象

    2023-12-07 23:12:02       96 阅读

热门阅读

  1. 关于如何实现图片懒加载

    2023-12-07 23:12:02       64 阅读
  2. Docker 镜像构建的最佳做法

    2023-12-07 23:12:02       59 阅读
  3. leetcode:93. 复原 IP 地址

    2023-12-07 23:12:02       49 阅读
  4. React笔记

    2023-12-07 23:12:02       61 阅读
  5. HAProxy简写

    2023-12-07 23:12:02       58 阅读
  6. debian&ubuntu的nvidia驱动升级

    2023-12-07 23:12:02       54 阅读
  7. Leetcode 538 把二叉搜索树转换为累加树

    2023-12-07 23:12:02       57 阅读