TX2安装caffe(从头开始,最全教程)

2023-05-16

(大二时记录在有道云笔记的记录,现在开始搬运)

准备工作:

1. 刷机。第一次使用TX2,那是需要刷机的。由于TX2自带的ubuntu系统比较老,不适合我们接下来的工作,所以我们需要升级TX2的系统。笔者使用的是ubuntu16.04。简单地说,就是用网线将TX2与一台ubuntu电脑连接,然后下载一大堆更新包。网上刷机的教程很多,这里就不详细说明。附刷机连接:https://www.jianshu.com/p/bb4587014349

2. 了解TX2。在安装caffe之前,我们需要了解TX2是什么,比如它的cpu是什么,gpu是什么(Tegra X2)。最重要的一点是:它用的arm结构,是aarch-linux,不是x86_64-linux,也不是i386-linux。这里附官方简介:

http://www.nvidia.cn/object/embedded-systems-dev-kits-modules-cn.htm

安装过程:

1. 安装各种包以及依赖

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install build-essential cmake git pkg-config

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler

sudo apt-get install libatlas-base-dev

sudo apt-get install --no-install-recommends libboost-all-dev

sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-de

2. 安装python

sudo apt-get install python-pip

安装pip

这里我们用pip安装一些python需要的依赖包,不过为了避免各种问题,也可以通过apt-get安装,反正我这两种方式都安装了一遍(-.-)

sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose

3. 安装Opencv(TX2已经自带,检查后可跳过这一步)

查看opencv版本:

pkg-config --modversion opencv

若没有跳出opencv的版本,则需安装opencv:

sudo apt-get install -y libopencv-dev

4. 安装Cuda(TX2已经自带,检查后可跳过这一步)

查看cuda版本:

cat /usr/local/cuda/version.txt

若没有跳出cuda的版本,则需手动安装cuda:

这里附安装连接:https://blog.csdn.net/jonms/article/details/79318566

5. 安装Cudnn(需要手动安装,不可跳过)

A. 确定已经安装的Cuda版本,以Cuda9.0为例,到官网https://developer.nvidia.com/rdp/cudnn-download下载相应的库文件(下载前需要登录网站,因此需要进行注册)PS:一定要去官网下载对应的版本,不要图省事去什么网盘之类的,只有才是最安全的。

B. 进入下载目录并解压

cd /home/nvidia/Downloads

sudo tar xvf cudnn-9.0-linux-x64-v7.1.tgz

C. 复制头文件和动态链接库

cd cuda

sudo cp include/cudnn.h /usr/local/cuda/include/

sudo cp lib64/* /usr/local/cuda/lib64/

cd /usr/local/cuda/lib64/

ls -a#(查看libcudnn版本;很多地方需要根据文件的版本然后操作,后面不再提示)

sudo chmod +r libcudnn.so.7.1.2

后面很多地方需要查看文件名称。学会使用 ls -a(查看当前目录下所有文件)

D. 创建软连接

sudo rm -rf libcudnn.so libcudnn.so.7

sudo ln -s libcudnn.so.7.1.2 libcudnn.so.7

sudo ln -s libcudnn.so.7 libcudnn.so

sudo ldconfig

 

6. 安装Caffe

A. 下载caffe

cd ~

mkdir git #在home下新建一个git文件夹,用来存放那些从github上git下来的文zong件

git clone https://github.com/BVLC/caffe.git //从github上git caffe

B. 开始安装

cd caffe #打开到刚刚git下来的caffecp Makefile.config.example Makefile.config

#将Makefile.config.example的内容复制到Makefile.config

#因为make指令只能make Makefile.config文件,而Makefile.config.example是caffe给出的makefile例子

gedit Makefile.config //打开Makefile.config文件

#仔细阅读makefile中的注释语句其实就知道该怎么操作了,这里贴出笔者的修改,也是大部分TX2用户的修改。

#若使用cudnn,则将# USE_CUDNN := 1

#修改成:

USE_CUDNN := 1

#若使用的opencv版本是3的,则将# OPENCV_VERSION := 3

修改为:

OPENCV_VERSION := 3

#重要的一项

#将 Whatever else you find you need goes here.下面的

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
#修改为:

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/aarch64-linux-gnu /usr/lib/aarch64-linux-gnu/hdf5/serial

#这是因为ubuntu16.04的文件包含位置发生了变化,尤其是需要用到的hdf5的位置,所以需要更改

C. 为hdf5创建链接

首先执行下面两句话:

find . -type f -exec sed -i -e 's^"hdf5.h"^"hdf5/serial/hdf5.h"^g' -e 's^"hdf5_hl.h"^"hdf5/serial/hdf5_hl.h"^g' '{}' \;

cd /usr/lib/aarch64-linux-gnu

这里笔者被坑了很多次,网上几乎所有的教程都是x86_64,给出的是cd /usr/lib/x86_64-linux-gnu,然而TX2并没有这个文件,浪费了笔者很多时间;

笔者没有找到用aarch架构的caffe安装文章,故写下了此博客

然后根据情况执行下面两句:

sudo ln -s libhdf5_serial.so.10.1.0 libhdf5.so

sudo ln -s libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so

注意:这里的10.1.0和10.0.2根据不同的系统可能对应的数字会不同,比如在ubuntu15.10中其数字就是8.0.2.

具体的数字可以在打开的文件中查看对应文件后面跟的数字

PS:查看当前目录下文件,用ls -a

D. Make各种文件
 

cd .. #此时位置应该处于caffe文件夹下

make all -j4 

j4代表计算机cpu有4个核,因此可以多线程一起make,这样make的速度会快很多。TX2是4核的,我们就不要学别人用什么j8,j16了,乖乖地敲j4

make test -j4

make runtest -j4

make pycaffe #如果以后用python来开发的话必须执行这一句,一般不管你是否用python,都会执行这一句

make distribute

假如在安装中,遇到什么别的问题,欢迎在评论区留下你的问题,共同讨论一波~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TX2安装caffe(从头开始,最全教程) 的相关文章

  • 【c++】14.编译proto和proto相关用法

    编译proto和proto相关用法 关于proto相关的知识可以参考系列博客 https blog csdn net daaikuaichuan category 9869251 html xx proto文件中如果要注释的话 注释符号也是
  • Caffe源码中caffe.proto文件分析

    Caffe源码 caffe version 09868ac date 2015 08 15 中有一些重要文件 这里介绍下caffe proto文件 在src caffe proto目录下有一个caffe proto文件 proto目录下除了
  • Tensorflow的非对称填充假设

    为什么 TensorFlow 选择在右下角填充 With SAME填充 对我来说 在第一个真实像素处启动内核的中心锚点是合乎逻辑的 由于使用了不对称填充 这导致与其他一些框架存在差异 我确实明白 原则上不对称填充是好的 因为否则会留下未使用
  • Caffe:如果两层反向传播渐变到同一个底部斑点会发生什么?

    我想知道如果我有一个层生成一个底部斑点 该斑点进一步被两个后续层消耗 这两个层都会生成一些梯度来填充反向传播阶段的 Bottom diff 将两个梯度相加形成最终梯度吗 或者说 只有他们一个人能够活下去 根据我的理解 Caffe 层需要在用
  • 检查失败:mdb_status == 0 (2 vs. 0) 没有这样的文件或目录

    我在训练数据时收到以下错误 我已经尝试了互联网上给出的所有解决方案 但似乎没有一个对我有用 我已检查 lmdb 文件的路径和大小不为零 但问题仍然存在 我不知道如何解决这个问题 pooling I0411 12 42 53 114141 2
  • 三元组损失的softmax版本的梯度计算

    我一直在尝试在Caffe中实现softmax版本的三元组损失 描述于 霍弗和艾隆 使用三元组网络进行深度度量学习 ICLR 2015 我已经尝试过这个 但我发现很难计算梯度 因为指数中的 L2 不是平方的 有人可以帮我吗 使用现有的 caf
  • CNN 上的快速损失收敛意味着什么?

    我正在两个不同的深度学习库 Caffe e Tensorflow 中训练两个 CNN AlexNet e GoogLeNet 该网络由每个图书馆的开发团队实施 here https github com BVLC caffe tree ma
  • 在 Python 中未安装 caffe 的情况下从 .caffemodel 中提取权重

    有没有一种相对简单的方法可以从 Caffe Zoo 中的众多预训练模型之一中提取 Python 中的权重没有咖啡 也不是 pyCaffe 即解析 caffemodel转换为 hdf5 numpy 或任何 Python 可以读取的格式 我找到
  • Caffe 求解器中的average_loss 字段有什么用?

    有什么用average loss 有人可以举个例子或者用通俗易懂的语言解释一下吗 您可以在caffe proto https github com BVLC caffe blob master src caffe proto caffe p
  • 在 ubuntu 16.04 中安装 Caffe 时遇到困难

    操作系统 ubuntu 16 04 CUDA 7 5 库德恩 5 我正在关注this https github com BVLC caffe wiki Ubuntu 16 04 or 15 10 OpenCV 3 1 Installatio
  • 未定义符号:_ZdlPvm

    我在用阿波罗咖啡 https github com Russell91 apollocaffe and 重新检查 https github com Russell91 ReInspect Apollocaffe在 c 库中并且Reinspe
  • Caffe/pyCaffe:设置所有 GPU

    是否可以为Caffe 尤其是pyCaffe 设置所有GPU 就像是 caffe train solver examples mnist lenet solver prototxt gpu all 这两个分支现在都支持多 GPU 一段时间了
  • Caffe net.predict() 输出随机结果 (GoogleNet)

    我使用了预训练的 GoogleNethttps github com BVLC caffe tree master models bvlc googlenet https github com BVLC caffe tree master
  • 如何在 pycaffe 中获取图层类型?

    是否有可能在 pycaffe 中获取每一层的类型 例如 卷积 数据等 我搜索了提供的示例 但找不到任何内容 目前我正在使用图层名称来完成我的工作 这是非常糟糕和有限的 这很容易 import caffe net caffe Net path
  • 使用内置显卡,没有NVIDIA显卡,可以使用CUDA和Caffe库吗?

    使用内置显卡 没有 NVIDIA 显卡 可以使用 CUDA 和 Caffe 库吗 我的操作系统是 ubuntu 15 CPU为 Intel i5 4670 3 40GHz 4核 内存为12 0GB 我想开始学习深度学习 CUDA 适用于 N
  • 如何在 CAFFE 的新网络中重复使用同一网络两次

    我有一个预训练的网络 我们称之为N 我想在新网络中使用两次 有人知道如何复制吗 然后我想为每个副本分配不同的学习率 例如 N1是第一个副本N N2是第二个副本N 新网络可能如下所示 N1 gt joint ip N2 gt layer 我知
  • Caffe:如果内存中只能容纳一小部分,我该怎么办?

    我正在尝试训练一个非常大的模型 因此 我只能将非常小的批量大小放入 GPU 内存中 处理小批量的结果非常噪声梯度估计 https stackoverflow com a 33717093 1714410 我该怎么做才能避免这个问题 您可以更
  • Google Inceptionism:按类别获取图像

    在著名的 Google Inceptionism 文章中 http googleresearch blogspot jp 2015 06 inceptionism going deeper into neural html http goo
  • 如何在 Caffe 的网络中出现多次损失?

    如果我在网络中定义多个损失层 从这些末端到网络的开头是否会发生多个反向传播 我的意思是 他们真的是这样工作的吗 假设我有这样的事情 Layer1 Layer2 Layer n Layer cls1 bottom layer n top cl
  • Caffe 的 LSTM 模块

    有谁知道 Caffe 是否有一个不错的 LSTM 模块 我从 russel91 的 github 帐户中找到了一个 但显然包含示例和解释的网页消失了 以前是http apollo deepmatter io http apollo deep

随机推荐

  • 【PTC Thingworx(一)】申请30天免费试用

    1 进入Thingworx网站https developer thingworx com 2 选择Free Trials 3 完善信息申请30天试用 4 申请成功界面 5 点击Start Server开始服务 xff0c 并点击Launch
  • 树莓派Buster系统快速安装opencv(二)

    完成上一篇树莓派Buster系统编译安装opencv 一 xff09 中的配置wifi 换源 修改树莓默认Python版本 安装工具包等内容后 xff0c 开始本教程内容 1 下载opencv安装包 从https www piwheels
  • monkeyDev使用及初次使用问题的解决方法

    安装 1 下载monkeyDev git clone https github com AloneMonkey MonkeyDev git 2 进入bin文件夹执行安装命令 cd MonkeyDev bin sudo md install
  • node-red mysql节点报错“Pool is Closed”

    进入nodejs安装目录 执行以下命令 npm install mysql 重启node red pm2 restart all 问题解决
  • Windows搭建TensorFlow GPU环境

    一 CUDA安装 CUDA xff08 Compute Unified Device Architecture xff09 xff0c 是显卡厂商NVIDIA推出的运算平台 CUDA 是一种由NVIDIA推出的通用并行计算架构 xff0c
  • FTP下载报错:550 Failed to open file

    Filezilla报错 xff1a 550 Failed to open file xff0c 如下图 原因 xff1a 上传文件权限问题 解决办法 xff1a 修改vsftpd conf的虚拟用户权限配置 cd span class to
  • kubeadm flannel 网络问题

    环境 xff1a 节点 1 xff1a 192 168 60 100 节点 2 xff1a 192 168 60 101 节点 3 xff1a 192 168 60 102 虚拟机自建了一套kubeadm集群 xff0c 刚开始好好的 xf
  • Win10下安装opendr

    踩坑过程 xff1a 正常pip install opendr 报错 xff1a 下载Cython失败 解决 xff1a 去PYPI上找轮子 xff0c 离线安装Cython 问题 xff1a 这次库都下载好了 xff0c 但是安装时报错
  • Ubuntu18.04安装OpenCV4.2.0(不包含Python)

    之前写的项目安装教程节选Opencv部分 当时用的英文 有时间我再转中文 Install dependant envs span class token function sudo span span class token functio
  • Ubuntu18.04设置开机自启脚本

    网上参考Ubuntu18 04 开机自启动脚本之后并没成功 xff0c 各种搜索后发现博文内容都一样 xff0c 说什么亲测可行 xff0c 但根本没解决下面这个问题 span class token function sudo span
  • Linux 网卡VLAN、BOND配置

    此篇是在转载博文上做修订 原文内容有些地方不妥当 Redhat Linux的网络配置 xff0c 基本上是通过修改几个配置文件来实现的 xff0c 虽然也可以用ifconfig来设置IP xff0c 用route来配置默认网关 xff0c
  • WinSCP之Windows与Windows之间传输文件

    WinSCP之Windows与Windows之间传输文件 方法 xff1a WinSCP 43 OpenSSH xff08 1 xff09 在需要远程访问的windows电脑上安装OpenSSH的server xff1a 具体步骤如下 xf
  • C++类和对象——继承

    目录 1 继承的基本语法 2 继承方式 3 继承中的对象模型 4 继承中构造和析构顺序 5 继承同名成员处理方式 6 继承同名静态成员处理方式 7 多继承语法 8 菱形继承 继承是面向对象三大特性之一 有些类与类之间存在特殊的关系 xff0
  • Guava-Collections2源码解析

    构造器 private Collections2 私有构造器 xff0c 也没有静态构造器 xff0c 所以可以很明确它是一个纯工具类了 功能方法 filter过滤方法 传入一个带过滤的容器 xff0c 和一个实现过滤规则的函数类 xff0
  • QGC 汉化

    效果如下 一 xff0c pro文件修改 不添加 lupdate xff0c qml文件中的 qstr 无法识别 二 xff0c 生成 ts 文件 三 xff0c 利用 Qt 自带的 linguist软件 加载ts文件 翻译后 生成 qm
  • QGC android版 ubuntu编译

    一 xff0c 环境搭建 参照 xff1a https blog csdn net foxbryant article details 51813685 1 软件安装 Ubuntu 版本 xff1a 14 04 Qt xff1a 5 7 1
  • QGC 增加禁飞区显示功能

    效果 xff1a 本功能客只实现地面站上禁飞区静态展示 xff0c 具体限制需飞控端实现 步骤 xff1a 下载禁飞区数据 处理禁飞区数据 禁飞区数据 导入sqlite数据库 初始化读取禁飞区数据 绘制 打包 1 xff0c 下载禁飞区数据
  • Tx2 通过内核编译来获取ttyUSB* 以及ttyACM*的设备名

    最近由于学校实验室准备参加ICRA的DJI AI Challenge xff0c 所以我在使用TX2跑ROS 我用的是ubuntu 16 04 ros kinetic版本 然后遇到了一些问题 再插上通信串口之后usb并没有反应 通过lsus
  • Tx2上运行rplidar A2

    首先 xff0c 有一个比较坑的地方 xff0c Tx2默认情况下是没有rplidar A2的这个驱动的 xff0c 需要我们自己进行内核编译安装 具体安装方法可以看我的Tx2 通过内核编译来获取ttyUSB 以及ttyACM 的设备名 的
  • TX2安装caffe(从头开始,最全教程)

    xff08 大二时记录在有道云笔记的记录 xff0c 现在开始搬运 xff09 准备工作 xff1a 1 刷机 第一次使用TX2 xff0c 那是需要刷机的 由于TX2自带的ubuntu系统比较老 xff0c 不适合我们接下来的工作 xff