• 机器人操作系统ROS(21) jetson nano安装torch tensorflow


    安装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)
    # 注意是英文的单引号,复制过去容易出错
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    烧好的镜像写死了,可以去修改文件/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
    
    • 1
    • 2

    保存退出。
    然后需要source下生效下。source ~/.bashrc
    此时再执行nvcc -V执行结果如下 nvcc -V
    在这里插入图片描述

    检查其他环境

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

    pkg-config opencv4 --modversion

    如果OpenCv安装就绪,会显示版本号,我的版本是4.4.1

    image.png
    2检查cuDNN
    Jetson-nano中已经安装好了cuDNN,并有例子可供运行,我们运行一下例子,也正好验证上面的CUDA
    cd /usr/src/cudnn_samples_v8/mnistCUDNN/
    sudo make #编译一下例子
    ./mnistCUDNN
    如果以上无法运行可以添加权限如下方法:
    sudo chmod a+x mnistCUDNN # 为可执行文件添加执行权限

    如果成功,如下所示
    nano@nano-desktop:/usr/src/cudnn_samples_v8/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 # 查看版本没问题即可
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    下文中将使用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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    虚拟环境配置

    因为这里的SD卡是32G的,第一次用虚拟环境装发实际大概用了5-6G(可能protubf很占地方,安装了两个虚拟环境)所以第二次装的时候我是直接在默认的python3.6装的,相当于把torch和tenfsorflow装在一个环境中,实用的话不建议这样操作)
    下面的操作是直接在系统环境python3.6的过程,建议使用虚拟环境,注意在虚拟环境还是在系统环境

    我们将使用python的虚拟环境,来保证你使用的环境互相独立。
    使用virtualenvvirtualenvwrapper,(之前尝试过anaconda,由于各种包编译的问题 ,安装过程不是很顺利,为了快速使用,没有去做过深研究),当然完全可以直接使用系统的python环境,这样更简单,按需进行吧。
    安装命令:

    sudo pip install virtualenv virtualenvwrapper
    
    • 1

    安装完之后,需要更新.bashrc vim ~/.bashrc
    在文件底部输入

    # virtualenv and virtualenvwrapper
    export WORKON_HOME=$HOME/.virtualenvs #指定所有的需拟环境的安装位置
    export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 #指定解释器
    source /usr/local/bin/virtualenvwrapper.sh#进行激活生效
    
    • 1
    • 2
    • 3
    • 4

    保存并退出,使用source 重新载入 source ~/.bashrc

    接着创建python的虚拟环境,

    mkvirtualenv nano -p python3 #-p 是指定解释器是python3
    
    • 1

    在这里插入图片描述
    创建后直接进入了。
    我的名字是nano,你可以自己定义。
    一些virtualenvwrapper的常用命令:

    #创建一个环境
    mkvirtualenv name #在~/.virtualenvs下安装name的需拟环境
    #激活工作环境
    workon name
    #workon后不加任何东西可以列出所有虚拟环境
    #退出当前虚拟环境
    deactivate
    #删除虚拟环境,需先退出
    rmvirtualenv name
    #列出所有虚拟环境
    lsvirtualenv
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    安装jtop

    Jetson Nano中有个工具jtop, 可以同时查看CPU和GPU资源以及温度,另外就是可以把你当前的library show出来

    sudo pip install --upgrade pip
    sudo -H pip install jetson-stats
    sudo jtop
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    选1ALL的内容
    在这里插入图片描述
    2GPU的内容
    在这里插入图片描述
    3CTRL的内容
    在这里插入图片描述
    4INFO的内容
    在这里插入图片描述
    按q退出。
    下图为低功耗下的图:
    在这里插入图片描述

    安装torch

    因为实验的时候没有安装jetson-inference ,所以不方便快速安装;想要安装的可以去原文链接中查看::【Jetson-Nano】jetson_nano安装环境配置及tensorflow和pytorch的安装_牛andmore牛的博客


    这个aarch64位的也很少有编译好的torch,好像国外都是自己下载torch的源码然后自己编译,为了省时间, 目前有一个外网论坛公布了编译好的针对该系统的(如下图),如果网不好,可以使用下面的百度网盘。
    建议自己下载然后在使用,下载地址:

    下载完后,本地安装 (安装过程中一般都会自动下载依赖项,目前没什么问题)

    pip install ...wen jian ming ..whl
    
    • 1

    以下是说明文档中的内容,我们照着实现。
    在这里插入图片描述

    快速办法的来源:安装toch

    验证
    在这里插入图片描述
    在这里插入图片描述
    大概十几分钟安装完成

    安装 torchvision

    反正挺麻烦,对网络的要求比较多。。。。原文链接中好像是去下载源码然后自己编译,我试过一次,失败了。。

    之前的百度网盘已经提供了版本,可以直接找到该文件然后本地安装即可。

    验证pytorch 和torchvision

    import torch
    print(torch.__version__)
    print(touch.cuda.is_available())
    import torchvision
    print(torchvision.__version__)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述


    如果出现:“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
    • 2

    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
    
    • 1
    • 2
    • 3
    • 4

    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"
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

    然后激活虚拟环境,装protobuf装到虚拟环境中:

    workon nano
    cd ~
    cp -r ~/src/protobuf-3.8.0/python/ .
    cd python
    python setup.py install --cpp_implementation
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    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时也会自动下载
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    安装过程中好像h5py安装很慢,最后还报错了,可以先跳过最后再安装,

    我的tensorflow安装的是1.15版本的,再百度网盘提供了连接:
    直接本地安装就好。有些依赖会自动下载

    pip install ...wen jian ming ..whl
    
    • 1

    安装其它常用库(自选)

    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 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    测试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__)'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    验证一下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的安装

  • 相关阅读:
    前后端交互—Ajax基础
    uniapp 声音提示、震动提示、语音播报插件 Ba-Beep
    0006Java安卓程序设计-ssm基于Android的校园二手商品交易平台
    全新叙事赛道:诺亚引领不良资产合成潮流,DeFi生态再添“万亿”动力
    Https为什么是安全的
    项目进度管理(3-2)项目时间估算方法总结
    maven安装配置
    Redis极速上手开发手册【Redis全面复习】
    Hystrix原理
    springboot 发布tomcat(zip包)
  • 原文地址:https://blog.csdn.net/qq_38758371/article/details/127831841