Ubuntu18.04 实现Torch7安装而非Pytorch

首先说一下感触,如果没必要别装这个东西,有毒!!!

我的电脑配置:
CUDA10 + cudnn7.3。

Torch7官网上说是这样安装的:

git clone https://github.com/torch/distro.git ~/torch --recursive
cd ~/torch; bash install-deps;
./install.sh

克隆包,然后安装依赖,接着安装。我跟着坐结果出现这样的错误:

CUDA_cublas_device_LIBRARY (ADVANCED)    
	 linked by target "THC" in directory /home/lgdx/torch/extra

原因在于:谷歌了好久,试了很多原因(一开始以为是我cudnn的问题),后来才知道CUDA10移除了cublas。
== 所以如果你使用Torch7官网提供的教程只限于CUDA9.0-,即使安装torch安装成功(输入th可正常运行),使用luarocks安装cutorch 、cunn等包的时候一样会出现如下错误:==

recipe for target 'lib/THC/CMakeFiles/THC.dir/all' failed

所以对于CUDA10需要使用别的安装包。
+++++++++++++++++++++++++++++++++++++++++++++

Torch7 对于 CUDA10正确打开方式

删掉原有的安装包,然后从nagadomi克隆:

rm torch/
git clone https://github.com/nagadomi/distro ~/torch --recursize
cd ~/torch; bash install-deps

如果使用默认Lua版本就直接

./install.sh

如果想用Lua5.2,那么

TORCH_LUA_VERSION=LUA52 ./install.sh

这个时候安装会出现很多错误,大部分问题是这样的:

Error: File not found: rocks/*-scm-1.rockspec

*-scm-1.rockspec是torch依赖包的安装文件,具体格式可以参考某些包(比如image,trepl)的安装文件。

如果我们有这样一个文件,比如cutorch-scm-1.rockspec那么就可以使用luarocks进行安装

luarocks build cutorch-scm-1.rockspec
或
luarocks install cutorch

但是在安装torch的时候出现这个问题,有点不科学啊!所以我查看了一下它的安装文件install.sh,可以看到这些东西:

cd ${THIS_DIR}/extra/luaffifb && $PREFIX/bin/luarocks make luaffi-scm-1.rockspec       || exit 1
cd ${THIS_DIR}/pkg/sundown   && $PREFIX/bin/luarocks make rocks/sundown-scm-1.rockspec || exit 1
cd ${THIS_DIR}/pkg/cwrap     && $PREFIX/bin/luarocks make rocks/cwrap-scm-1.rockspec   || exit 1
cd ${THIS_DIR}/pkg/paths     && $PREFIX/bin/luarocks make rocks/paths-scm-1.rockspec   || exit 1
cd ${THIS_DIR}/pkg/torch     && $PREFIX/bin/luarocks make rocks/torch-scm-1.rockspec   || exit 1
cd ${THIS_DIR}/pkg/dok       && $PREFIX/bin/luarocks make rocks/dok-scm-1.rockspec     || exit 1
cd ${THIS_DIR}/exe/trepl     && $PREFIX/bin/luarocks make trepl-scm-1.rockspec         || exit 1
cd ${THIS_DIR}/pkg/sys       && $PREFIX/bin/luarocks make sys-1.1-0.rockspec           || exit 1
cd ${THIS_DIR}/pkg/xlua      && $PREFIX/bin/luarocks make xlua-1.0-0.rockspec          || exit 1
cd ${THIS_DIR}/extra/moses   && $PREFIX/bin/luarocks make rockspec/moses-1.6.1-1.rockspec || exit 1
cd ${THIS_DIR}/extra/nn      && $PREFIX/bin/luarocks make rocks/nn-scm-1.rockspec      || exit 1

cd ${THIS_DIR}/pkg/gnuplot          && $PREFIX/bin/luarocks make rocks/gnuplot-scm-1.rockspec
cd ${THIS_DIR}/exe/env              && $PREFIX/bin/luarocks make env-scm-1.rockspec
cd ${THIS_DIR}/extra/nnx            && $PREFIX/bin/luarocks make nnx-0.1-1.rockspec
cd ${THIS_DIR}/exe/qtlua            && $PREFIX/bin/luarocks make rocks/qtlua-scm-1.rockspec
cd ${THIS_DIR}/pkg/qttorch          && $PREFIX/bin/luarocks make rocks/qttorch-scm-1.rockspec
cd ${THIS_DIR}/extra/threads        && $PREFIX/bin/luarocks make rocks/threads-scm-1.rockspec
cd ${THIS_DIR}/extra/argcheck       && $PREFIX/bin/luarocks make rocks/argcheck-scm-1.rockspec

cd ${THIS_DIR}/extra/cutorch && $PREFIX/bin/luarocks make rocks/cutorch-scm-1.rockspec || exit 1
cd ${THIS_DIR}/extra/cunn    && $PREFIX/bin/luarocks make rocks/cunn-scm-1.rockspec    || exit 1

看到这些意思就很明白了,也就是说这个包提供的安装文件需要将这些附加包都安上。
所以为了节约时间,我选择的方法是直接从Github上找到响应表的包,直接克隆到相应的地址里面,这样安装的时候就可以直接通过不用再下载了。
下载地址:
cutorch、cunn、cudnn从这个地址下载:nagadom
其他的从这下载:Torch

注意: 下载位置一定要对应好:extra\、exe\、pkg\地址都不一样的。
然后继续安装:发现成功了
Ubuntu18.04 实现Torch7安装而非Pytorch_第1张图片

require 'cutorch'
require 'cunn'
require 'cudnn'

全部成功!!!

参考链接:
http://torch.ch/docs/getting-started.html#_
https://blog.csdn.net/a130737/article/details/45745467

你可能感兴趣的:(Pytorch)