tensorman
前言
原创文章,转载引用请务必注明链接,水平有限,如有疏漏,欢迎指正。
拯救深陷 TensorFlow GPU 开发环境配置泥潭中的人。
最近参加了 DFRobot 和 Intel 共同举办的『行业AI开发者大赛』,由于基础薄弱,摸索过程中踩坑很多,当然收获也很多。迁移学习使用 TensorFlow 1.14 GPU + Object Detection API,后来偶然了解到 TensorMan (以下简称 tm)这个工具,可以简化开发环境配置。使用 Linux 的好处是开发更方便,而且设置系统环境变量较 Windows 要方便。本文软硬件环境:
Pop! OS/ Ubuntu MATE/Lubuntu 20.04
TenserFlow 1.14 (虽然有 tf 1.15,但 1.14 是 tf 2.x 之前最稳定的版本)
Python 3.6
PC [AMD R5 2600 + Nvidia GTX1660](for TF GPU)
LattePanda Delta / v1 (for TF CPU)
1、安装 TensoFlow 与 Object Detection API 的常规方法
由于需要进行迁移学习,我们使用 Nvidia GPU ,借助 CUDA 的力量加速。参考官方的安装指南,我们总结了三种方式。
AMD 也有一个项目叫做 ROCm,全称Radeon Open Compute platform, 目标是建立可替代 CUDA 的生态。不过应用还不够广泛。具体可以查看 相关介绍。
要使用 TensorFlow GPU 必须在系统中安装以下 NVIDIA® 软件:
NVIDIA® GPU 驱动程序:CUDA 10.1 需要 418.x 或更高版本。
CUDA® 工具包:TensorFlow 支持 CUDA 10.1(TensorFlow 2.1.0 及更高版本)
CUDA 工具包附带的 CUPTI。
cuDNN SDK(7.6 及更高版本)
(可选)TensorRT 6.0,可缩短用某些模型进行推断的延迟时间并提高吞吐量。
1.1 本机安装
指需要自行下载安装上述软件包,相比于商业维护软件,开源软件并不是版本越新越好。例如 Nvidia 近期发布了 cuda 11,最新的显卡驱动已经支持,不过 cuda 工具包我们还是要使用 cuda 10.x,并要搭配对应版本的 cuDNN SDK。
[系统驱动支持的cuda版本]使用 nvidia-smi 工具可以还可以查看显卡负载、温度、内存用量等信息。
1.2 Anaconda 套件
Anaconda 是一个用于科学计算的 Python 发行版,支持 Linux, Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包。通过 conda 工具安装 tensorflow,仅需要系统安装 GPU 驱动即可,其他的都可以一键自动安装,无需过多担心依赖问题。然而由于和系统联系较深,实际使用过程中仍然有很多问题,比如报错 cuDNN not initalized 之类。建议在 Windows 下使用该方法
1.3 Docker 容器
因为各种依赖问题折腾得头痛,让人不禁想到了可以解决复杂的环境依赖问题的方案——Docker,它将各种软件包打包好,开箱即用。官方提供的 TensorFlow Docker 映像 ,已经过配置,可运行 TensorFlow。Docker 容器可在虚拟环境中运行,是设置 GPU 支持的最简单方法。
2、Pop!_OS 与 TensorMan
Pop!_OS 基于 Ubuntu 的衍生版,由 System76 公司维护,最新版本是 20.04。System76 是一家专注于制造运行 Linux 的设备的美国企业。
可以看到 POS 可以很方便地安装运行各种生产力工具,其中有一个工具叫做 TensorMan。可以方便地管理 tf 工具