【学习AI-相关路程-工具使用-自我学习-jetson&cuda&pytorch-开发工具-安装尝试-基础样例 (3)】
- 1、前言
- 2、环境说明
- 3、自我总结
- (1)了解整体过程
- 阶段 1: 硬件设置
- 阶段 2: 软件准备
- 阶段 3: 数据准备
- 阶段 4: 模型设计和训练
- 阶段 5: 优化和部署
- 阶段 6: 应用集成
- 阶段 7: 监控和维护
- (2)pytorch了解
- (3)安装流程了解
- 4、实验过程
- (1)自己系统确认
- 1.查询JetPack版本
- 2. 查看系统文件
- 3. 使用 Jetson Stats 工具
- (2)问题解决-设置环境路径
- (2)下载工具
- (3)安装环境-PyTorch依赖
- (4)代码编写
- (6)实验过程中的记录
- 5、实验代码
- 6、细节部分
- 1、官方博客
- 2、插线和硬件
- 7、总结
1、前言
我们之前在ubuntu上安装了cuda和visco,并且尝试了一个demo文件,并且调用相应cuda库,相当编写了一个hello world 一样。
本篇,我们在jetson orin NX 上也同样运行下,但是不一样的是,我们安装pytorch,通过网上了解到,这是一个深度学习框架,我们之后部署也要在jetson,或者至少不会部署在我们使用的,研发那台电脑上。但jetson本身可以看做一个电脑,相关也可以进行实验。
2、环境说明
我们使用是还是要注意环境,环境不一样,很多指令和配置都可能需要调整,请根据自己实际jetson进行调试,当然自己也不好说配置一定是最新的,但想要说明的是,可能环境不一样,配置情况可能就不同,但思路应该差不多。
3、自我总结
(1)了解整体过程
自己也是一点点学的,也在探索中,不敢说自己的整个流程全对,但是安装自己规划的步骤走,至少有个方向,我们开始配置环境,其实就是在打地基,然后一定的,去做,去找知识开,但是学习理论和实际操作可能完全不一样,这里自己上网查了一些知识,请教了一些人,总结以下流程,让你有个大概认知。
实际对于AI的应用,可能和学习AI完全不一样。学习知识,是了解AI内部运作原理,而实际调试的时候,是另一条路如下,之前其实就是做了一部分,我们一点点学习吧。
阶段 1: 硬件设置
- 准备Jetson Orin设备:确保设备有适当的电源和散热设施。
- 安装操作系统:通常使用NVIDIA提供的JetPack SDK来安装一个预配置的Linux操作系统。
- 连接必要的外设:包括显示器、键盘、鼠标等。
- 网络连接:为设备配置网络连接,以便下载软件和更新。
阶段 2: 软件准备
- 更新系统和驱动:确保所有的系统软件和GPU驱动都是最新的。
- 安装开发工具:安装Python、CUDA Toolkit、cuDNN等必要的开发工具。
- 安装深度学习框架:根据你的选择安装TensorFlow, PyTorch或其他深度学习框架。
本篇,我们就是在这个安装深度学习框架阶段,至于之后,也需要慢慢来,一点点学习。
阶段 3: 数据准备
- 数据收集:收集大量电脑开机和非开机的图像数据。
- 数据标注:如果你正在做对象检测,需要在图像中标注出开机界面的位置。
- 数据预处理:格式化图像数据,如调整大小,归一化像素值等。
阶段 4: 模型设计和训练
- 选择模型架构:可以使用预训练的模型如MobileNet, VGG, ResNet等作为起点。
- 模型训练:使用收集的数据训练CNN模型。这可能需要几天时间,具体取决于数据集的大小和模型的复杂性。
- 模型评估:使用测试数据集评估模型的性能。
阶段 5: 优化和部署
- 模型优化:为了在Jetson Orin上获得更好的性能,可以使用TensorRT来优化模型。
- 部署模型:将优化后的模型部署到Jetson Orin设备上。
- 创建推理脚本:编写脚本来加载模型,处理输入图像,并输出识别结果。
阶段 6: 应用集成
- 实时测试:连接到实际的电脑屏幕,使用摄像头实时测试模型的识别效果。
- 性能调优:根据实际的应用场景调整模型参数,优化推理时间和准确率。
阶段 7: 监控和维护
- 监控系统:监控模型的实时性能,确保稳定运行。
- 模型更新:定期重新训练和更新模型以适应新的数据和场景。
(2)pytorch了解
这里问了自己伙伴,虽然网上有很多学习框架,但是推荐使用pytorch,大家用这个还挺多的,所以没什么可说的,本次也是安装pytorch。
如下是维基百科显示的,可以先了解下。
连接地址:https://zh.wikipedia.org/zh-cn/PyTorch
然后我们可以去官网再去了解下。
连接地址:https://pytorch.org/
(3)安装流程了解
不过我们其实没有从pytorch官网上下载,而是在英伟达官网上找的pytorch,其实这部分,英伟达已经有现成的包,专门为jeston 设计的,这极大方便了我们。
链接:https://developer.nvidia.com/embedded/downloads#?search=pytorch
当然你没有登录的话,直接点击链接,进入界面可能和我这个不太一样,可能是如下样子的,多点点就找到了。
整个按照流程,其实你经过了ubuntu那么繁琐的尝试后,你基本大致了解,比ubuntu要简单,相当于套件一样,安装更方便,或者还是那一套流程,如下就在 >>> 4、实验过程中细说了。
4、实验过程
在经历过使用SDK对jeston 刷机和cuda安装后,我们还需要一些配置的,对这块不了解,可以看看之前文章。
【学习AI-相关路程-工具使用-NVIDIA SDK MANAGER==NVIDIA-jetson刷机工具安装使用 】
(1)自己系统确认
我们都是需要先确认自己的设备能哪个版本,之后再去找对应的版本安装的,否则直接安装最高版本,是不行的。使用如下命令,我们可以获取一些信息。
1.查询JetPack版本
输入以下命令来查询安装的JetPack相关包的版本:
dpkg -l | grep nvidia-jetpack
这个指令的目的是,列出与JetPack相关的所有包,以及它们的版本信息。一般来说会包括一个总体的JetPack元包,显示了整体的JetPack版本
2. 查看系统文件
不确定是不是所有系统,都可以通过查看系统文件来获取,但确实看到网上说使用如下指令,这个指令确实可用获取信息,但应该无法得到想要的信息感觉,如下指令。
cat /etc/nv_tegra_release
3. 使用 Jetson Stats 工具
如果你的设备安装了Jetson Stats工具,那么有个方便的方法来查看JetPack以及其他硬件和软件的详细信息
没有的话可以先安装下。
sudo -H pip install jetson-stats
运行指令如下
jetson_release
上述几种办法,均可以可以去确定版本,但第三种,给到信息是最多的。
如上,上图就是我试验是的截图,其中 Jetpack 5.1.2这条信息,就是我需要的,可以帮我们确定版本的信息,不过还要去官方核对下,如第三种方式,直接告诉你了。
1
(2)问题解决-设置环境路径
(1)我们虽然使用工具SDK给jetson刷好了,但是实际上,还需要一些配置,否则在使用如下指令的时候,就会出现找不到命令的报错,其实就是找不到。
nvcc --version
(2)我们可以去如下路径确认下,到底有没有安好cuda,如下图,这里还是有的.
(3)那么一般来说,我们都是缺少环境路径,在文件~/.bashrc 内添加如下内容。
这里注意,根据自己实际cuda版本更改。
export PATH=/usr/local/cuda-11.x/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.x/lib64:$LD_LIBRARY_PATH
(4)如下在最后一行进行添加。
(5)如下,添加完,在用指令运行下。相关指令放在下边了
sudo vim ~/.bashrc //打开编辑~/.bashrc 文件
source ~/.bashrc //允许在当前shell环境中执行文件中的命令。它对于加载环境变量、定义函数和别名、执行初始化脚本等任务非常有用。
nvcc --version
如下为自己执行过程
(6)当然我们也有其它方式确认环境变量
echo $PATH
echo $LD_LIBRARY_PATH
(2)下载工具
之后我们去英伟达官网下载对应版本。需要先登录。
(1)链接:https://developer.nvidia.com/embedded/downloads#?search=pytorch
这里还可以看到其他版本,如下图,我们只需要找到合适我们的版本就可以了。
(3)安装环境-PyTorch依赖
在下载的时候,我们需要先配置一些环境,给pytorch的依赖。
(1)我们可用先更新下,如下指令
sudo apt-get update
sudo apt-get upgrade
(2)然后安装pytorch依赖
sudo apt-get install python3-pip libopenblas-base libopenmpi-dev libomp-dev
如下图为自己执行过程。
(2)增加交换空间
看到网上说,jetson设备的内存可能不足以处理一些大型编译任务,因此要增加交换空间,为以下指令。
sudo fallocate -l 8G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
(3)长久有效,增加指令如下
配合“增加交换空间”长久使用,输入以下指令。
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
(4)配置好后,并且下载好了后,如下指令安装。
pip3 install torch-2.1.0a0+41361538.nv23.06-cp38-cp38-linux_aarch64.whl
(4)代码编写
之后就是代码编写,如下,我们找个简单代码,使用类似python脚本一样的方式运行。创建文件什么的这里不惜细讲了。
import torch
import torch.nn as nn
def test_pytorch():
# 创建一个简单的线性层
linear = nn.Linear(10, 5)
# 创建一个随机数据张量,用于模型输入
inputs = torch.randn(1, 10)
# 执行前向传递
outputs = linear(inputs)
print("Outputs of the linear layer:", outputs)
if __name__ == "__main__":
test_pytorch()
(2)如下是代码调试过程,编写文件,再使用python3运行
wjl-linux@ubuntu:~/Desktop/cuda-pytorch-work$ vim dome1_pytorch.py
[1]+ Stopped vim dome1_pytorch.py
wjl-linux@ubuntu:~/Desktop/cuda-pytorch-work$ vim dome1_pytorch.py
wjl-linux@ubuntu:~/Desktop/cuda-pytorch-work$ python3 dome1_pytorch.py
tensor([[ 0.3456, -0.1262, -0.5047, 0.8887, -0.7778]],
grad_fn=<AddmmBackward0>)
wjl-linux@ubuntu:~/Desktop/cuda-pytorch-work$
wjl-linux@ubuntu:~/Desktop/cuda-pytorch-work$ ls
dome1_pytorch.py dome-pytorch
wjl-linux@ubuntu:~/Desktop/cuda-pytorch-work$ cd dome-pytorch/
wjl-linux@ubuntu:~/Desktop/cuda-pytorch-work/dome-pytorch$ ls
wjl-linux@ubuntu:~/Desktop/cuda-pytorch-work/dome-pytorch$ vim dome2_pytorch.py
wjl-linux@ubuntu:~/Desktop/cuda-pytorch-work/dome-pytorch$ python3 dome2_pytorch.py
Outputs of the linear layer: tensor([[ 0.6604, -0.0789, -1.4292, 0.3906, -0.4852]],
grad_fn=<AddmmBackward0>)
wjl-linux@ubuntu:~/Desktop/cuda-pytorch-work/dome-pytorch$
以下为整改截图。
(6)实验过程中的记录
整改过程,其实也尝试了很多东西,没有说一步到位的,都是不断反复尝试指令,如下为指令记录。
//环境配置部分
540 nvcc --versin
541 nvcc --version
542 find / -name deviceQuery
543 sudo nvcc -V
544 clear
545 nvcc --version
546 ls /usr/local/cuda
547 nano ~/.bashrc
548 cat ~/.bashrc
549 sudo vim ~/.bashrc
550 source ~/.bashrc
551 nvcc --version
552 sudo apt-get update
553 sudo apt-get upgrade
554 sudo apt-get install python3-pip libopenblas-base libopenmpi-dev libomp-dev
555 sudo fallocate -l 8G /swapfile
556 sudo chmod 600 /swapfile
557 sudo mkswap /swapfile
558 sudo swapon /swapfile
559 echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
560 dpkg -l | grep nvidia-jetpack
561 cat /etc/nv_tegra_release
562 clear
563 dpkg -l | grep nvidia-jetpack
564 cat /etc/nv_tegra_release
565 sudo -H pip install jetson-stats
566 jetson_release
567 nvcc-smi
568 nvidia-smi
569 history
//安装pytorch部分
535 nvcc -version
536 nvcc --version
537 nvcc --version
538 pip3 install torch-2.1.0a0+41361538.nv23.06-cp38-cp38-linux_aarch64.whl
539 python3 -c "import torch; print(torch.__version__); print('CUDA available:', torch.cuda.is_available())"
540 hisory
541 history
//测试代码脚本部分
538 vim dome1_pytorch.py
539 python3 dome1_pytorch.py
540 ls
541 cd dome-pytorch/
542 ls
543 vim dome2_pytorch.py
544 python3 dome2_pytorch.py
(2)以下为截图
5、实验代码
本次代码还是比较简单的,如有需要在下边自取吧。
代码链接:https://download.csdn.net/download/qq_22146161/89338813
6、细节部分
1、官方博客
大部分情况,我们都可以去官方博客去找。
链接:https://forums.developer.nvidia.com/c/agx-autonomous-machines/jetson-embedded-systems/70
2、插线和硬件
我们在调试软件的时候,要保证我们硬件是可用调试,没有问题呢的,如果硬件不稳定,调试的时候都是问题。
7、总结
一步步探索与前进。