碎碎念.......
哇!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!我终于安装成功了caffe2.
Segmentation fault (core dumped)这个问题了,翻遍全网啊什么bing\google\github.都没用啊.还有我出现的奇奇怪怪的问题,几乎都是靠我自己解决了.我真是个厉害\坚持\漂亮\顽强\善良....集所有优点于一身的的女人!!!!!!!!!
(昨晚调到两点,躺床上大脑浑浊,突然想到一个可能的方法,就睡不着,干脆爬起来试一试.....额...尝试到两点五十,没用,哈哈哈哈.真是笑死我了.跟自己说早上最多一上午解决,不行就直接删了重建一次一次环境.今早我就不信邪(主要是我什么用pytorch的build\setup和caffe2的build\setup以及各种野方法试了不下十遍了,也重建了好几个虚拟环境,最好的结果也就是1)import caffe2可以 import caffe2.python可以 from caffe2.python import core 就是 分段故障(核心转储)
2)import caffe2可以 import caffe2.python分段故障(核心转储),
刚刚我又灵光一现(其实一大早就现了),但我总想着网上或者作者的解决办法,就放后了,真真是都不行了,我试了试我的灵光.
哈哈哈哈.果然还是个优秀的女人.)
Table of Contents
7.Note libgflags2 is for Ubuntu 14.04. libgflags-dev is for Ubuntu 16.04.
一 安装caffe2
因为我搜了太多资料,所以记录下tips,或许你们可以去试试第二部分的内容,但我凭着一股倔劲,用这个方法安好了.想安装caffe2,有三种方法,要安装detectron的话一般是:
1) 这个方法,这是个轻量级的script,大概是说这个安装比较安全的,比较好,但好像也会出错吧,我试了一遍,出错我没改,但有人提出的解决办法是添加 -DUSE_OPENCV=OFF -DCUDA_HOME=/usr/local/cuda在下面命令下.具体参考其他人吧.
./scripts/build_anaconda.sh --install-locally --cuda 8.0 --cudnn 7
2) caffe2. 这个需要先build一下,但我没成功.这种下载完你会发现caffe2下只有三个.txt文件;因为隐藏了.ctrl+h可以显示.
3) pytorch.
这个有教程是建立build 再cmake 巴拉巴拉的;;还有python setup.py install 添加各种flags的,巴拉巴拉.
这里只记录我成功的,还有一些问题.要没问题直接走
官网方法安装:地址
- 1) 默认已经安装anaconda,cuda,cudnn;没安装的可参考https://blog.youkuaiyun.com/m0_37644085/article/details/81837410的前几部分或者你直接看官网就好了.
- 2) gcc 版本
- 3) nccl 安装
- 4) opencv 版本
- 5) cmake 版本
- 6) Install Dependencies
- 7) Note
libgflags2
is for Ubuntu 14.04.libgflags-dev
is for Ubuntu 16.04. - 8) Clone & Build
- 9)非常好的caffe2 官方技巧\问题集锦
- 10)可忽略,安装错误记录
1. anaconda,cuda,cudnn
2. gcc 版本
caffe2的cuda8预编译是gcc4.9以上的. gcc4.9以下的只有cuda9和cpu版本,而ubuntu14的gcc为4.8.对于gcc4.8和cuda8的caffe2没有预编译.先升级gcc.
1)安装
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
#如果是从来没有安装出错,则需要安装必要的依赖。
sudo apt-get install software-properties-common
sudo apt-get upgrade
sudo apt-get install gcc-4.9 g++-4.9
#还有个一步到位的,可尝试
sudo apt-get update && \
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && \
sudo apt-get update && \
sudo apt-get install software-properties-common -y && \
sudo apt-get upgrade && \
sudo apt-get install gcc-4.9 g++-4.9 -y
2) 安装完成之后,可以查看一下此时的版本号。
gcc -v
Thread model: posix
gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
3)优先级.(可以改环境变量,没这个方便)
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9 gcc-4.9优先60
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8 gcc-4.8优先50
4) 切换
查看被update-alternatives管理的gcc不同版本,
sudo update-alternatives --query gcc
使用如下命令选择gcc版本:
sudo update-alternatives --config gcc
会打印出如下提示:
有 2 个候选项可用于替换 gcc (提供 /usr/bin/gcc)。
选择 路径 优先级 状态
------------------------------------------------------------
* 0 /usr/bin/gcc-4.9 60 自动模式
1 /usr/bin/gcc-4.8 50 手动模式
2 /usr/bin/gcc-4.9 60 手动模式
要维持当前值[*]请按回车键,或者键入选择的编号:
你还可以用
#方法2:命令行设置cmake参数
cmake -D CMAKE_C_COMPILER=/usr/local/bin/gcc-4.9 -D CMAKE_CXX_COMPILER=/usr/local/bin/g++-4.9 ..
#方法3:在CMakeList中设置变量
set(CMAKE_C_COMPILER "/usr/local/bin/gcc-4.9")
set(CMAKE_CXX_COMPILER "/usr/local/bin/g++-4.9")
备注:gcc6:
sudo apt-get update && \
sudo apt-get install build-essential software-properties-common -y && \
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && \
sudo apt-get update && \
sudo apt-get install gcc-snapshot -y && \
sudo apt-get update && \
sudo apt-get install gcc-6 g++-6 -y && \
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-6 && \
sudo apt-get install gcc-4.8 g++-4.8 -y && \
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8;
3.安装对应系统的nccl
(不想安装的话,执行命令添加-DUSE_NCCL=ON,建议安装,不安装的话后来多GPU训练可能会有问题,就是安装带nccl的caffe2)
(参考http://blog.fangchengjin.cn/ubuntu-nccl2.html https://blog.youkuaiyun.com/zuyuhuo6777/article/details/81450258
1) 确保您的环境符合以下要求:
glibc 2.19或更高 .
CUDA 8.0或更高版本
NCCL支持所有具有3.0或更高计算能力的CUDA设备。查看所有NVIDIA GPU的计算能力?查看另一篇博文
2)安装NCCL
为了下载NCCL,请确保您已注册NVIDIA开发者账号。
打开NVIDIA NCCL主页。