深度学习的训练和推理流程,是先采用高性能图形服务器使用深度学习框架来训练(Training)机器学习算法,研究大量的数据来学习一个特定的场景,完成后得到模型参数,再部署到终端执行机器学习推理(Inference),以训练好的模型从新数据中得出结论。
一般的深度学习项目,训练时为了加快速度,会使用多 GPU 分布式训练。但在部署推理时,为了降低成本,往往使用单个 GPU
机器甚至嵌入式平台进行部署。Jetson Nano 可以完成整个训练和推理流程,但基于 Jetson Nano 的低算力,不推荐在
Jetson Nano 上进行复杂训练,而仅用于推理。
- 在GPU服务器上使用pytorch训练模型得到pth模型文件;
- 将pth模型转化为onnx格式文件;
- Jetson Nano上利用tensorrt加载onnx模型,实现快速推理。
一、安装并编译jetson.inference
详情请看《英伟达SSD视觉算法,jetson.inference在jetson nano中部署》
二、下载PyTorch迁移学习的预训练模型
下载PyTorch迁移学习的预训练模型mobilenet-v1-ssd-mp-0_675.pth
(若需要请到主页资源下载)
解压后放在jetson-inference/python/training/detection/ssd/models
目录下
三、搭建训练环境
接下来有三种方式搭建训练环境
- 安装conda,然后用conda安装:
1)支持CUDA的pytorch
版本,及其附加库(Torchvision
、Torchaudio
)
2)NVIDIA 提供的一组开发工具CUDA Toolkit
,用于在 GPU 上进行高性能计算 - 用docker
torch + torchvision + opencv-python
(只能训练模型,不能转换成onnx模型,不能跑模型)
第一种环境搭建方式,用conda搭建环境
Conda是一个开源包管理系统和环境管理系统,主要用于管理Python和其他编程语言的包和依赖关系。Conda可以安装、运行和更新软件包及其依赖项,并在不同环境之间切换,使得在同一系统上可以同时使用不同版本的库和工具。通过使用Conda,你可以更高效地管理软件包和环境,特别是在处理数据科学和机器学习项目时。
创建一个 Conda 环境来运行训练和验证的脚本。Conda 环境可以更好地管理包依赖关系和不同项目之间的隔离。以下是如何使用 Conda 创建环境并安装所需依赖项的详细步骤。
1. 安装 Anaconda 或 Miniconda
Anaconda和Miniconda之间的主要区别体现在包含的软件包数量和种类上。
- Anaconda:
包含了大量的科学计算软件包,如numpy、pandas等,以及数据分析和数据可视化等180多个科学包及其依赖项。
提供了丰富的数据分析和机器学习库,适合数据科学、机器学习和大数据处理的用户。 由于包含了大量的软件包,因此安装文件相对较大。- Miniconda(推荐):
是一个小型的Anaconda,只包含了conda和一些必要的python包,没有包含大多数的科学计算包。
用户可以根据自己的需要安装不同的软件包,从而节省磁盘空间。 由于只包含核心功能,安装文件较小,下载和安装速度更快。总的来说,Anaconda和Miniconda都是基于conda的包管理和环境管理系统,但Anaconda预装了大量的科学计算软件包,适合需要这些软件包的用户;而Miniconda则更为轻量级,只包含核心功能,用户可以根据自己的需求灵活安装软件包。
x86架构的ubuntu系统下安装conda
方法1:通过Miniconda安装(推荐)
Miniconda是一个较小的Conda发行版,只包含Conda和其依赖项。你可以根据需要安装其他包。
-
下载Miniconda安装脚本:
打开终端,使用wget
命令下载Miniconda安装脚本:wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
-
验证安装脚本(可选):
验证安装脚本的SHA-256校验和,以确保下载的文件完整:sha256sum Miniconda3-latest-Linux-x86_64.sh
将输出的哈希值与Miniconda官网上提供的哈希值进行对比。
-
运行安装脚本:
运行下载的安装脚本:bash Miniconda3-latest-Linux-x86_64.sh
-
按照提示进行安装:
按照脚本提示进行安装,通常只需按回车键选择默认选项。安装完成后,脚本会询问是否将Miniconda添加到你的PATH
环境变量中,建议选择yes
。 -
激活Conda:
关闭并重新打开终端,或者运行以下命令激活Conda环境:source ~/.bashrc
确保Conda已安装并可用:
conda --version
方法2:通过Anaconda安装
Anaconda包含了更多的预装包,适合需要大量科学计算和数据分析包的用户。
-
下载Anaconda安装脚本:
打开终端,使用wget
命令下载Anaconda安装脚本:wget https://repo.anaconda.com/archive/Anaconda3-latest-Linux-x86_64.sh
-
验证安装脚本(可选):
验证安装脚本的SHA-256校验和,以确保下载的文件完整:sha256sum Anaconda3-latest-Linux-x86_64.sh
将输出的哈希值与Anaconda官网上提供的哈希值进行对比。
-
运行安装脚本:
运行下载的安装脚本:bash Anaconda3-latest-Linux-x86_64.sh
-
按照提示进行安装:
按照脚本提示进行安装,通常只需按回车键选择默认选项。安装完成后,脚本会询问是否将Anaconda添加到你的PATH
环境变量中,建议选择yes
。 -
激活Conda:
关闭并重新打开终端,或者运行以下命令激活Conda环境:source ~/.bashrc
确保Conda已安装并可用:
conda --version
ARM架构的ubuntu系统下安装conda
在ARM架构的Ubuntu系统中安装Conda的步骤与x86架构略有不同。由于Conda官方主要为x86架构提供了安装包,我们可以使用Miniforge来安装Conda,这是一个适用于多种架构的轻量级Conda发行版。
以下是通过Miniforge安装Conda的方法:
使用Miniforge安装Conda
-
下载Miniforge安装脚本:
打开终端,使用wget
命令下载适用于ARM架构的Miniforge安装脚本:wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-aarch64.sh
-
验证安装脚本(可选):
验证安装脚本的SHA-256校验和,以确保下载的文件完整:sha256sum Miniforge3-Linux-aarch64.sh
将输出的哈希值与Miniforge官网上提供的哈希值进行对比。
-
运行安装脚本:
运行下载的安装脚本:bash Miniforge3-Linux-aarch64.sh
-
按照提示进行安装:
按照脚本提示进行安装,通常只需按回车键选择默认选项。安装完成后,脚本会询问是否将Miniforge添加到你的PATH
环境变量中,建议选择yes
。 -
激活Conda:
关闭并重新打开终端,或者运行以下命令激活Conda环境:source ~/.bashrc
确保Conda已安装并可用:
conda --version
使用Conda
通过上述步骤,你已经在ARM架构的Ubuntu系统中安装了Miniforge,并且可以像使用标准的Conda一样管理你的环境和包。Miniforge使用conda-forge通道来安装包,确保兼容性和可用性。
如果有任何问题,可以查阅Miniforge的官方文档以获取更多信息和支持。
windows系统下安装conda
在Windows系统中安装Conda的步骤如下:
方法1:通过Miniconda安装(推荐)
-
下载Miniconda安装程序:
打开浏览器,访问Miniconda的官网:Miniconda下载页面。
选择适用于Windows的安装程序(通常是Miniconda3 Windows 64-bit),然后下载。
Miniconda下载链接
Anaconda下载链接
下载的版本要和注意自己系统的架构对应!!!
-
运行安装程序:
找到下载的安装程序(例如Miniconda3-latest-Windows-x86_64.exe
),双击运行。 -
按照提示进行安装:
- 阅读许可协议并接受。
- 选择安装类型(一般选择“Just Me”)。
- 选择安装位置(建议使用默认位置)。
- 确保勾选“Add Miniconda to my PATH environment variable”(将Miniconda添加到PATH环境变量)以便在命令提示符中直接使用Conda。
-
完成安装:
安装完成后,可以选择直接运行Conda初始化(Initialize Miniconda)。 -
验证安装:
打开命令提示符(Cmd)或PowerShell,运行以下命令以确保Conda已安装并可用:conda --version
方法2:通过Anaconda安装
-
下载Anaconda安装程序:
打开浏览器,访问Anaconda的官网:Anaconda下载页面。
选择适用于Windows的安装程序(通常是Anaconda3 Windows 64-bit),然后下载。 -
运行安装程序:
找到下载的安装程序(例如Anaconda3-latest-Windows-x86_64.exe
),双击运行。 -
按照提示进行安装:
- 阅读许可协议并接受。
- 选择安装类型(一般选择“Just Me”)。
- 选择安装位置(建议使用默认位置)。
- 确保勾选“Add Anaconda to my PATH environment variable”(将Anaconda添加到PATH环境变量)和“Register Anaconda as my default Python”(将Anaconda注册为默认的Python)。
-
完成安装:
安装完成后,可以选择直接运行Anaconda Navigator或Anaconda Prompt。 -
验证安装:
打开命令提示符(Cmd)或PowerShell,运行以下命令以确保Conda已安装并可用:conda --version
使用Conda
安装完成后,可以通过命令提示符(Cmd)或PowerShell使用Conda命令管理环境和包。例如:
conda create -n myenv python=3.9
conda activate myenv
conda install numpy
2. 增加环境变量(不一定要
)
在大多数情况下,安装Miniconda或Anaconda时,安装程序会自动将Conda添加到系统的环境变量中。如果你在安装过程中选择了相应的选项(通常是“Add Anaconda to my PATH environment variable”),你不需要手动添加环境变量。不过,如果你在安装过程中没有选择该选项,或者Conda命令无法正常使用,可以手动添加环境变量。如果conda --version能查询到版本号,就表示环境变量没问题。
1) 找到 Conda 的安装路径
通常,Miniconda 会安装到用户目录下的 Miniconda3
文件夹,例如:
Windows: C:\Users\Miniconda3
Mac/Linux: /home//miniconda3/
或 /Users//miniconda3/
2)添加 Conda 到系统环境变量
Windows
打开系统属性:
右键点击 “此电脑” 或 “我的电脑”,选择 “属性”。
点击 “高级系统设置”。
点击 “环境变量”。
编辑 Path
变量:
在 “系统变量” 部分,找到并选择 Path
变量,然后点击 “编辑”。
点击 “新建”,然后添加 Miniconda 的安装路径,例如 C:\Users\Miniconda3
和 C:\Users\Miniconda3\Scripts
。
确认并保存所有设置。
重新启动终端:
关闭并重新打开命令提示符或 PowerShell,以确保环境变量更新生效。
Mac/Linux
打开终端。
编辑 .bashrc
或 .zshrc
文件:
使用你喜欢的文本编辑器打开你的 shell 配置文件,例如:
nano ~/.bashrc # 如果你使用的是 Bash
nano ~/.zshrc # 如果你使用的是 Zsh
添加以下行:
export PATH="$HOME/miniconda3/bin:$PATH"
保存并关闭文件。
刷新配置文件:
source ~/.bashrc # 如果你使用的是 Bash
source ~/.zshrc # 如果你使用的是 Zsh
3)验证 conda 命令
打开新的终端窗口,并运行以下命令以验证 Conda 是否正确安装:
conda --version
如果一切正常,你应该会看到 Conda 的版本号。
2. 创建并激活 conda 环境:
conda create -n myenv python=3.11 # 选择 Python 版本取决于你的项目需求以及所使用的库的兼容性
conda init # 安装后首次使用conda需要先初始化,然后重新打开命令行窗口!!!
conda activate myenv
3. 用conda安装 PyTorch 和相关库:
conda install pytorch torchvision torchaudio cudatoolkit=11.8.0 -c pytorch -c nvidia
该命令一次性安装了 PyTorch 及其相关的计算机视觉和音频处理库,并且指定了 CUDA Toolkit 11.1 版本,使得这些库能够利用 NVIDIA GPU 进行加速计算。通过使用 -c pytorch
和 -c nvidia
选项,确保了从官方维护的频道安装最新版本的包,这有助于避免兼容性问题。
该命令通过 Conda 安装以下软件包和库:
- PyTorch (
pytorch
):
一个开源的深度学习框架,由 Facebook 的人工智能研究团队开发。PyTorch 提供了张量计算&#x