警告
WARNING:root:This caffe2 python run does not have GPU support. Will run in CPU only mode.
出現(xiàn)上面的問題的話, 首先看看是不是沒有安裝NCCL, 如果沒有安裝的話, 安裝以后應(yīng)該就能好使
報(bào)錯(cuò)
使用下面的指令測(cè)試caffe安裝是否成功
python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"
如果返回Failure
, 那么進(jìn)入python, 并執(zhí)行相關(guān)語句獲得更準(zhǔn)確的錯(cuò)誤信息
$ python
Python 3.5.4 |Continuum Analytics, Inc.| (default, Aug 14 2017, 13:26:58)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from caffe2.python import core
WARNING:root:This caffe2 python run does not have GPU support. Will run in CPU only mode.
CRITICAL:root:Cannot load caffe2.python. Error: /home/zerozone/.pyenv/versions/anaconda3-5.0.1/envs/a3py3.5/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/zerozone/.pyenv/versions/a3py3.5/lib/python3.5/site-packages/caffe2/python/caffe2_pybind11_state.cpython-35m-x86_64-linux-gnu.so)
這里我首先出現(xiàn)了如下錯(cuò)誤:
CRITICAL:root:Cannot load caffe2.python. Error: /home/zerozone/.pyenv/versions/anaconda3-5.0.1/envs/a3py3.5/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/zerozone/.pyenv/versions/a3py3.5/lib/python3.5/site-packages/caffe2/python/caffe2_pybind11_state.cpython-35m-x86_64-linux-gnu.so)
根據(jù)提示, 是位于路徑home/zerozone/.pyenv/versions/anaconda3-5.0.1/envs/a3py3.5/bin/../lib/
中的 libstdc++.so.6
版本中沒有GLIBCXX_3.4.20
導(dǎo)致出錯(cuò), 那么我們就先進(jìn)入該路徑:
$cd home/zerozone/.pyenv/versions/anaconda3-5.0.1/envs/a3py3.5/bin/../lib/
$strings strings ./libstdc++.so.6 | grep 'GLIBCXX' # 使用該指令可以看到當(dāng)前擁有的版本號(hào)
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
可以看到, 確實(shí)缺少了3.4.20 版本, 那么該怎么辦?
如果你使用的是Anaconda, 那么就可以看看/home/zerozone/.pyenv/versions/anaconda3-5.0.1/lib
路徑下的libstdc++.so.6
版本是否有我們需要的, 如果沒有使用的話, 也可以看看/usr/lib/x86_64-linux-gnu/
或 /usr/lib/
路徑下的版本號(hào), 總之, 只要有任何一個(gè)擁有3.4.20版本, 我們都可以將其拷貝到home/zerozone/.pyenv/versions/anaconda3-5.0.1/envs/a3py3.5/bin/../lib/
中, 以替換缺少版本的libstdc++.so.6
$strings /usr/lib/libstdc++.so.6 | grep 'CXXABI'
或者
$strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep 'CXXABI'
或者
$strings /home/zerozone/.pyenv/versions/anaconda3-5.0.1/lib/libstdc++.so.6 | grep 'CXXABI'
# 使用cp指令進(jìn)行復(fù)制, 復(fù)制任何一個(gè)都可以, 只要包含版本3.4.20
cp /home/zerozone/.pyenv/versions/anaconda3-5.0.1/lib/libstdc++.so.6 home/zerozone/.pyenv/versions/anaconda3-5.0.1/envs/a3py3.5/bin/../lib/
接下來在繼續(xù)試試import, 發(fā)現(xiàn)報(bào)錯(cuò)如下, 該錯(cuò)誤和上面的錯(cuò)誤是一毛一樣的, 所以用同樣的辦法就可以解決, 只不過庫文件的名字和版本號(hào)不同而已
CRITICAL:root:Cannot load caffe2.python. Error: /home/zerozone/.pyenv/versions/a3py3.5/lib/python3.5/site-packages/caffe2/python/../../torch/lib/libgomp.so.1: version `GOMP_4.0' not found (required by /home/zerozone/.pyenv/versions/a3py3.5/lib/python3.5/site-packages/caffe2/python/../../torch/lib/libcaffe2.so)
Detectron ops lib not found; make sure that your Caffe2 version includes Detectron module
造成該錯(cuò)誤的原因主要是沒有找到 libcaffe2_detectron_ops_gpu.so
, 有兩個(gè)選擇, 將 libcaffe2_detectron_ops_gpu.so
所在的路徑添加到PYTTHONPATH中即可解決
export PYTHONPATH=$PYTHONPATH:/home/zerozone/Works/Competition/DF/pytorch/build