目前使用的是jetpack4.6,通过刷机后,得到了一个运行Ubuntu18.04版本的tx1。在准备刷入官方提供的一系列组件时,遇到了空间不够的问题,参考网上教程,加入了SSD,扩展了容量,在此基础上研究了配置pytorch和tensorflow。现在总结这段时间的研究经验。

SSD的安装

这个首先需要看你的载板接口了,之前用的RTSO-9003载板只有SD卡接口,自然不能安装SSD扩容了。后来换的载板上有m2接口,而且是key B,不过现在的m2固态接口,多数是同时兼容B key和M key的M.2(B+M)key接口。
这里参照的是一位博主的文章《Jetson TX1 加SSD固态硬盘并从硬盘启动》
在Ubuntu中搜索DISKS,可以看到一个和你的固态硬盘容量差不多大的空间区域,点+号

格式化的时候选ext4,并且命名好name,就得到了新的空间。
此时固态硬盘应该已经挂载完成。
下面是要将系统复制到固态
上一步打开磁盘图标自动挂载后,按“ctrl+L”显示挂载路径
假设satassd是你的固态名字,路径为/media/nvidia/satassd
打开终端输入:

sudo cp -ax / '/media/nvidia/satassd' 

注意不要省略单引号
这一命令将系统复制到SSD
下一步是修改启动路径,修改前应备份配置文件

cd /boot/extlinux
sudo cp extlinux.conf extlinux.conf.original
sudo gedit /boot/extlinux/extlinux.conf  

文件:

主要修改的是label那部分,将label那一段复制一遍,构造一个新的label,第一个label是针对ssd描述,第二个label是针对emmc进行描述,
同时第二行DEFAULT的位置,选择默认从ssd启动。

Linux中,一切即文件,配置也是靠修改文件来的。
swap开启时,主要是选择swapfile的位置

cd /home/nvidia
mkdir swap

然后借助git上现成到工具来产生swapfile

git clone https://github.com/jetsonhacks/postFlashTX1.git
cd postFlashTX1

如果选择的位置是/home/nvidia/swap,大小为16g

sudo ./createSwapfile.sh -d /home/nvidia/swap -s 16 –a

开启swap的工具

sudo swapon -a
sudo swapoff -a

on对应开启,off对应关闭
用free来看分配的空间

free -hl

无线网

安装jetpack components的时候,无论是OTA安装,还是通过电脑安装,都需要使用到网络。
最可靠的联网还是用RJ45口直接连接以太网,当然,如果载板没有有线接口,也可以考虑无线网。不过tx1自身的无线网卡信号检测不行,而且我的载板上也没有天线接口,因此我在USB HUB拓展了一下USB口,然后插了一个USB网卡,这样增强了信号接收的能力。

安装JetPack

通过PC管理安装

一个方法是,连接电脑和tx1,通过的是USB连接的方式,利用电脑Ubuntu装上的jetpack4.6安装工具,将组建刷入tx1,在这之中,需要将tx1与电脑连接到一个局域网,网上教程说要用有线连接,而我亲测,可以无线连入同一局域网。

这里的关键是要让tx1和电脑在同一局域网,且tx1能够获得外界的网络,因为安装component的时候,还有部分依赖需要联网才能安装到tx1。

记得中间安装的时候,设置电脑和tx1不要休眠,以防断开。

OTA安装

NVIDIA官方提供了How to Install JetPack的方法。

像TX1这样只有16G的设备,如果直接在内置的EMMC进行OTA安装的时候,应该执行所说的第二种方法。

sudo apt update
apt depends nvidia-jetpack | awk '{print $2}' | xargs -I {} sudo apt install -y {}

如果空间扩增后,有了SSD或者SD卡,推荐第一种

sudo apt update
sudo apt install nvidia-jetpack

不过我的TX1加完固态后,空间已经足够,直接完整安装了。

Pytorch的安装

安装conda

相信折腾过pytorch的知道,一般在一个隔离的环境中安装pytorch、tensorflow等,这样出现问题,或者需要安装多个版本时,就可以避免各个版本相互受到影响。由于TX1是AArch64架构,没有办法直接安装电脑上的Anaconda,而且我也不想自己去研究怎么编译,因此找了Archiconda来安装,一样可以使用conda。
首先去下载安装包,github的地址,下载后执行安装。
然后是利用它创建虚拟环境,这里我后面装的是pytorch1.6,基于python3.6,所以环境也是基于python3.6:

conda create -n xxxx python=3.6

这里下载的时候,可能会出现http 000的错误,不同的人解决方法不一样,我试过换源、https改http都没用,最后是更新了conda解决的。

conda update -n base conda

安装pytorch

现在已经可以找到编译好的pytorch和tensorflow了
建立虚拟环境

conda create -n mtorch python=3.6

去官网论坛可以找到pytorch的下载地址。
我这里安装的是1.6版本

各位可以自行摸索最新版本的安装。
激活建立的是虚拟环境XXXX

conda activate xxxx

在虚拟环境下,依次安装库的依赖


sudo apt-get install python3-pip libopenblas-base libopenmpi-dev

pip3 install Cython

pip3 install numpy

最后安装下载好的whl文件,也就是pytorch


pip install torch-1.6.0-cp36-cp36m-linux_aarch64.whl

安装torchvision

安装完pytorch后,可以先去环境下测试下pytorch是否正常工作
像我就很不幸,执行下面命令

import torch

出现报错
Illegal instruction(core dumped)
这里查阅了很多网上的博主文章,还是这一位的方法解决了《NVIDIA JETSONTX2 安装 pytorch 出现错误:import torch 出现 Illegal instruction(core dumped)》。
这位博主的方法,主要意思是要你将export OPENBLAS_CORETYPE=ARMV8 加入环境变量里面。

'''修改环境变量'''
sudo gedit /etc/profile 把 export OPENBLAS_CORETYPE=ARMV8 加入最后面一行,然后保存'''更新环境变量'''
source /etc/profile

解决这个问题很重要,因为torchvision需要通过pytorch编译安装。
如果没有遇到这一问题,可直接执行torchvision的安装。

首先还是安装依赖


sudo apt-get install libjpeg-dev zlib1g-dev

这里如果有安装提示缺少包的,请换回官方源安装。

然后通过git去下载torchvision的代码,注意,官方的提示,torchvision与pytorch版本是要对应的:

下载


git clone --branch v0.7.0 https://github.com/pytorch/vision torchvision

github的下载速度有时候很慢,可以自行同步到gitee上,然后再用git下载。


cd torchvision
export BUILD_VERSION=0.7.0

python3 setup.py install

不过这里安装最后也会遇到错误
/vision-0.7.0/torchvision/csrc/cpu/decoder/defs.h:12:10: fatal error: libavcodec/avcodec.h: No such file or directory
#include <libavcodec/avcodec.h>
^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

这里参照的一篇文章《NVIDIA Jetson之刷机后配置大全》。
修改 setup.py 文件,把 if has_ffmpeg 改为 if False即可。
如果出现pillow下载失败,只需要执行


pip install 'pillow<7' # always needed for Python 2.7, not needed torchvision v0.5.0+ with Python 3.6

至此,基本安装完成,只需要测试下

import torchvision

没有报错即可

以后每次使用的时候,先激活环境,然后再环境里面使用pytorch。我建立的环境叫mtorch,因此激活是

conda activate mtorch

要退出环境就:

conda deactivate

tensorflow安装

从NVIDIA官网安装包和教程

tensorflow的安装就方便多了,直接可以去官网找到教程和下载地址,不像pytorch是去官网的论坛里面找的下载地址。
首先是建立它使用的虚拟环境

conda create -n mtensorflow python=3.6

然后,下载的通过Jetson 下载中心就可以找到。

官网还提供了教程。
这里面下载时候,如果下载完whl文件,直接通过pip命令安装的话

pip3 install tensorflow-2.5.0+nv21.6-cp36-cp36m-linux_aarch64.whl

经过一系列安装后,h5py的安装过程会遇到错误。
因此,必须要

$ sudo apt-get update
$ sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran

尤其是h5py必须按照官网论坛安装

sudo pip3 install -U h5py==2.10.0

不过,最好是按照官网的方法https://docs.nvidia.com/deeplearning/frameworks/install-tf-jetson-platform/index.html,一路照做。

同样,装完后,在python里面检查一下tensorflow是否成功激活。

import tensorflow as tf
tf.__version__

以后每次使用的时候,先激活环境,然后再环境里面使用tensorflow,这里我的环境是mtensorflow:

conda activate mtensorflow

安装keras

keras和tensorflow具有对应的关系,这个网上已经有许多列举,目前我从github上找到的关系表:

详细可以见keras-team/keras。
我这里用的是tensorflow2.5,只需要按照2.5版本的keras,用pip list查看后发现已经装好了。因此就不用装了。

NVIDIA_TX1之Jetpack4.6使用笔记相关推荐

  1. 『Nvidia Jetson AGX Xavier笔记』Xavier(arrch64架构)刷机Jetpack4.2!

    Xavier(基于arrch64架构)刷机Jetpack4.2! 文章目录 一. 预先准备事项 1.1. 硬件准备 1.2. 软件准备 二. 开始刷机模式 2.1. 软件下载及配置 2.2. 开始安装 ...

  2. nvidia_tx1开发笔记

    sfm *主要是静态场景外 *低速运动(例如停车场景) *纹理接地平面(具有足够的跟踪功能) 因此,所提供的样本并不涵盖所有的用例作为其他更复杂的SLAM或SFM算法. 它不是为了解决SLAM任务或通 ...

  3. 【读书笔记】知易行难,多实践

    前言: 其实,我不喜欢看书,只是喜欢找答案,想通过专业的解答来解决我生活的困惑.所以,我听了很多书,也看了很多书,但看完书,没有很多的实践,导致我并不很深入在很多时候. 分享读书笔记: <高效1 ...

  4. 【运维学习笔记】生命不息,搞事开始。。。

    001生命不息,搞事不止!!! 这段时间和hexesdesu搞了很多事情! 之前是机械硬盘和固态硬盘的测速,我就在那默默的看着他一个硬盘一个机械测来测去. 坐在他后面,每天都能看到这位萌萌的小男孩,各 ...

  5. SSAN 关系抽取 论文笔记

    20210621 https://zhuanlan.zhihu.com/p/353183322 [KG笔记]八.文档级(Document Level)关系抽取任务 共指id嵌入一样 但是实体嵌入的时候 ...

  6. pandas以前笔记

    # -*- coding: utf-8 -*- """ Created on Sat Jul 21 20:06:20 2018@author: heimi "& ...

  7. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  8. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  9. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

最新文章

  1. java中String对象和String变量
  2. strlen函数,strcat函数,strcpy函数,strncpy函数,strcmp函数
  3. NER数据增强、badcase处理、数据优化
  4. Java集合LinkedList
  5. visio交换机图标_分享 | 华为交换机开局配置一本通,弱电新人学习!
  6. 跟我一起学.NetCore之中间件(Middleware)简介和解析请求管道构建
  7. Linux | 编译原理、gcc的命令参数、自动化构建工具 make/Makefile
  8. uboot——之初体验
  9. 关于SpringBoot下template文件夹下html页面访问的一些问题
  10. 那么多GAN哪个好?谷歌大脑泼来冷水:都和原版差不多 | 论文
  11. 宫崎峻《となりのトトロ》(龙猫)全剧本(中日对照)(2)
  12. JAVA实现成语大全-成语接龙,给小孩的应用
  13. html 预加载图片,实现网页图片预加载的几个方法
  14. 基于北京二手房价数据的探索性数据分析和房价评估——房价评估模型构建
  15. Unity粒子特效出现慢
  16. 《大道至简-软件工程实践者的思想》读书笔记
  17. 你也能看懂的:灰色预测算法
  18. Mac 解决 gyp: No Xcode or CLT version detected! 报错
  19. 阿里招linux程序员吗,2015-8-29阿里校园招聘研发工程师笔试题(另一篇)
  20. Java语言程序设计 例题5.4(英里和公里的转化)

热门文章

  1. SSD和Ramdisk的配合简直就是天衣无缝,固态硬盘长生不老,全靠它。
  2. 浙江大学数据结构(4.1二叉搜索树)
  3. HTC A510C电信手机刷机过程
  4. 嘻嘻,提眉手术的疤痕多久可以恢复,详细唠嗑
  5. 探索性思维——How to Solve It
  6. r9 6900hs和r9 5900hs差距
  7. 如何检查服务已在依赖注入容器中注册
  8. oledbdatareader和OleDbDataAdapter之间的区别
  9. 智能花卉大棚建设方案
  10. 实验十五:数据恢复原理实验