Jetson nano配置pytorch环境(tensorflow也可)部署yolov5

1.镜像源

我的镜像源放在网盘,不是最新的,可自行下载。
复制这段内容后打开百度网盘App,操作更方便哦。 链接:https://pan.baidu.com/s/1nzx_4AQXTk3yTQQ3JTUxhw 提取码:247w
刷机教程网上很多这里不做过多赘述。

2.开机后的一点准备

因为ssh比较方便,我这里在win上用了finalshell的软件通过宿舍的wifi远程ssh连接控制nano。

sudo apt-get update

在这里插入图片描述

在这里插入图片描述

sudo apt-get full-upgrade

在过程中输入Y确认更新。第二个过程时间根据网络情况可能会花2个小时左右,请耐心等待。完成后如下图。
在这里插入图片描述

3.检查已经安装的系统组件

Jetson-nano的OS镜像已经自带了JetPack,cuda,cudnn,opencv等都已经安装好,并有例子,这些例子安装路径如下所示

TensorRT /usr/src/tensorrt/samples/
CUDA /usr/local/cuda-/samples/
cuDNN /usr/src/cudnn_samples_v7/
Multimedia API /usr/src/tegra_multimedia_api/
VisionWorks /usr/share/visionworks/sources/samples/ /usr/share/visionworks-tracking/sources/samples/ /usr/share/visionworks-sfm/sources/samples/
OpenCV /usr/share/OpenCV/samples/

1. 检查CUDA

Jetson-nano中已经安装了CUDA10.0版本,但是此时你如果运行 nvcc -V是不会成功的,需要你把CUDA的路径写入环境变量中。OS中自带Vim工具 ,所以运行下面的命令编辑环境变量。

sudo vim  ~/.bashrc

在最后添加

export CUDA_HOME=/usr/local/cuda-10.0
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-10.0/bin:$PATH

然后保存退出
然后需要source下生效下。

source ~/.bashrc

source后,此时再执行nvcc -V执行结果如下
在这里插入图片描述

2.检查OpenCV

Jetson-nano中已经安装了OpenCV3.3版本,可以使用命令检查OpenCV是否安装就绪

pkg-config opencv --modversion
如果OpenCv安装就绪,会显示版本号,我的版本是3.3.1
在这里插入图片描述

3.检查cudann

Jetson-nano中已经安装好了cuDNN,并有例子可供运行,我们运行一下例子,也正好验证上面的CUDA

cd /usr/src/cudnn_samples_v7/mnistCUDNN   #进入例子目录
sudo make     #编译一下例子
sudo chmod a+x mnistCUDNN # 为可执行文件添加执行权限
./mnistCUDNN # 执行

如果成功,如下所示
在这里插入图片描述
在这里插入图片描述

4.pytorch安装

安装python的pip工具。

sudo apt install python3-pip

提醒小白:如果出现下图
在这里插入图片描述
那应该是有安装命令没执行完毕,可以用下面的命令解决。
在这里插入图片描述
安装后pip是9.01版本,需要把它升级到最新版,升级后pip版本为19.1.1。这里面升级后会有一个小Bug,需要手动改一下

python3 -m pip install --upgrade pip  #升级pip
sudo vim /usr/bin/pip3   #打开pip3文件

将原来的

from pip import main
if name == ‘main’:
sys.exit(main())
改成

from pip import main
if name == ‘main’:
sys.exit(main._main())
修改结束后保存。运行pip3 -V成功后显示
在这里插入图片描述

sudo apt-get install python3-scipy
sudo apt-get install python3-pandas
sudo apt-get install python3-matplotlib
sudo apt-get install python3-sklearn

我的jetpack版本是4.2。
在这里插入图片描述
所以最多只能支持到pytorch1.4版本。

wget https://nvidia.box.com/shared/static/ncgzus5o23uck9i5oth2n8n06k340l6k.whl -O torch-1.4.0-cp36-cp36m-linux_aarch64.whl

接着

sudo apt-get install python3-pip libopenblas-base libopenmpi-dev 
pip3 install Cython
pip3 install numpy
pip3 install torch-1.4.0-cp36-cp36m-linux_aarch64.whl

接下来就要安装必不可少的torchvision啦,注意pytroch和torchvision的对应版本。
在这里插入图片描述
这里安装torchvision0.5.0。

sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
git clone --branch v0.5.0 https://github.com/pytorch/vision torchvision
cd torchvision
export BUILD_VERSION=0.5.0
sudo python3 setup.py install 
cd ../

检查是否成功。

python3
import torch
print(torch.__version__)
print('CUDA available: ' + str(torch.cuda.is_available()))
print('cuDNN version: ' + str(torch.backends.cudnn.version()))
a = torch.cuda.FloatTensor(2).zero_()
print('Tensor a = ' + str(a))
b = torch.randn(2).cuda()
print('Tensor b = ' + str(b))
c = a + b
print('Tensor c = ' + str(c))

tensorflow安装

sudo apt-get install python3-pip libhdf5-serial-dev hdf5-tools
pip3 install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v42 tensorflow-gpu==1.13.1+nv19.3 --user

经历了漫长的等待,下载过程中好几次断网了几次,不过终于安装成功了,没出什么异常。
安装keras。

sudo pip3 install keras

安装完成后,进入python3,检查一下安装成果,import keras时,下方提示using TensorFlow backend,就证明Keras安装成功并使用TensorFlow作为backend。
测试tensorflow:

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
 
x_data = np.linspace(-0.5, 0.5, 200)[:, np.newaxis]
noise = np.random.normal(0, 0.02, x_data.shape)
y_data = np.square(x_data) + noise
 
x = tf.placeholder(tf.float32, [None, 1])
y = tf.placeholder(tf.float32, [None, 1])
 
# 输入层一个神经元,输出层一个神经元,中间10个
# 第一层
Weights_L1 = tf.Variable(tf.random.normal([1, 10]))
Biases_L1 = tf.Variable(tf.zeros([1, 10]))
Wx_plus_b_L1 = tf.matmul(x, Weights_L1) + Biases_L1
L1 = tf.nn.tanh(Wx_plus_b_L1)
 
# 第二层
Weights_L2 = tf.Variable(tf.random.normal([10, 1]))
Biases_L2 = tf.Variable(tf.zeros([1, 1]))
Wx_plus_b_L2 = tf.matmul(L1, Weights_L2) + Biases_L2
pred = tf.nn.tanh(Wx_plus_b_L2)
 
# 损失函数
loss = tf.reduce_mean(tf.square(y - pred))
 
# 训练
train = tf.train.GradientDescentOptimizer(0.1).minimize(loss)
 
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    for i in range(2000):
        sess.run(train, feed_dict={x: x_data, y: y_data})
        print("第{0}次,loss = {1}".format(i, sess.run(loss,feed_dict={x: x_data, y: y_data})))
    pred_vaule = sess.run(pred, feed_dict={x: x_data})
    plt.figure()
    plt.scatter(x_data, y_data)
    plt.plot(x_data, pred_vaule, 'r-', lw=5)
    plt.show()

欢迎感兴趣的人加qq群:603799151,一起交流。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值