JETSON NANO 入门系列三:NVIDIA JETSON NANO的Tensorflow配置及Tensorflow Lite配置

  • Tensorflow 配置教程
  • Tensorflow Lite配置
  • 编译
  • 原生编译(本地编译)
  • 交叉编译


Tensorflow 配置教程

建议参考:Nvidia 官方文档:由于国内原因,在pip install 时可能会下载网速较慢。
Jetson nano 的TensorFlow 可从Nvidia 官方下载来源下载。 其它相关pip安装可直接采用换源的方式解决。

Tensorflow Lite配置

整个配置流程建议参考官方教程:在ARM64板上构建Tensorflow Lite 本人在自己的PC端进行交叉编译。Docker因为代理问题,没有尝试。
在此之前,希望了解到一个词,编译

编译

源文件生成可执行文件要经过编译和链接两个步骤才能完成。为了方便,我们也把这个过程统称为编译。

原生编译(本地编译)

所谓"原生/本地编译",是指编译源代码的平台和执行源代码编译后程序的平台是同一个平台。这里的平台,可以理解为CPU架构+操作系统。比如,在Intel x86架构/Windows 10平台下、使用Visual C++编译生成的可执行文件,在同样的Intel x86架构/Windows 10下运行

交叉编译

所谓"交叉编译(Cross_Compile)",是指编译源代码的平台和执行源代码编译后程序的平台是两个不同的平台。比如,在Intel x86架构/Linux(Ubuntu)平台下、使用交叉编译工具链生成的可执行文件,在ARM架构/Linux下运行。

交叉编译是相对复杂的,必须考虑如下几个问题:

  • CPU架构:比如ARM,x86,MIPS等等;
  • 字节序:大端(big-endian)和小端(little-endian);
  • 浮点数的支持;
  • 应用程序二进制接口(Application Binary Interface,ABI);
    为什么要使用交叉编译呢?主要有两个原因:
  1. 交叉编译的目标系统一般都是内存较小、显示设备简陋甚至没有,没有能力在其上进行本地编译;
    有能力进行源代码编译的平台CPU架构或操作系统与目标平台不同;
  2. 交叉编译工具链是进行交叉编译的必不可少的工具,是嵌入式开发人员必须熟练掌握的技能。