引言
不采用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.2 或 CUDA 11.1 )
对于CUDA, 从 这里 可以选择下载最新的CUDA安装包, 从 这里 可以下载旧版本的CUDA安装包. 通过浏览可以发现 (也可以访问 https://docs.nvidia.com/cuda/archive/11.0/cuda-installation-guide-linux/index.html 查看) , 从 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.6 和 CUDA10.2.89 + CUDNN8.1 , 从 这里 下载 cuda_11.2.2_460.32.03_linux.run 和 cuda_10.2.89_440.33.01_linux.run , 从 这里 下载 cudnn-11.2-linux-x64-v8.1.1.33.tgz 和 cudnn-10.2-linux-x64-v7.6.5.32.tgz Anaconda3 , 从 这里 下载 Anaconda3-2021.05-linux-x86_64.sh Python3.7 Tensorflow2.6.0 和 Tensorflow1.15.0 , 分别从 PyTorch1.9.0 和 PyTorch1.6.0 , 从这里下载
Python包离线部署
只要有源码或安装包就可以离线安装, 问题是Python的包间的依赖关系复杂, 一个包可能涉及多个依赖, 一个个下载比较麻烦. 有多种方案可以解决该问题, 一种是利用 pip 工具, 另一种是通过 Anaconda , 两种方法都需要在能够连网的机器上先安装好环境或者下载好安装包, 下面简要介绍.
PIP方案
- 首先使用
pip freeze > requirements.txt 命令将当前环境的Python包名导出到 requirements.txt 文件中. - 然后使用
pip install -r requirements.txt -d python_pkgs 下载所有包到 python_pkgs 文件夹. - 在不能连网的机器上, 通过执行
pip install -r requirements.txt --no-index --find-links=file://python_pkgs 安装包.
Anaconda方案
开始安装部署
安装系统
目前对于UEFI的启动方式, 是支持Windows和Ubuntu独立引导的, 即任何一个系统无法启动都不会影响另一个系统的启动, 即使把一个系统的引导菜单删除, 也不会影响. 这需要确保几个问题:
- Windows是基于UEFI安装的
- 安装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会自动检测到.
安装驱动
安装编译依赖
安装CUDA
安装CUDNN
深度学习框架的部署
本教程采用Anaconda管理安装深度学习框架, 首先在能够连网的机器上, 通过Anaconda安装, 然后复制 envs 下的环境到不能联网的机器.
Tensorflow
|