fbcunn在Ubuntu 14.04下安装可能出现的问题以及解决方法
2017-08-01 23:29
1001 查看
fbcunn在Ubuntu 14.04下安装可能出现的问题以及解决方法
在Ubuntu 14.04环境下,按照官网安装教程安装fbcunn,,可能会出现不少的问题,在这我将分享我所遇到的一些问题以及解决过程,希望能帮到和我一样遇到类似问题的朋友。一、安装CUDA与Torch
因为我在安装fbcunn时已经使用了一段时间的Torch,按照官网安装教程的步骤安装CUDA与Torch应该没什么大的问题,如若在这一步遇到问题,可另行百度或谷歌,在此就不赘述CUDA与Torch的安装过程。二、安装folly,fbthrift,thpp,fblualib
按照官网安装教程,可用以下命令进行安装curl -sk https://raw.githubusercontent.com/soumith/fblualib/master/install_all.sh| bash -e
但貌似该安装文件install_all.sh已经过时,安装的版本对不上,soumith更新了另一个版本的install_all.sh,链接如下
https://github.com/facebook/fblualib/blob/master/install_all.sh
可以将其下载到本地执行。虽然是soumith对install_all.sh进行了更新,但仍可能会出现以下问题。
(1)libboost-all-dev用apt-get无法安装
可先用apt-get安装aptitude,然后使用aptitude安装libboost-all-devsudo apt-get install aptitude
sudo aptitude install libboost-all-dev
(2)Invalid gtest-1.7.0.zip
查看thpp中的build.sh文件,可以看出没有下载到有效的gtest-1.7.0.zip,于是我尝试在windows中用迅雷下载gtest-1.7.0.zip,确实能下载到gtest-1.7.0.zip,网上还要另一种解决方案,是用curl命令下载以下链接https://github.com/google/googletest/archive/release-1.7.0.zip中的文件,并改名gtest-1.7.0.zip,下载完后,将gtest-1.7.0.zip移动到与build.sh所在的文件夹中,并注释掉build.sh中用于删除和重新下载getst-1.7.0.zip的两行代码。
三、安装fbcunn
(1) No LuaRocks module found for fb.torch.async_rng
当执行完安装教程中安装fbcunn的第三步git clone https://github.com/facebook/fbnn.git && ( cd fbnn && luarocks make rocks/fbnn-scm-1.rockspec )
我尝试require一下fbnn,确认fbnn是否正确安装
然而并没有,问题出现在安装fblualib时没有把fblualib中的torch加上,解决这个问题可参考https://github.com/facebook/fbcunn/issues/106中ixaxaar的回答。下载最新版的fblualib,因为v1.0版的fblualib中的torch没有rockspec文件夹,可以将最新版的fblualib中的torch的rockspec文件夹移到v1.0中,同时对torch中的AsyncRNG.cpp和fblualib的build.sh文件作相应的修改,然后重新运行build.sh文件,成功安装fblualib后,重新安装fbnn。
git clone https://github.com/facebook/fblualib.git[/code]echo ' extern "C" int luaopen_fb_torch_async_rng(lua_State* L) { LUAOPEN(L); } ' >> ./AsyncRNG.cpp(2)error:‘make_unique’ is not a member of ‘std’
当执行完安装教程中安装fbcunn的第四步安装fbcunn时git clone https://github.com/facebook/fbcunn.git && ( cd fbcunn && luarocks make rocks/fbcunn-scm-1.rockspec )
会出现error:‘make_unique’ is not a member of ‘std’,同时也给出了解决的提示,就是用folly替换掉std,
GlobalAsyncCopier.cpp
进入到fbcunn文件夹,重新运行命令即可luarocks make rocks/fbcunn-scm-1.rockspec(3)Segmentation fault (core dumped)
当fbcunn安装完后,尝试require fbcunn,确认是否正确安装,这时可能会出现Segmentationfault (core dumped)或直接出现错误undefined symbol:_ZN8facebook12deeplearning5torch30initTemporalConvolutionTBCCudaEP9lua_State。
若出现Segmentationfault (core dumped),我们需要查出运行过程中出现了什么错误,这时可使用gdb来debug,若还没安装,可使用apt-get进行安装。
这时,很可能cuda_ext.so中出现错误undefined symbol:_ZN8facebook12deeplearning5torch30initTemporalConvolutionTBCCudaEP9lua_State。(4)cuda_ext.so:undefined symbol:_ZN8facebook12deeplearning5torch30initTemporalConvolutionTBCCudaEP9lua_State
这时可使用c++filt来查出undefined symbol的定义形式
c++filt_ZN8facebook12deeplearning5torch30initTemporalConvolutionTBCCudaEP9lua_State
然后进入到src文件夹,使用grep命令查看该函数是在哪些文件中定义的
grep -irn initTemporalConvolutionTBCCuda
在InitCuda.cpp和TemporalConvolutionTBCHost.cpp中有initTemporalConvolutionTBCCuda的定义,查看一下fbcunn的CMakeFile,找到cuda_ext的编译的依赖,可见里面有InitCuda.cpp而没有TemporalConvolutionTBCHost.cpp
在CMakeFile相应位置加入TemporalConvolutionTBCHost.cpp后重新运行命令luarocks make rocks/fbcunn-scm-1.rockspec(5)cuda_ext.so:undefined symbol:_ZN8facebook12deeplearning5torch6detail38runTemporalConvolutionTBC_updateOutputEP8THCStateRKNS_4cuda12DeviceTensorIfLi3EiNS5_16DefaultPtrTraitsEEESA_SA_RKNS6_IfLi1EiS7_EE
当解决(4)之后,可能会再出现undefined symbol,同理,与(4)相似的解决方法
在CMakeFile相应位置加入TemporalConvolutionTBC.cu后重新运行命令luarocks make rocks/fbcunn-scm-1.rockspec(6)torch_fb_fbcunn_batch_norm.so:undefined symbol: _ZN3fLI7FLAGS_vE
当解决(4)(5)之后,可能还会出现undefined symbol,同理,与(4)相似的解决方法
在CMakeFile相应位置加入链接库glog后重新运行命令luarocks make rocks/fbcunn-scm-1.rockspec结语
以上是我安装时遇到的问题以及一步一步的解决方法,朋友们可以参考里面的操作,直接跳过我所遇到的错误。至此,在我的环境中已经成功安装好fbcunn,若朋友们安装时遇到了其他问题,可提出来一起探讨。
相关文章推荐
- 重装Ubuntu 14.04后使用apt-get安装build-essential(即sudo apt-get install build-essential)时出现包依赖项问题的解决方法
- 如何为虚拟电脑安装ubuntu系统以及可能出现的问题解决
- 【Caffe】Caffe,CUDA,cuDNN安装指南,以及各种问题的解决方法(Ubuntu14.04)
- 已安装好的Ubuntu启动出现 busybox initramfs 问题可能的解决方法
- 准确教小白安装ubuntu14.04以及解决可能遇到的问题
- ubuntu安装海思sdk 可能出现的问题及解决方法
- ubuntu 14.04 安装 mysql-server 及 可能出现的问题(Unknow job: mysql)和解决办法
- 转 -- VirtualBox 4.3.12安装ubuntu 14.04 分辨率过小问题的解决方法
- ubuntu 安装wineqq国际版方法及可能出现的问题
- 整理ArcSDE 安装过程出现问题以及解决方法系列
- 整理ArcSDE 安装过程出现问题以及解决方法系列
- [亲测] 解决在 ubuntu14.04 安装完 vmware 后,启动出现下列问题的解决方案
- ArcSDE 安装过程出现问题以及解决方法(转载,收藏版)
- 着力解决在Ubuntu 麒麟版 14.04上出现Android SDK Manager 更新、下载慢以及待安装包列表不显示等问题
- ubuntu10.04编译安装QT可能出现的问题和解决办法
- Ubuntu中安装sqldeveloper出现的问题及其解决方法
- FAQ: Solaris系统下安装Perl模块可能出现的问题和解决方法
- Win8.1慎用优化,可能导致安装驱动出现数据无效的问题。附解决方法
- Mandriva 2007的下载地址以及安装中可能出现问题的解决办法
- ArcSDE安装过程出现问题以及解决方法