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

news2025/2/26 0:55:55

安装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

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 # 查看版本没问题即可

下文中将使用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的安装

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/25006.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用Spring实现工厂+策略模式

使用Spring实现工厂策略模式 这里使用发短信业务&#xff1a; 不同短信有不同模板但是发送方法都相同只是发送内同不同 1. 定义短信发送策略接口&#xff1a; //策略接口 public interface SmsTemStrategy {public void sendSms(Map<String,String> params); }2.短信…

【Python】Numpy傅里叶变换总结

文章目录简介fft简介 Fourier变换极其逆变换在数学上的定义如下 F(ω)∫−∞∞f(t)e−iωtdtf(t)π2∫−∞∞F(ω)eiωtdωF(\omega)\int^\infty_{-\infty}f(t)e^{-i\omega t}\text dt\\ f(t)\frac{\pi}{2}\int^\infty_{-\infty}F(\omega)e^{i\omega t}\text d\omega F(ω)∫−…

飞行机器人专栏(八)-- AGX Xavier 通信、控制及视觉应用开发

目录 0. Introduction of Jetson Developer kits 1. 硬件对比 Jetson 模组系列 Jetson AGX Orin 系列 Jetson Orin NX 系列 Jetson AGX Xavier 系列 Jetson Xavier NX 系列 Jetson TX2 系列 Jetson Nano 2. 应用场景 1. Introduction of AGX Xavier Taking Perform…

HTML+PHP+MySQL实现新闻列表模块(1+X Web前端开发中级 例题)——初稿

&#x1f4c4;题目要求 阅读下列说明、效果图、MySQL数据库操作和代码&#xff0c;进行动态网页开发&#xff0c;填写&#xff08;1&#xff09;至&#xff08;15&#xff09;代码。&#x1f9e9;说明 该程序为一个html和php混合的新闻列表模块&#xff0c;使用PHP语言&#x…

【深入浅出Spring6】第九期——Spring对事务的支持

因为很多系统都包含事务&#xff0c;所以Spring提供了相关的Api&#xff0c;属于AOP切面编程的二次封装 那么什么是事务&#xff08;Transaction&#xff09;呢&#xff1f; 指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)在一个业务流程中可能需要多条DML联合执…

【Hack The Box】Linux练习-- OpenAdmin

HTB 学习笔记 【Hack The Box】Linux练习-- OpenAdmin &#x1f525;系列专栏&#xff1a;Hack The Box &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4c6;首发时间&#xff1a;&#x1f334;2022年11月22日&#x1f334; &#x…

Flutter组件--OverflowBox、SizedOverflowBox(子组件超出父组件裁剪)

1.OverflowBox介绍 OverflowBox 允许子控件超出父控件的边界。这个特性主要可以用来实现文字或者按钮角标的. OverflowBox构造函数 const OverflowBox({Key? key,this.alignment Alignment.center,this.minWidth,this.maxWidth,this.minHeight,this.maxHeight,Widget? ch…

java面试强基(8)

String、StringBuffer、StringBuilder 的区别&#xff1f; 可变性 ​ String 是不可变的。StringBuilder 与 StringBuffer 都继承自 AbstractStringBuilder 类&#xff0c;在 AbstractStringBuilder 中也是使用字符数组保存字符串&#xff0c;不过没有使用 final 和 private …

Air780E涂鸦云远程开关-LuatOS

Air780E涂鸦云远程开关-LuatOS 涂鸦智能在远程开关和灯控领域可以算是龙头了&#xff0c;今天就来学习一下&#xff0c;如何接入涂鸦云平台 一、涂鸦云准备 注册账号不写了&#xff0c;自己注册账号即可 1、创建产品 点击产品->极速智能化->产品开发页面的创建产品 …

JDK动态代理

可以针对一些不特定的类或者一些不特定的方法进行代理 可以在程序运行时动态变化代理规则 代理类在程序运行时才创建代理模式成为动态代理 代理类并不是在Java代码中定义好的 而是在程序运行时根据在Java代码中指示动态生成的 Proxy JDK动态代理 面向接口 import java.lang.r…

前后端分离页面(从数据库到前端、后端手把手教你如何搭建 -- 功能实现:增加查询)

目录 一、准备条件 前台 后台 二、数据库设计 建议不要导入&#xff0c;导入有乱码的风险&#xff1b;新建查询运行下面代码更快捷。 三、导入前端项目 导入后使用命令行打开黑窗口&#xff0c;测试一下有没有npm -v环境 如果出现命令无效&#xff0c;就使用管理员身份打开…

SpringAOP(1)-spring源码详解(六)

上篇文章说了spring监听器&#xff0c;监听event&#xff0c;先把事件全部存储在多播器&#xff0c;通过publicEvent来触发多播器发送事件&#xff0c;他可以通过代码注解&#xff0c;或者实现接口的方式来实现事件监听&#xff0c;达到解耦和异步的效果。 Spring监听器-sprin…

Jupyter介绍和安装使用

一. 前言&#xff1a; 最近&#xff0c;小熙发现了一个有意思的工具Jupyter notebook&#xff0c;刚上手熟悉了下&#xff0c;特此记录分享。 二. 简介&#xff1a; 简单介绍并说下用途&#xff1a; Jupyter Notebook是一款开源的web应用&#xff0c;支持markdown编辑&#…

Windows为什么使用广播机制更新信息?

很多 Windows 信息通知机制是基于广播消息&#xff0c;例如&#xff0c;DDE&#xff0c;WM_FONTCHANGE 消息和系统设置的修改等。 当我们知道&#xff0c;消息的广播可能导致系统由于某个窗口停止处理消息而导致整个系统停止时&#xff0c;为什么我们还是使用广播呢&#xff1f…

【解决】VSCode编写C++自定义头文件undefined reference异常问题

最近在使用VSCode编写C程序过程中&#xff0c;自定义一个 *.h 文件&#xff0c;其中包含了函数声明&#xff0c;在主函数中引入头文件后&#xff0c;调用头文件对应C文件中的方法&#xff0c;出现了undefined reference问题&#xff0c;这个主要是配置没有正确造成的&#xff0…

Git——分支(详细解释)

目录 一、概念 1.1 服务器运行模式 1.2 分支概念 1.3 分支的好处 二、分支相关操作 2.1 分支操作 2.2 查看当前分支 2.3 创建分支 2.4 切换分支 2.4.1 切换分支 2.4.2 修改代码并提交&#xff08;完整过程&#xff09; 三、合并分支 3.1 正常合并 3.2 冲突合并&#xff…

DGL学习笔记——第一章 图

提示&#xff1a;DGL用户指南学习中 文章目录一、关于图的基本概念&#xff1f;二、图、节点和边三、节点和边的特征四、从外部源创建图1、从Scipy稀疏矩阵中构建图示例2、从networkx中构建图示例3、从csv中构建图结构总结一、关于图的基本概念&#xff1f; 图是用以表示实体及…

【推荐系统学习笔记】-- 1、推荐系统架构

根本解决的问题&#xff1a;在信息过载的情况下&#xff0c;用户如何高效获取感兴趣的信息。 1 逻辑架构 推荐系统要处理的问题就可以被形式化地定义为&#xff1a;对于某个用户U&#xff08;User&#xff09;&#xff0c;在特定场景C&#xff08;Context&#xff09;下&…

区块链 - 各个国家Web3的现状与趋势

​潜力博主推荐&#xff0c;点上面关注博主↑↑↑ 2022年&#xff0c;元宇宙、NFT 、GameFi、DAO、DeFi 等 Web3 时代的新生事物&#xff0c;正在彻底改写传统商业模式&#xff0c;重塑全球数字商业的版图&#xff0c;一个全新的数字时代正在开启。 美国、欧洲官方开始在 Web…

【构建ML驱动的应用程序】第 4 章 :获取初始数据集

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…