Ubuntu 23.10:内网安装rapidocr_paddle(GPU)及其前置准备

news2024/11/24 10:17:25

Ubuntu 23.10:内网安装rapidocr_paddle(GPU)及其前置准备 – WhiteNight's Site

标签:Linux, ocr, ubuntu, 系统相关

安装NVIDIA驱动、安装CUDA&&CUDNN、安装…

rapidocr_paddle主要是用于ocr识别的引擎。本文主要针对于“如何在内网环境下安装相关驱动以及软件”。这里先放上要用到的网站:

  • GPU端的rapidocr_paddle
  • CUDA下载仓库
  • CUDNN下载
  • NVIDIA驱动(Linux x86)安装
  • 安装paddle

以及相关的文档,碰到本文没提到的问题可以去这里面找:

  • NVIDIA官方文档:安装CUDN与CUDNN(显卡为Tesla系)
  • NVIDIA官方文档:安装CUDN

这里顺便附上写者的电脑环境,以便对照:

  • Ubuntu 23.10 服务器版的虚拟机,所以无图形化界面。
  • 内网环境。内网apt-get源无cuda与cudnn。
  • Data center/Tesla T4显卡。
  • Python 3.10.13
  • x86。

前置准备

安装opencv

先装libGL,这是等会安装opencv-python要用到的依赖包。

apt-get install libgl1

接下来安装opencv-python,这样才能在python中导入cv2包。

python -m pip install opencv-python

安装完进python看看能不能import cv2,能就说明安装成功了。

确认GPU类型与型号

Tesla、Titan、Geforce…

安驱动前得看自己显卡型号是什么。如果你的机子之前有安装过nvidia驱动,可以输以下代码查看显卡型号。没有的话就问问机房的人。

nvidia-smi

确认完之后就该安装驱动了,x86/amd64的直接安linux x86的就行。

下载完后传到虚拟机上,给执行权限后再执行安装

chmod +777 NVIDIA-Linux-x86_64-525.147.05.run
./NVIDIA-Linux-x86_64-525.147.05.run

一路enter过去就行,安装到最后一步会提示“xxx now complete”。此时输入nvidia-smi就能看到显卡信息了。

nvidia-smi

安装CUDA与CUDNN

.run与.tar.xz

CUDA没啥,下载自己需要的版本然后安装就行。我需要的是“能跑就行”,所以下的最新版本12.3.2。

下载完后和显卡驱动一样,先给权限再安装

chmod +777 cuda_12.3.2_545.23.08_linux.run
./cuda_12.3.2_545.23.08_linux.run

安装的时候还需要注意,选安装组件的时候不要勾选第一项的Driver,因为上面已经安装过显卡驱动了。这里只需要安装和CUDA有关的东西就行。

如果安装失败,缺这缺那的,配内网的apt-get源然后安装以下依赖。没内网apt-get源或者内网apt-get源没有的话就外网下好再丢内网安装。

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

安装完看看效果,先配置环境变量。

vi ~/.bashrc

再把以下内容直接复制到最后面。如果不放心可以先看看对usr/local路径有没有相关的文件夹,或者文件夹名字对不对的上。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda

此时输入nvcc -V能得到以下输出就是安装成功了。

root@ubuntu:/home/test# nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Wed_Nov_22_10:17:15_PST_2023
Cuda compilation tools, release 12.3, V12.3.107
Build cuda_12.3.r12.3/compiler.33567101_0

安装完CUDA还没完,还差个cudnn。这个就比较麻烦。得去找对应版本的cudnn。如果你CUDA安装的是12.0或者以上(12.x)的版本,那么cudnn至少也得是8.9.1及以上(8.9.x)的版本。

我用的8.9.5,记得看对应的CUDA版本是11.x还是12.x的。

下载也有讲究。我一开始下的deb包,dpkg -i安装完,进python验证的时候发现cuda识别不到cudnn,提示缺libcudnn。

搞了半天也没搞定。所以建议直接下tar包解压,省心。外网的话可以试试deb包然后装相关依赖。

下载完tar包后解压,如果你在用户目录解压的话,路径应该是这个,看自己在哪里解压的吧。

tar xvf cudnn-linux-x86_64-8.9.5.30_cuda12-archive.tar.xz
cd /home/test/cudnn-linux-x86_64-8.9.5.30_cuda12-archive

接下来手动把相关的文件复制到cuda的目录下。相关路径可能需要根据自己虚拟机的情况进行修改。复制完之后记得加上权限。

cp include/cudnn.h    /usr/local/cuda/include
cp lib/libcudnn*    /usr/local/cuda/lib64
chmod +777 /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

安装paddle

pip安装

官方这都写的很清楚了。CUDA 12.x的装post120就行。内网pip源没有的话也是外网下完再拖进内网虚拟机。还得看自己电脑支不支持avx,支持的话用第一个链接。

装完之后就可以验证了。进入python。输入以下代码,应该能得到对应的结果。

import paddle
import cv2 #和paddle无关,只是测下opencv有没有安装成功
paddle.utils.run_check()
Python 3.10.13 (main, Feb  4 2024, 06:33:33) [GCC 13.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import paddle
>>> paddle.utils.run_check()
Running verify PaddlePaddle program ...
I0221 06:25:23.755407 1275918 interpretercore.cc:237] New Executor is Running.
W0221 06:25:23.757426 1275918 gpu_resources.cc:119] Please NOTE: device: 0, GPU Compute Capability: 7.5, Driver API Version: 12.0, Runtime API Version: 12.0
W0221 06:25:23.758528 1275918 gpu_resources.cc:149] device: 0, cuDNN Version: 8.9.
I0221 06:25:24.685256 1275918 interpreter_util.cc:518] Standalone Executor is Used.
PaddlePaddle works well on 1 GPU.
PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now.

最后能报successfully就说明安装成功了。接下来直接python -m pip安装rapidocr就行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1460874.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024年抖店的市场已经饱和,小白不适合入局了?真实现状如下

我是王路飞。 如今的抖店,在整个电商行业,并不算是个“新人”了,毕竟已经上线四五年时间了。 每个项目都有自己的红利期、爆发期,最后基本都会进入到发展期。 抖店亦是如此,你要说流量红利期吧,确实已经…

如何选择最适合的图纸加密软件?用户体验及性价比

安秉网盾图纸加密软件是一款功能强大的图纸加密工具,具有以下特点和优势: 全盘加密:安秉网盾采用先进的加密算法,能对文件、文件夹、磁盘等数据进行全面加密,确保数据在存储和传输过程中的安全性。 监控与审计&#…

k-means聚类、GMM高斯聚类、canopy聚类、DBSCAN聚类、FCM聚类、ISODATA聚类、k-medoid聚类、层次聚类、谱聚类 对比

k-means聚类、GMM高斯聚类、canopy聚类、DBSCAN聚类、FCM聚类、ISODATA聚类、k-medoid聚类、层次聚类、谱聚类 对比 标 代码获取代码获取代码获取代码获取代码获取代码获取代码获取代码获取代码获取代码获取题 GMM(高斯混合模型)是一种聚类算法&#xff…

UE蓝图 入口(FunctionEntry)节点和源码

系列文章目录 UE蓝图 Get节点和源码 UE蓝图 Set节点和源码 UE蓝图 Cast节点和源码 UE蓝图 分支(Branch)节点和源码 UE蓝图 入口(FunctionEntry)节点和源码 文章目录 系列文章目录一、FunctionEntry节点功能二、入口节点用法1. 创建函数2. 命名函数3. 定义参数4. 编写函数逻辑5…

【Deep Learning 6】可变形卷积

🌞欢迎来到Pytorch的世界 🌈博客主页:卿云阁 💌欢迎关注🎉点赞👍收藏⭐️留言📝 🌟本文由卿云阁原创! 📆首发时间:🌹2024年2月20日&a…

想了解黄金代理的资质应该看什么?

投资者要选择黄金代理为自己开户和服务,自然关于代理的资质是很重要的,那怎么判断黄金代理的资质是好是坏呢?下面我们就来讨论一下。我们主要可以从以下这几个方面来讨论黄金代理的资质。 首先就是黄金代理背后的黄金交易平台的牌照是什么&am…

java—泛型编程

文章目录 什么是泛型为什么需要泛型 泛型的使用泛型的上界 泛型方法的使用引出泛型方法 泛型是如何编译的擦除机制 什么是泛型 首先什么是泛型呢?从字面上我们可以理解为广泛的类型,有一定c基础的程序猿们应该了解,java中的泛型其实就是c的模…

C#_索引器

索引器的作用:令对象可像数组一般被索引 索引器 internal class TestClass {public int[] arr { 1, 2, 3, 4, 5 };public string this[int index] // 前者为返回类型,后者为索引类型// 返回类型代表get函数的返回值类型、set函数的value类型&#xff0…

java 使用documents4j将XML转为pdf文件的方式

1.背景: 通过spire.doc.free将word转换成PDF时存在缺陷:只能获取前3页。获取全文另外需支付费用。 2.解决办法 使用documents4j,documents4j会保留原word文件中更多的样式,如修订模式下的差异化字体颜色、文档右侧修订记录等。 …

PHP实践:Laravel中事件使用讲解

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师…

js设计模式:适配器模式

作用: 可以将某种不同格式的数据转化为自己所期待的数据格式 或者对于一些存在兼容或者特殊处理的业务逻辑,可以进行一个适配 示例: //原始数据let oldData1 [{name: 王惊涛,age: 29},{name: 孙悟空,age: 800},{name: 嘉文四世,age: 27},{name: 关羽,age: 40},{name: 伊利丹…

【Oracle】玩转Oracle数据库(三):数据库的创建和管理

前言 嘿,各位数据库小能手们!今天我们要进入数据库的创世纪,探索Oracle数据库的创建和管理!🔧💻 在这篇博文【Oracle】玩转Oracle数据库(三):数据库的创建和管理中&#…

判断一个dll/exe是32位还是64位

通过记事本判断(可判断C或者C#) 64位、将dll用记事本打开,可以看到一堆乱码,但是找到乱码行的第一个PE,如果后面是d?则为64位 32位、将dll用记事本打开,可以看到一堆乱码,但是找到乱码行的第…

第二证券:可转债怎么套利?可转债常见的六种套利方法

可转债是上市公司为了融资向社会公众所发行的一种债券,其间投资者可以在二级市场上进行套利操作,存在以下六种套利办法: 1、折价转股套利 只有在溢价率为负时,可转债才有套利空间,转股溢价率为正,则不存在…

SmartBi--配置BI启动为后台服务

目录 1. 在service.bat目录下打开cmd 2. 运行 service.bat install 服务名 命令 3.在服务中找到设置的服务名,设置成自启,启动服务即可 4.在tomcat logs目录下查看日志 5. 移除服务 1. 在service.bat目录下打开cmd 2. 运行 service.bat install …

短视频内容如何吸引用户?媒介盒子揭秘

不管是什么行业,在宣传中都会用到短视频这种类型,然而有许多品牌方在宣传时总会面临找不着发力点,宣传内容同质化等问题,今天媒介盒子就来和大家聊聊:什么样的短视频内容能够吸引用户。 一、 制造强烈对比&#xff0c…

python 批量创建的目录和文件、同时写入文件内容、为短视频做基础模板准备

图: 代码: import os def create_directory(path):if not os.path.exists(path):os.makedirs(path)print("已创建目录:", path)else:print("该路径下已存在相同名称的目录")def create_file(filename):with open(filena…

柔顺控制笔记

参资料: 【1】https://zhuanlan.zhihu.com/p/620918453 【2】https://blog.csdn.net/a735148617/article/details/108564836 【3】https://zhuanlan.zhihu.com/p/126338809 【4】机器人与环境间力_位置控制技术研究与应用_李正义 【5】水下机械臂建模及柔顺控制方法…

【快速搞定Webpack5】处理字体图标资源(六)

介绍 在实际开发中,几乎每个项目都需要用户icon图标以及部分项目会用到有特色的字体需求。 今天我们学习的内容就是如何在webpack中处理字体及icon图标的使用。 一、下载字体图标文件 1、打开 阿里巴巴矢量图库 2、登录或注册账号 3、选择想要的图标添加到购物车…

04 动力云客之登录后获取用户信息+JWT存进Redis+Filter验证Token + token续期

1. 登录后获取用户信息 非常好实现. 只要新建一个controller, 并调用SS提供的Authentication对象即可 package com.sunsplanter.controller;RestController public class UserController {GetMapping(value "api/login/info")public R loginInfo(Authentication a…