ubuntu19.10 torch7 环境安装教程

1.torch7深度学习库介绍

torch7是一个科学计算框架、支持GPU机器学习算法库。它借助简单的脚本语言LuaJTI和基础C/CUDA实现,它易于使用并且有高效的计算性能。
下面是一些核心特点:

  • 具有强大的N维数组
  • 用于索引,切片,转置很多的方法
  • LuaJIT和C的很多接口
  • 线性代数方法
  • 神经网络和基于能量的模型
  • 数值优化方法
  • 快速高效的GPU支持
  • 可嵌入式,带有iOS和Android后端的端口

Torch的目标是在构建科学算法的过程中具有最大的灵活性和最快的速度,同时使过程极其简单。Torch在社区学习,机器视觉,计算机视觉,信号处理,并行处理,图像,视频,音频和网络等方面均由社区驱动的软件包组成,它建立在Lua社区之上。
Torch的核心是易于使用的流行神经网络和优化库,同时在实现复杂的神经网络拓扑结构方面具有最大的灵活性。 可以构建神经网络的任意图,并以有效的方式在CPU和GPU上将它们并行化。

2.安装torch7环境

首先安装cmake环境,我们这里推荐使用cmake-3.14以上的版本。这里使用到了cmake-3.16.5版本 下载地址
cmake下载网址笔者这里的系统环境是64位ubuntu,下载cmake-3.16.5-Linux-x86_64.tar.gz。
下载完成之后,安装cmake环境

cd ~
tar -xcvf cmake-3.16.5-Linux-x86_64.tar.gz

添加环境变量

nano ~/.bashrc
export PATH=/home/asus/cmake-3.8.2-Linux-x86_64/bin:$PATH

使得环境变量生效

source ~/.bashrc

查看cmake版本

cmake --version

接下来我们开始安装torch7环境
CUDA10.0以下的环境选择

git clone https://github.com/torch/distro.git ~/torch --recursive

CUDA10.0以上的环境选择

git clone https://github.com/nagadomi/distro ~/torch --recursive

进入torch文件夹下安装torch依赖项

cd torch
bash install-deps

下一步进行安装

bash install.sh #或者是 ./install.sh

安装过程中会出现readline.o库文件找不到的情况,安装libreadline-dev依赖包j即可:

lua.c:67:31: fatal error: readline/readline.h: No such file or directory
sudo apt-get install libreadline-dev

很多时候,由于安装torch官网上给出的版本,在编译环境的过程中出现找不到CUDA_cublas_device_LIBRARY/CUDA_cublas_LIBRA变量:

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
CUDA_cublas_device_LIBRARY (ADVANCED)

很多教程上说要改变cmake版本,可是试过几次之后都出现失败情况,最后在github上找到了CUDA10.0以上版本的torch7库。
最后出现

Do you want to automatically prepend the Torch install location to PATH and LD_LIBRARY in your /home/asus/.bashrc?(yes/no)
[yes] >>>
yes

键入yes。
使得环境变量生效

source ~/.bashrc

输入:th测试是否安装成功,当出线如下标识说明已成功安装:
Torch安装成功提示
另外,无CUDA安装Torch7可以直接按照官网上的教程来安装即可。

3. 安装过程中出现的问题

在调用torch.inverse(tensor)过程中,出现了一个问题,即getrf : Lapack library not found in compile time。出现这个问题的主要原因是由于没有安装openBLAS库。openBLAS库是一个基于C和fortran的矩阵运算库。所以由以下方法安装openBLAS库:
首先确定操作系统中必须有gfortran编译环境。编译openBLAS需要较低版本的gfortran变异环境。如果没有,则以下命令进行安装:

sudo apt-get install gfortran

在笔者的操作系统中,gfortran环境是gfortran-9环境,但是在编译过程中出现了如下问题:

/usr/bin/x86_64-linux-gnu-ld: 找不到 -lgfortran

这主要的原因就是没有进行编译器降级处理,建议小于gfortran-7版本。笔者在使用软件仓库查找的时候,只有最低版本的gfortran-7,所以安装了gfortran-7版本:

apt-get search gfortran
sudo apt-get install gfortran-7
sudo mv /usr/bin/gfortran /usr/bin/gfortran.bak	#进行备份处理
sudo ln -s gfortran gfortran-7	#进行软链接操作 

接下来安装openBLAS:

git clone https://github.com/xianyi/OpenBLAS.git
cd ~/OpenBLAS
make NO_AFFINITY=1 USE_OPENMP=1 -j4
sudo make PREFIX=/usr/local/OpenBLAS install  #默认是/opt/OpenBLAS.
sudo ln -s /opt/OpenBLAS/lib/libopenblas.so.0   /usr/lib/libopenblas.so.0

安装成功后,luarocks install torch 可能找不到OpenBLAS,需要定义路径再进行torch安装:

CMAKE_LIBRARY_PATH=/usr/local/OpenBLAS/include:/usr/local/OpenBLAS/lib:$CMAKE_LIBRARY_PATH
luarocks install torch
# 或者是在bashrc文件中定义变量CMAKE_LIBRARY_PATH,或者是在安装torch之前定义此变量值

这样就可以使用了

还有一个问题就是,在使用nngraph库的时候,必须包含有Graphviz库支持,否则在使用image库显示的时候会出现以下问题:

/home/asus/torch/install/share/lua/5.1/graph/graphviz.lua:157: graphviz library could not be loaded.
stack traceback:
	[C]: in function 'error'
	/home/asus/torch/install/share/lua/5.1/graph/graphviz.lua:157: in function 'graphvizFile'
	/home/asus/torch/install/share/lua/5.1/graph/graphviz.lua:197: in function 'dot'
	[string "_RESULT={graph.dot(mlp.fg,"MLP")}"]:1: in main chunk
	[C]: in function 'xpcall'
	/home/asus/torch/install/share/lua/5.1/trepl/init.lua:661: in function 'repl'
	...asus/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:204: in main chunk
	[C]: at 0x5566d436a0e0	

所以我们必须安装Graphviz库:

sudo apt-get install graphviz -y

安装成功之后,可能依旧不会正常显示,有可能出现以下的错误信息:

/home/asus/torch/install/share/lua/5.1/trepl/init.lua:389: module 'qt' not found:No LuaRocks module found for qt
	no field package.preload['qt']
	no file '/home/asus/.luarocks/share/lua/5.1/qt.lua'
	no file '/home/asus/.luarocks/share/lua/5.1/qt/init.lua'
	no file '/home/asus/torch/install/share/lua/5.1/qt.lua'
	no file '/home/asus/torch/install/share/lua/5.1/qt/init.lua'
	no file './qt.lua'
	no file '/home/asus/torch/install/share/luajit-2.1.0-beta1/qt.lua'
	no file '/usr/local/share/lua/5.1/qt.lua'
	no file '/usr/local/share/lua/5.1/qt/init.lua'
	no file '/home/asus/.luarocks/lib/lua/5.1/qt.so'
	no file '/home/asus/torch/install/lib/lua/5.1/qt.so'
	no file '/home/asus/torch/install/lib/qt.so'
	no file './qt.so'
	no file '/usr/local/lib/lua/5.1/qt.so'
	no file '/usr/local/lib/lua/5.1/loadall.so'
stack traceback:
	[C]: in function 'error'
	/home/asus/torch/install/share/lua/5.1/trepl/init.lua:389: in function 'require'
	/home/asus/torch/install/share/lua/5.1/image/init.lua:1559: in function 'display'
	[string "_RESULT={image.display(l)}"]:1: in main chunk
	[C]: in function 'xpcall'
	/home/asus/torch/install/share/lua/5.1/trepl/init.lua:661: in function 'repl'
	...asus/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:204: in main chunk
	[C]: at 0x5578d20d50e0	

信息显示,在显示图像的时候缺少qtlua支持库。所以我们使用luarocks下载并安装luaqt库:

luarocks install qtlua
luarocks install qttorch

最后查看qlua的目录

which qlua
/home/asus/torch/install/bin/qlua

即可以正常使用qlua

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值