本文介绍Torch7的安装方法,因为本人安装Torch前安装了caffe,所以可能CUDA、cudnn、Blas等Torch可能需要用来的库的安装就不再重复介绍了,相关依赖出现问题的的猿友可以参考史上最全的caffe安装过程。
lua是通过luarock来进行软件包管理的,Torch7的接口是lua,因此需要先安装Lua,本人安装的是lua52,安装过程主要参考Torch官方文档。
记录参考Torch官方文档安装Torch7出现一些问题。
qlua installation
luarocks install qtlua //not qlua
(1) error: found unsuitable Qt version from NOTFOUND, this code requires Qt4.x
solution:
1.exclude anaconda env from your path.
Referrence
2.第二步:
sudo apt-get install qt-sdk
(2) error: module ‘qttorch’ not found: no field package.preload[‘qttorch’] it occur when I use qlua to run some sh
solutions:
luarocks install qttorch
(3) error: readline.h not found
after type ./install.sh , error readline.c:7:31: fatal error: readline/readline.h: No such file or directory #include
solution:
sudo apt-get install libreadline-dev
reference
(4) error: luarocks install image , and occur getting connection timed out for couple of hours
solution:
git clone https://github.com/torch/image.git
cd image
luarocks make image-1.1.alpha-0.rockspec
reference
(5) error: module 'hdf5' not found:No LuaRocks module found for hdf5,
while run the generate heatmap model by type “ th run-hg.lua ../data/tennis jpg”
problem:
luarocks download package through git protocol, which will use ssh protocol. So we have to convert git download protocol to https protocol.
Solotion:
git config –global url.https://.insteadOf ssh://git
vim ~/.gitconfig
To certain .gitconfig like:
[url “https://”]
insteadOf = git://
(最好不要再添加别替换,否则会产生多重替换而我们看不出来。有时候我们在output_log里面看到依然git://github.com,但是这并不一定真实,git://被替换为https://有时候不会显式出来)
then type:
luarocks install hdf5
#it will print nothing, but running in background.
luarocks intsll hdf5 --verbose
#It will print all the imformation when downloading and compiling.
Reference
(6) warning: Failed loading manifest while type ”luarocks list”
Failed loading manifest for /home/werner/.luarocks/lib/luarocks/rocks: ~/.luarocks/lib/luarocks/rocks/manifest: No such file or directory
Solution:
mkdir -p ~/.luarocks/lib/luarocks/rocks
luarocks-admin make-manifest --local-tree --tree=$HOME/.luarocks
referrene
(7) error: getrf : Lapack library not found in compile time
solution:
git clone https://github.com/xianyi/OpenBLAS.git
cd OpenBLAS
make NO_AFFINITY=1 USE_OPENMP=1
sudo make install
then:
CMAKE_LIBRARY_PATH=/opt/OpenBLAS/include:/opt/OpenBLAS/lib:$CMAKE_LIBRARY_PATH
luarocks install torch
按照以上步骤就能解决问题,网上大多数人都能解决问题。但我们的机器依然报错。
Reference
后来我查看luarocks install torch输出发现:
OpenBlas detected
It seems OpenBlas has not been compiled with Lapack support
Then I try:
sudo apt-get install liblapack-dev
reinstall OpenBlas, then I found following information in top output:
OpenBLAS: Detecting fortran compiler failed. Cannot compile LAPACK. Only compile BLAS.
Google it found:
Reference
error OpenBLAS: Detecting fortran compiler failed. Please install fortran compiler, e.g. gfortran, ifort.
So,
sudo apt-get install gfortran
Then reinstall OpenBlas , it resolved.