离线部署深度学习环境Ubuntu篇

2023-05-16

引言

不采用docker, 以防拖慢速度. 打算部署PyTorch, Tensorflow 和 Keras框架.

版本选择

如何选择系统, CUDA, CUDNN, Tensorflow, Pytorch, Keras等版本呢? 首先看GPU, 一些新的GPU卡, 老的CUDA驱动和深度学习框架版本可能不支持, 性能无法发挥, 比如 这里. 对于新的显卡要尽量安装新版本的CUDA驱动和深度学习框架. 但由于有时要运行别人基于老版本框架开发的程序, 而新老版本的代码一般不兼容. 特别地, 对于Tensorflow来讲, Tensorflow2 与 Tensorflow1差异很大, 这种情况下就需要安装不同版本的CUDA驱动, 然后通过更改环境变量来切换CUDA, 可以参考这里.

从 tensorflow common installation problems 里可以看到Tensorflow各版本对应的CUDA, CUDNN, Python, GCC等工具链的版本. 本教程打算安装最新的 Tensorflow 2.6.0 (要求CUDA 11.2, CUDNN 8.1); 和Tensorflow1.15.0(要求 CUDA 10.0, CUDNN 7.4) .

对于Pytorch, 可以从 这里 查看不同版本对应的CUDA版本(Bcu后面的数字), 同时可以下载 whl 格式的安装包. 也可以从 这里 查看. 本文选择安装最新的 Pytorch1.9.0 (要求 CUDA 10.2CUDA 11.1)

对于CUDA, 从 这里 可以选择下载最新的CUDA安装包, 从 这里 可以下载旧版本的CUDA安装包. 通过浏览可以发现 (也可以访问 cuda installation guide 查看) , 从 CUDA 10.0 起才开始支持 Ubuntu 18.04, 从 CUDA 11.0 起才开始支持 Ubuntu 20.04, 从 CUDA 11.4 起不再支持 Ubuntu 16.04. 因而综合来讲, 安装 Ubuntu 18.04 比较合适.

本教程选择版本如下:

  • Ubuntu18.04.5, 从 这里 下载 ubuntu-18.04.5-desktop-amd64.iso
  • CUDA11.2.2 + CUDNN7.6CUDA10.2.89 + CUDNN8.1, 从 这里 下载 cuda_11.2.2_460.32.03_linux.runcuda_10.2.89_440.33.01_linux.run, 从 这里 下载 cudnn-11.2-linux-x64-v8.1.1.33.tgzcudnn-10.2-linux-x64-v7.6.5.32.tgz
  • Anaconda3, 从 这里 下载 Anaconda3-2021.05-linux-x86_64.sh
  • Python3.7
  • Tensorflow2.6.0Tensorflow1.15.0, 分别从
  • PyTorch1.9.0PyTorch1.6.0, 从 这里下载

Python包离线部署

只要有源码或安装包就可以离线安装, 问题是Python的包间的依赖关系复杂, 一个包可能涉及多个依赖, 一个个下载比较麻烦. 有多种方案可以解决该问题, 一种是利用 pip 工具, 另一种是通过 Anaconda, 两种方法都需要在能够连网的机器上先安装好环境或者下载好安装包, 下面简要介绍.

PIP方案

  1. 首先使用 pip freeze > requirements.txt 命令将当前环境的Python包名导出到 requirements.txt 文件中.
  2. 然后使用 pip install -r requirements.txt -d python_pkgs 下载所有包到 python_pkgs 文件夹.
  3. 在不能连网的机器上, 通过执行 pip install -r requirements.txt --no-index --find-links=file://python_pkgs 安装包.

Anaconda方案

开始安装部署

安装系统

目前对于UEFI的启动方式, 是支持Windows和Ubuntu独立引导的, 即任何一个系统无法启动都不会影响另一个系统的启动, 即使把一个系统的引导菜单删除, 也不会影响. 这需要确保几个问题:

  1. Windows是基于UEFI安装的
  2. 安装Ubuntu时选择"Something else", 并且将 /boot/efi 挂载点设置到 EFI分区(也叫ESP分区)

详细可以参考Installing Ubuntu in UEFI mode 和 Dual booting Windows and Linux using UEFI.

一般建议一个盘仅有一个EFI (即ESP)分区, 现在, 一般预装了Windows系统的机器都会有一个ESP分区, 安装Ubuntu时依然使用它, Ubuntu会自动检测到.

安装驱动

安装编译依赖

一种方案是直接从 源 中下载, 可参考 这里. 另一种方法是在装有同样Ubuntu系统且可上网的机器上使用命令自动下载, 然后拷贝到无法联网的机器上, 执行安装命令.

这里采用第二种方法. 提示: 可以不用在可上网机上安装Ubuntu系统, 可以使用U盘启动Ubuntu系统, 然后点击试用Ubuntu, 但是要将下载的库手动拷贝到其它盘, 否则关闭U盘上的系统, 再重启就没有了.

使用如下命令只下载不安装包, 下载的包在目录 /var/cache/apt/ 下, 将 apt 文件夹拷贝到其它盘, 然后复制到不可连网的机器上相应的目录 (鼠标拷贝提示无权限无法copy时, 请使用 sudo cp -r -f folderfrom folderto, 其中 folderfrom 为源路径, folderto 为目标路径).

sudo apt install -d gcc make build-essential

拷贝完成后, 使用如下命令即可自动安装, 请注意无 -d.

sudo apt install gcc make build-essential

如果提示: "E: Unmet dependencies. Try ‘apt --fix-broken…’ " 错误, 则使用 sudo apt --fix-broken Install 修复即可.

安装CUDA

请参考本人博客 Ubuntu 16.04 LTS + CUDA8.0 + cudnn6.0 或 官方文档.

安装CUDNN

请参考本人博客 Ubuntu 16.04 LTS + CUDA8.0 + cudnn6.0 或 官方文档.

深度学习框架的部署

本教程采用Anaconda管理安装深度学习框架, 首先在能够连网的机器上, 通过Anaconda安装, 然后复制 envs 下的环境到不能联网的机器.

Tensorflow

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

离线部署深度学习环境Ubuntu篇 的相关文章

  • 去掉文件名中的特殊符号及中文

    文章目录 做深度学习算法收集数据时 xff0c 来源各种各样 xff0c 导至文件名混有各种特殊符号 xff0c 所在这里有一段代码 xff0c 可以把文件名进行处理 xff0c 只保留数字 字母和下划线 xff0c 然后对文件进行重命名
  • pip常用命令

    文章目录 看了一篇介绍pip的 xff0c 记录在这里 https mp weixin qq com s BejnKBp1OGTyW2SzHiCwcw 有安装 卸载 下载 xff0c 升级等使用方法 再贴个图 xff1a
  • 如何搭建高质量、高效率的前端工程体系--页面结构继承

    推荐理由 xff1a 推荐理由 xff1a 程序员在我们的印象中 xff0c 就是不停的敲代码 xff1b 而写的程序如何确保不出现bug 而且还能及时发现问题 xff0c 下面我推荐的这篇文章 xff0c 围绕整个前端的开发流程出发解决这
  • onnx删除无用属性

    这里写自定义目录标题 在推理onnx模型时 xff0c 报了一个错 xff0c 如下 xff1a InvalidGraph ONNXRuntimeError 10 INVALID GRAPH This is an invalid model
  • onnx模型显示输出形状

    在用netron查看模型时 xff0c 希望看到各个节点的shape xff0c 可以执行以下代码 1 依赖包 pip install onnx pip install onnx graphsurgeon index url https p
  • 使用opencv截取旋转框目标

    使用opencv截取旋转框目标 1 第一种方法2 第二种方法3 两种方法的简单对比4 opencv 最小面积矩形返回角度的理解4 1 version4 2之前4 2 version4 2之后 本文列举了两种方法 xff0c 使用的数据如图
  • Tensorflow pytorch及paddle交叉熵损失函数类标签及label smooth配置方法

    交叉熵损失函数类标签及label smooth配置方法 1 无class weight 无label smooth1 1 pytorch 输出1 2 paddle 输出1 3 tensorflow 输出 2 有label smooth 没有
  • 检测之YOLO转VOC

    文章目录 1 整理Yolo图像和标签文件2 实现yolo到voc的转换 检测系列相关文章参考如下链接 xff1a VOC数据的结构介绍及自定义生成 xff0c 用labelimg自已标注VOC标准数据的生成及分析 VOC易用labelimg
  • 检测之VOC转YOLO

    文章目录 检测所用数据有几种文件格式 xff0c 我们对于检测 xff0c 将使用VOC格式做为基础 xff0c 与其它格式的的互转实现部分如下 xff1a 检测系列相关文章参考如下链接 xff1a VOC数据的结构介绍及自定义生成 xff
  • windows安装wsl2

    总的来说是按照这三个链接来的 xff0c 也写了一个大体流程 wsl对win版本有要求 xff0c 可以 win 43 r winver查看 原始参考链接 xff1a 1 xff09 https zhuanlan zhihu com p 4
  • 2、picodet转onnx裁剪及python onnxruntime推理

    文章目录 1 对picodet xs1 1 动态图转静态图1 2 静态图转onnx1 3 paddle 含后处理 all 版本的推理1 4 onnx 含后处理 all 进行推理1 5 onnx 不含后处量 base模型推理1 5 1 获取o
  • 3、picodet c++版onnxruntime推理及reshape和transpose的c++实现

    文章目录 1 完整onnx c 43 43 推理2 裁剪后模型的推理2 1 分类reshape和transpose用python模拟c 43 43 2 2 回归的reshape和transpose的python模拟 3 softmax改进
  • linux拷备部分文件

    功能两个 1 从一个文件夹下拷备随机选取部分文件到另一个文件夹 span class token function ls span src path span class token operator span span class tok
  • 翻译:在vscode中调试es6

    原文 xff1a How to debug ES6 NodeJS with VSCode katopz Medium 快速实践 先上项目 xff1a katopz vscode debug nodejs es6 How to debug E
  • JavaScript 的addEventListener() 事件监听详解!

    JavaScript 的addEventListener 事件监听详解 xff01 addEventListener 用于向指定元素添加事件 可以向一个元素添加多次事件或者多次不同事件 xff0c 后面的事件是不会覆盖前面的 语法 xff1
  • moviepy快速视频转图片

    功能如标题 xff0c 代码如下 xff1a span class token keyword import span os span class token keyword import span numpy span class tok
  • 获取onnx模型中权重并画出分布图

    如下为代码 xff0c 主要应用场景是在做模型量化处理时 xff0c 常见的量化是int8 int16 如果数据分布不合适会存在较大的量化精度损失 比如int8 xff0c 希望权得的分布是在 128 127之间 span class to
  • C# Newtonsoft.Json JObject移除属性,在序列化时忽略

    一 针对 单个 对象移除属性 xff0c 序列化时忽略处理 JObject实例的 Remove 方法 xff0c 可以在 指定序列化时移除属性和值 示例如下 xff1a json 序列化 JObject obj1 61 JObject Fr
  • 2016,梦想起航

    2016 xff0c 梦想起航 10 9 8 7 6 5 4 3 2 1 xff0c 新年快乐 xff01 xff0c 伴随着跨年晚会上各位主持人的新年祝福 xff0c 2017年的大幕正式开启 xff0c 2016年的挂历已经发黄 xff
  • 基础篇——Linux和树莓派发行版以及raspbian、ubuntu、debian、ros的关系

    背景故事 初学Linux经常会听到Linux ubuntu debian raspbian centos等等名词 xff0c 它们之间是什么关系 xff0c 傻傻分不清楚 xff0c 这里摘录一些书上的内容 xff0c 理清楚它们的关系 L

随机推荐

  • 中级篇——树莓派系统备份恢复的两种方式

    树莓派系统备份恢复 方式一 xff1a 使用树莓派烧录工具 xff0c Win32DiskImager 工具的读取功能 xff0c 如下图 优点是操作简单 xff0c 缺点也很明显 xff0c 因为是全盘读取 xff0c 所以读取的备份文件
  • 利用实例学CMMI V2.0 (1)

    越来越多客户询问关于CMMI v2 0 xff0c 而且这个模型不像v1 3可以免费下载 xff0c 所以我们需要一些辅助资料 xff0c 帮一些有兴趣的人预先了解 xff0c 尤其是已经学过v1 3的 xff0c 可以在此基础上学习v2
  • Ubuntu 16.04升级python3.6及解决终端打不开的bug

    Ubuntu 16 04 默认安装python3的版本为python3 5 xff0c 而在一些场景下我们需要用到python3 6 xff0c 于是本人尝试将python3 5升级为python3 6 xff0c 但期间出现了界面模式下终
  • Dockerfile 指令详细介绍

    使用 Dockerfile 定制镜像 这里仅讲解如何运行 Dockerfile 文件来定制一个镜像 具体 Dockerfile 文件内指令详解 xff0c 将在下一节中介绍 xff0c 这里你只要知道构建的流程即可 下面以定制一个nginx
  • linux系统下cat命令的使用

    运维那些事 2017 01 22 21 15 cat命令是Linux系统下查看文件内容用的指令 xff0c 还可以将显示的信息转入或附加到文件上 命令格式 cat 选项 文件 命令功能 cat主要有三大功能 xff1a 一次显示整个文件 c
  • 使用Python爬取淘宝两千款套套

    各位同学们 xff0c 好久没写原创技术文章了 xff0c 最近有些忙 xff0c 所以进度很慢 xff0c 给大家道个歉 gt 警告 xff1a 本教程仅用作学习交流 xff0c 请勿用作商业盈利 xff0c 违者后果自负 xff01 如
  • 大学那会儿,我读过的技术经典图书

    我2009年考进大学的计算机系 上大学前我对电脑的使用仅限于上QQ xff0c 看小说 xff0c 可以说是零基础 但通过三年的努力及对计算机专业的喜爱 xff0c 我顺利保送到自己梦寐以求的学校攻读研究生 大学期间看了不少书 xff0c
  • vscode 配置 git (配置、暂存、推送、拉取、免密)

    前些天发现了一个巨牛的人工智能学习网站 xff0c 通俗易懂 xff0c 风趣幽默 xff0c 忍不住分享一下给大家 点击跳转到教程 vscode 中对 git 进行了集成 xff0c 很多操作只需点击就能操作 xff0c 无需写一些 gi
  • 已知子网掩码,确定ip地址范围

    主要是把 ip地址和子网掩码在二进制下进行对比 ip地址分成两个部分 xff0c 网络号和主机号 凡是在子网掩码对比下 xff0c 1 代表了网络号 xff0c 0 代表了主机号 然后对比后 xff0c 把主机号最小 xff08 全0 xf
  • virmach主机购买和使用

    01购买 参考教程 xff1a https www jb51 net yunying 470007 html 需要注意的是购买后 xff0c 登录的帐号和密码会发送到默认邮箱中 xff0c 拿到用户名密码可以先使用ssh登录 xff0c 查
  • Xmanager使用方法

    服务器 xff1a CentOS 7 6 GNOME桌面环境 xff08 若最小化安装 xff0c 默认是无桌面的 xff0c 那么就要安装桌面 xff0c 参考百度 xff09 个人主机 xff1a Windows 10专业版 xff0c
  • 制作便携式随身系统(以Ubuntu为例)

    文章目录 说明准备硬件软件 启动盘制作安装Ubuntu到随身存储设备概述 为便携式系统创建GRUB引导安装 GRUB2 到U盘或移动硬盘制作Grub引导菜单 问题与解决拔掉U盘进不了原来的系统随身系统无法在别的电脑上启动welcome to
  • 谈谈了解的几个专业

    本文涉及专业 智能科学与工程通信工程电子信息工程集成电路设计与集成系统微电子科学与工程计算机科学与技术电磁场与无线技术遥感科学与技术 这些学科专业 xff0c 很多之间是相互交叉的 以下仅作参考 xff01 xff01 xff01 随便聊聊
  • 深度学习平台框架

    简介 分类 模型转换 网络参数转到MAT 文件 keras权重到mat 可知直接用matlab读取hdf5文件 也可以通过如下脚本 keras2mat py 转换 span class token comment usr bin env p
  • Ubuntu16.04 + NVIDIA RTX3090 + Pytorch + Tensorflow

    文章目录 说明有用链接显卡驱动安装文件下载一次性安装显示驱动和cuda计算套件仅安装显示驱动仅安装cuda计算套件 安装Pytorch安装pytorch1 7源码安装pytorch1 8源码安装torchvision RTX3090性能问题
  • centOS jdk安装

    1 输入yum list installed grep java 可以查看CentOS自带的Java环境 2 卸载jdk yum y remove java 1 8 0 openjdk 输入yum y remove tzdata java
  • 元学习

    这里写自定义目录标题 说明比较好的资料文档代码 常用数据集介绍Omniglot 说明 比较好的资料 文档 torchmeta pytorch meta learning libraryPaper repro Deep Metalearnin
  • Markdown简明教程

    这里是目录 xff0c 输入 TOC 可以自动生成 文章目录 常用语法 一级标题 基本语法 二级标题 数学公式添加图片添加代码段 高级扩展语法插入classDiagram类图插入Mermaid流程图插入UML图插入甘特图 其它 常用语法 一
  • 深度神经网络中的卷积

    文章目录 卷积单元经典卷积运算经典二维卷积经典膨胀二维卷积运算经典二维转置卷积运算 实验分析实验说明实验结果 参考文献 卷积单元 本文给出了四维张量卷积的表达式 xff0c 卷积输出大小的表达式 xff0c 以及Matlab和PyTorch
  • 离线部署深度学习环境Ubuntu篇

    引言 不采用docker 以防拖慢速度 打算部署PyTorch Tensorflow 和 Keras框架 版本选择 如何选择系统 CUDA CUDNN Tensorflow Pytorch Keras等版本呢 首先看GPU 一些新的GPU卡