安装torch、tensorflow其实跟普通在Linux系统安装没有区别,但是Linux是arch64位的,而jetson是aarch64位的,所以还是不太一样。
另外一个坑是:购买的创乐博的机器人,已经安装ros,但是安装torh的时候需要apt -get update
导致,后续无法正常(大概率是这个原因,所以不建议使用这个命令!具体可以问客服)
参考操作参考文章 :【Jetson-Nano】jetson_nano安装环境配置及tensorflow和pytorch的安装_牛andmore牛的博客
文章里面已经讲述了如果烧录系统,设置交换空间,ssh远程连接nano并设置最大功率等等,前期没实验的可以看,这里省略。
关于风扇
我觉得风扇太吵,偶然发现,其实烧好的镜像里已经默认自启动风扇的最大挡位,太吵了就找了几个命令,具体参考:jetson nano 散热风扇控制 里面大佬讲原理挺好的
#控制风扇开关:
#ON :
sudo sh -c ‘echo 255 > /sys/devices/pwm-fan/target_pwm’
# 这个数值就是控制,别太小就行, 毕竟散热重要!
#OFF :
sudo sh -c ‘echo 0 > /sys/devices/pwm-fan/target_pwm’
#(slowly turned off)
# 注意是英文的单引号,复制过去容易出错
烧好的镜像写死了,可以去修改文件/etc/rc.local
下次启动就会生效
配置cuda
其实因为jetson自带gpu,百度可查;所以配置下环境变量就好
先配置cuda的环境变量, 填加PATH到.bashrc,具体路径.
1 首先,查看cuda的bin目录下是否有nvcc:
ls /usr/local/cuda/bin
如果存在,
sudo vim ~/.bashrc
进入配置文件; 在最后面添加以下两行:
注意:在vim中通过Esc退回命令模式,通过I切换到输入模块,在输入模式下才可以输入文本
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
保存退出。
然后需要source下生效下。source ~/.bashrc
此时再执行nvcc -V执行结果如下 nvcc -V
检查其他环境
1检查OpenCV
Jetson-nano中已经安装了OpenCV4.1.1版本,可以使用命令检查OpenCV是否安装就绪
pkg-config opencv4 --modversion
如果OpenCv安装就绪,会显示版本号,我的版本是4.4.1
2检查cuDNN
Jetson-nano中已经安装好了cuDNN,并有例子可供运行,我们运行一下例子,也正好验证上面的CUDA
cd /usr/src/cudnn_samples_v8/mnistCUDNN/
sudo make
#编译一下例子
./mnistCUDNN
如果以上无法运行可以添加权限如下方法:
sudo chmod a+x mnistCUDNN
# 为可执行文件添加执行权限
如果成功,如下所示
更新PIP
sudo apt-get install -y python3-dev python3-testresources python3-setuptools
wget https://bootstrap.pypa.io/get-pip.py
# 这句话我是没有执行成功,报警告,可以看看警告里有个新的地址,换一下就行;没有请忽略
sudo python3 get-pip.py
rm get-pip.py
pip -V # 查看版本没问题即可
下文中将使用pip来安装python的一些包,对于一些网络不好的情况,建议先改变pip的安装源到国内:
#如清华的源
https://pypi.tuna.tsinghua.edu.cn/simple
#豆瓣源
https://pypi.doubanio.com/simple
#临时改源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
#持久的设为默认源
pip install pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
#如果您到 pip 默认源的网络连接较差,临时使用镜像站来升级 pip
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U
虚拟环境配置
因为这里的SD卡是32G的,第一次用虚拟环境装发实际大概用了5-6G(可能protubf很占地方,安装了两个虚拟环境)所以第二次装的时候我是直接在默认的python3.6装的,相当于把torch和tenfsorflow装在一个环境中,实用的话不建议这样操作)
下面的操作是直接在系统环境python3.6的过程,建议使用虚拟环境,注意在虚拟环境还是在系统环境
我们将使用python的虚拟环境,来保证你使用的环境互相独立。
使用virtualenv和virtualenvwrapper,(之前尝试过anaconda,由于各种包编译的问题 ,安装过程不是很顺利,为了快速使用,没有去做过深研究),当然完全可以直接使用系统的python环境,这样更简单,按需进行吧。
安装命令:
sudo pip install virtualenv virtualenvwrapper
安装完之后,需要更新.bashrc vim ~/.bashrc
在文件底部输入
# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs #指定所有的需拟环境的安装位置
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 #指定解释器
source /usr/local/bin/virtualenvwrapper.sh#进行激活生效
保存并退出,使用source 重新载入 source ~/.bashrc
接着创建python的虚拟环境,
mkvirtualenv nano -p python3 #-p 是指定解释器是python3
创建后直接进入了。
我的名字是nano,你可以自己定义。
一些virtualenvwrapper的常用命令:
#创建一个环境
mkvirtualenv name #在~/.virtualenvs下安装name的需拟环境
#激活工作环境
workon name
#workon后不加任何东西可以列出所有虚拟环境
#退出当前虚拟环境
deactivate
#删除虚拟环境,需先退出
rmvirtualenv name
#列出所有虚拟环境
lsvirtualenv
安装jtop
Jetson Nano中有个工具jtop, 可以同时查看CPU和GPU资源以及温度,另外就是可以把你当前的library show出来
sudo pip install --upgrade pip
sudo -H pip install jetson-stats
sudo jtop
选1ALL的内容
2GPU的内容
3CTRL的内容
4INFO的内容
按q退出。
下图为低功耗下的图:
安装torch
因为实验的时候没有安装jetson-inference ,所以不方便快速安装;想要安装的可以去原文链接中查看::【Jetson-Nano】jetson_nano安装环境配置及tensorflow和pytorch的安装_牛andmore牛的博客
这个aarch64位的也很少有编译好的torch,好像国外都是自己下载torch的源码然后自己编译,为了省时间, 目前有一个外网论坛公布了编译好的针对该系统的(如下图),如果网不好,可以使用下面的百度网盘。
建议自己下载然后在使用,下载地址:
下载完后,本地安装 (安装过程中一般都会自动下载依赖项,目前没什么问题)
pip install ...wen jian ming ..whl
以下是说明文档中的内容,我们照着实现。
快速办法的来源:安装toch
验证
大概十几分钟安装完成
安装 torchvision
反正挺麻烦,对网络的要求比较多。。。。原文链接中好像是去下载源码然后自己编译,我试过一次,失败了。。
之前的百度网盘已经提供了版本,可以直接找到该文件然后本地安装即可。
验证pytorch 和torchvision
import torch
print(torch.__version__)
print(touch.cuda.is_available())
import torchvision
print(torchvision.__version__)
如果出现:“Illegal instruction(core dumped)”
外国的解决办法:python - Illegal instruction(core dumped) error on Jetson Nano - Stack Overflow
Ubuntu/Jetson Nano问题解决“Illegal instruction(core dumped)”
为避免麻烦每次都输入,直接写入环境
sudo vi ~/.bashrc
最后添加
export OPENBLAS_CORETYPE=ARMV8
生效source ~/.bashrc
安装tensorflow
来源:【Jetson-Nano】2.Tensorflow和Pytorch的安装
在系统环境中安装一些包:依次执行就好
sudo apt-get install python3-numpy
sudo apt-get install python3-scipy
sudo apt-get install python3-pandas
sudo apt-get install python3-matplotlib
sudo apt-get install python3-sklearn
创建虚拟环境并激活:
mkvirtualenv nano
workon nano
1 Protobuf 安装
退出虚拟环境,在系统中安装Protobuf。
首先配置protobuf,这样可以使tensorflow运行更快。如果protobuf和libprotobuf没有安装,Tensorflow的性能会被大打折扣。当然,使用pip来安装tensorflow 的时候,会自动安装一个protobuf的版本,但是可能不是很合适。关于这部分性能的影响参见Nvidia的论坛
安装步骤如下:
wget https://raw.githubusercontent.com/jkjung-avt/jetson_nano/master/install_protobuf-3.8.0.sh #需要科学上网,否则可以直接在浏览器中打开这个网址(https://github.com/jkjung-avt/jetson_nano/blob/master/install_protobuf-3.8.0.sh)
#把文件中的这一行注释掉sudo apt-get install -y python3-pip
sudo chmod +x install_protobuf-3.8.0.sh
./install_protobuf-3.8.0.sh
protobuf安装其实就是一个命令脚本sh,然后执行再链接到虚拟环境,但是这个脚本试过一次,中间遇到很多问题突然中断,建议依次执行这个脚本里的每一句。 回到用户家目录,依次执行
#!/bin/bash
set -e
folder=${HOME}/src
mkdir -p $folder
echo "** Install requirements"
sudo apt-get install -y autoconf libtool
echo "** Download protobuf-3.8.0 sources"
cd $folder
if [ ! -f protobuf-python-3.8.0.zip ]; then
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.8.0/protobuf-python-3.8.0.zip
fi
if [ ! -f protoc-3.8.0-linux-aarch_64.zip ]; then
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.8.0/protoc-3.8.0-linux-aarch_64.zip
fi
echo "** Install protoc"
unzip protobuf-python-3.8.0.zip
unzip protoc-3.8.0-linux-aarch_64.zip -d protoc-3.8.0
sudo cp protoc-3.8.0/bin/protoc /usr/local/bin/protoc
echo "** Build and install protobuf-3.8.0 libraries"
export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp
cd protobuf-3.8.0/
./autogen.sh
./configure --prefix=/usr/local
make -j$(nproc)
make check
sudo make install
sudo ldconfig
echo "** Update python3 protobuf module"
# remove previous installation of python3 protobuf module
sudo pip uninstall -y protobuf
sudo pip install Cython
cd python/
python3 setup.py build --cpp_implementation
sudo python3 setup.py install --cpp_implementation
echo "** Build protobuf-3.8.0 successfully"
然后激活虚拟环境,装protobuf装到虚拟环境中:
workon nano
cd ~
cp -r ~/src/protobuf-3.8.0/python/ .
cd python
python setup.py install --cpp_implementation
2 安装依赖包及tensorflow1.15
安装好protobuf以后,在虚拟环境中安装numpy和cython:
pip install cython
pip install numpy==1.16.1
# 还有其他依赖
pip install -U testresources setuptools
pip install -U future mock h5py keras_preprocessing keras_applications gast futures pybind11
# 这几个包,其实没有安装太成功,但是好像也没有关系,可以一个个安装,如果还不可以,本地安装tf时也会自动下载
安装过程中好像h5py安装很慢,最后还报错了,可以先跳过最后再安装,
我的tensorflow安装的是1.15版本的,再百度网盘提供了连接:
直接本地安装就好。有些依赖会自动下载
pip install ...wen jian ming ..whl
安装其它常用库(自选)
pip3 install scipy
pip3 install keras==2.3.0
pip3 install pillow
pip3 install matplotlib
pip3 install scikit-learn
pip3 install scikit-image
pip3 install jupyter
测试python包是否安装成功
python -c 'import numpy; print(numpy.__version__)'
python -c 'import jupyter; print(jupyter.__version__)'
python -c 'import PIL; print(PIL.__version__)'
python -c 'import matplotlib; print(matplotlib.__version__)'
python -c 'import tensorflow; print(tensorflow.__version__)'
python -c 'import keras; print(keras.__version__)'
python -c 'import scipy; print(scipy.__version__)'
验证一下tensorflow是否支持GPU
问题
这里的警告可以不用在意,如果可以建议还是用虚拟环境
时间同步的问题
参考:jetson nano设置时间同步
nano时间不准确,在网上试了多种方式,但是一关机之后,再次开启时,时间又恢复默认啦!!!
小伙伴们可以尝试以下方式:
首先安装时间同步协议ntp:sudo apt-get install ntpdate
然后设置中国时间ntp服务器时间: sudo ntpdate cn.pool.ntp.org
最后设置硬件时钟同步:sudo hwclock --systohc
设置root(不推荐)
1.设置root用户和密码
首先用快捷键crtl+alt+T 打开终端,显示的是用户名@电脑名:~
,
符
号
,符号
,符号就表示现在处于普通用户权限。
然后输入:sudo passwd root
输入两次密码,回车,成功
参考
【Jetson-Nano】2.Tensorflow和Pytorch的安装
查看Jetson系列产品JetPack的版本信息
NVIDIA Jetson xavier NX上安装pytorch_前面一二三四是失败的方法,可以直接按照步骤五进行安装…
【Jetson-Nano】jetson_nano安装环境配置及tensorflow和pytorch的安装