Ubuntu 16.04์ ์์ค์์ caffe2๋ฅผ ์ค์นํ๊ณ python2 detectron/tests/test_spatial_narrow_as_op.py
๋ก ํ
์คํธํ๋ ค๊ณ ์๋ํ ํ ๋ค์์ ์ป์ต๋๋ค.
No handlers could be found for logger "caffe2.python.net_drawer"
net_drawer will not run correctly. Please install the correct dependencies.
E0207 16:36:41.320443 4125 init_intrinsics_check.cc:59] CPU feature avx is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.
Traceback (most recent call last):
File "detectron/tests/test_spatial_narrow_as_op.py", line 88, in <module>
utils.c2.import_detectron_ops()
File "/home/gene/detectron/lib/utils/c2.py", line 41, in import_detectron_ops
detectron_ops_lib = envu.get_detectron_ops_lib()
File "/home/gene/detectron/lib/utils/env.py", line 73, in get_detectron_ops_lib
'version includes Detectron module').format(detectron_ops_lib)
AssertionError: Detectron ops lib not found at '/usr/local/lib/python2.7/dist-packages/lib/libcaffe2_detectron_ops_gpu.so'; make sure that your Caffe2 version includes Detectron module
๊ทธ๋ฌ๋ ๊ฐ์ง๊ธฐ ๋ชจ๋์ modules
ํด๋์ ์์ต๋๋ค. caffe2๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ํฌํจ๋์๋์ง ํ์ธํ๊ธฐ ์ํด caffe2๋ฅผ ์ค์นํ๊ธฐ ์ ์ CMakeList๋ฅผ ์ด๋ป๊ฒ๋ ์์ ํด์ผ ํฉ๋๊น?
PYTHONPATH
ํ๊ฒฝ ๋ณ์: /usr/local:/home/ubuntu/caffe2/buildpython --version
์ถ๋ ฅ: 2.7.12๋๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค. ๋ฌธ์ ๋ ์์์ต๋๋ค. ๊ฐ๋จํ๊ณ ์ด๋ฆฌ์๊ฒ๋ ๋ด PYTHONPATH์ ์คํ๊ฐ ์์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ ๊ณ ์ณค๊ณ ์ด์ ์ ๋๋ก ์๋ํฉ๋๋ค. ์ด ํ๋ฅญํ ์๋ฃ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
์ค์นํ๋ ๋์ ๋ชจ๋ ๋ช ๋ น์ ์ ์ด ๋์์ผ๋ฏ๋ก ์ด๊ฒ์ด ๋ฒ๊ทธ ์ฐ๊ตฌ์ ๋์์ด ๋ ์ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. ํด๊ฒฐํ์ ๊ฑฐ ๋ดค์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ์ง์นจ์ผ๋ก ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ๋์์ด ๋ ์ ์์ต๋๋ค. ๋ชจ๋์๊ฒ ํ์ด์ ๋น๋๋ค!
Caffe2 ๋ฌธ์ ์
sudo dpkg -i nvidia-diag-driver-local-repo-ubuntu1604_375.66-1_amd64.deb
sudo apt-get update && sudo apt-get install wget -y --no-install-recommends
sudo apt-get update
sudo apt-get install -y --no-install-recommends build-essential cmake git libgoogle-glog-dev libgtest-dev libiomp-dev libleveldb-dev liblmdb-dev libopencv-dev libopenmpi-dev libsnappy-dev libprotobuf-dev openmpi-bin openmpi-doc protobuf-compiler python-dev python-pip
sudo pip install setuptools future numpy protobuf enum networkx
sudo apt-get install -y --no-install-recommends libgflags-dev
๋งํฌ: http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/
์ต์ ๋ฒ์ ์ ๊ฒ์ํฉ๋๋ค. ๊ฐ๋ฅํ ๊ฒฝ์ฐ cuda 8์ ์ฌ์ฉํ์ญ์์ค. cuda-repo-ubuntu1604_8.0.61-1_amd64.deb๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
wget "http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/..." //add selected file name
sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda-8-0
์ต์ ๋ฒ์ ๊ฒ์: https://developer.nvidia.com/cudnn
wget http://developer.download.nvidia.com/compute/redist/cudnn/v5.1/cudnn-8.0-linux-x64-v5.1.tgz
sudo tar -xzf cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local
rm cudnn-8.0-linux-x64-v5.1.tgz && sudo ldconfig
Caffe2์ ๋น ๋ฅธ ๊ฐ๋ฐ๋ก ์ธํด ์ ์ฅ์๋ฅผ ๋ง์ง๋ง ๋น๋ ์ ๋ฌ ๋ฒ์ ์ผ๋ก ์ฌ์ค์ ํด์ผ ํ ์๋ ์์ต๋๋ค. Caffe2 GitHub ์ ์ฅ์ ์์ ํ์ธํ ์ ์์ต๋๋ค. README.md ์๋จ์ ์๋ ๋น๋ ํต๊ณผ/์คํจ ์์ด์ฝ์ ํด๋ฆญํฉ๋๋ค. ์ผ์ชฝ์์ ๋ง์ง๋ง ๋น๋๋ฅผ ํ์ธํ๊ณ ๋ง์ง๋ง ํต๊ณผ ๋น๋๋ฅผ ์ ํํ ์ ์์ต๋๋ค. ๋น๋๋ฅผ ํด๋ฆญํ๊ณ ์ปค๋ฐ ๋ฒํธ๋ฅผ ๋ณต์ฌํฉ๋๋ค.
Go to your selected installation directory: cd directory
git clone --recursive https://github.com/caffe2/caffe2.git && cd caffe2
git reset --hard $COMMIT_NUMBER //unnecessary when builds passing
sudo make -j16 //exchange 16 by your number of cores
cd build && sudo make install
๋ค์ ํ์ .bashrc์ ์ถ๊ฐํ์ญ์์ค.
export PYTHONPATH=/usr/local
export PYTHONPATH=$PYTHONPATH:/home/ubuntu/caffe2/build
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
Caffe2 ์ค์น ํ ์คํธ:
python2 -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"
GPU ์ค์น๋ฅผ ํ ์คํธํฉ๋๋ค. ๋ฐํ ๊ฐ์ 0๋ณด๋ค ์ปค์ผ ํฉ๋๋ค.
python2 -c 'from caffe2.python import workspace; print(workspace.NumCudaDevices())'
sudo pip install numpy>=1.13 pyyaml>=3.12 matplotlib opencv-python>=3.2 setuptools Cython mock scipy
sudo git clone https://github.com/cocodataset/cocoapi.git $WANTED-DIRECTORY/cocoapi
cd $WANTED-DIRECTORY/cocoapi/PythonApi
sudo -H make install
sudo python setup.py install
.bashrc์ ๋ผ์ธ ์ถ๊ฐ:
export COCOAPI=$WANTED-DIRECTORY/cocoapi
์ด ๋๋ ํ ๋ฆฌ์ coco ์น์ฌ์ดํธ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ด๋ก๋ํ๋ ๊ฒ์ ์์ง ๋ง์ญ์์ค. ๋ฐ์ดํฐ README.md์ ์ค๋ช ๋ ๊ตฌ์กฐ
git clone https://github.com/facebookresearch/detectron detectron
cd detectron/lib && sudo make -j16
์ค์น ํ์ธ
python2 detectron/tests/test_spatial_narrow_as_op.py
๋๋ ๋ด๊ฐ ์ด๋ค ์ฌ๋๋ค์ ๋์ธ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค :)
@genekogan
AWS์ AMI ํ๋ซํผ์์ ํ์ง๊ธฐ๋ฅผ ๊ตฌ์ถํ๋ ค๊ณ ํ ๋๋ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋ด PYTHONPATH๊ฐ ์ฌ๋ฐ๋ฅธ์ง ํ์คํ์ง ์์ต๋๋ค.
์ฌ๊ธฐ ๋ด PYTHONPATH๊ฐ ์์ต๋๋ค:/home/ec2-user/src/caffe2/build
"build" ๋๋ ํ ๋ฆฌ์ ๋ฌด์์ด ํฌํจ๋์ด์ผ ํ๋์ง ๊ถ๊ธํฉ๋๋ค.
๋ด "๋น๋" ๋๋ ํ ๋ฆฌ์ ํฌํจ๋ ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ทธ๋ค์ ๋น์ ๊ณผ ๋์ผํฉ๋๊น?
๊ฐ์ฌ ํด์!
${CAFFE2_ROOT}/build๋ฅผ ํฌํจํ๋๋ก PYTHONPATH ๋๋ pth ํ์ผ ์ค์
์ฌ์ฉ์ ์ง์ Caffe2 CPU ๋๋ GPU ์ฐ์ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐพ์ ์ ์์: AssertionError: '/path/to/to/detectron/build/libcaffe2_detectron_custom_ops_gpu.so'์์ ์ฌ์ฉ์ ์ง์ ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐพ์ ์ ์์ง๋ง test_zero_even_op.py๋ฅผ ์คํํ ๋ ๋ฐ๊ฒฌ๋์ง๋ง ๋ค๋ฅธ ํ ์คํธ๋ ํต๊ณผํ ์ ์์, Detectron ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ : /usr/local/lib/libcaffe2_detectron_ops_gpu.so๋ฅผ ์ฐพ์์ต๋๋ค. ์์ด๋์ด ์ข ์ฃผ์๊ฒ ์ด์?
@genekogan ๋์์ฃผ์๊ฒ ์ด์? ์ผ๋ฐ ํ ์คํธ๋ ๋ชจ๋ "/usr/local/lib/libcaffe2_detectron_ops_gpu.so found" ์ ๋ณด์ ํจ๊ป ํต๊ณผํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ฉ์ ์ง์ ์์ ์ ํ ์คํธํ๊ณ test_zero_even_op.py๋ฅผ ์คํํ๋ฉด "Custom ops lib not found at '/path/to/to/detectron/build/libcaffe2_detectron_custom_ops_gpu" ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
@ ym547559398 ๋๋ ๋น์ ์ด ์ป๋ ํน์ ์ค๋ฅ๊ฐ ํ์คํ์ง ์์ต๋๋ค. @huhai463127310์ด ๋งํ ๋๋ก ๋ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ${CAFFE2_ROOT}/build๋ฅผ ํฌํจํ๋๋ก PYTHONPATH๋ฅผ ์ค์ ํ๋์ง ํ์ธํ์ธ์.
@genekogan ๊ฐ์ฌํฉ๋๋ค! ๋๋ ๊ทธ๊ฒ์ ํด๊ฒฐํ๋ค. ์์ฃผ ๊ฐ๋จํ ๊ฐ๋ฑ~
caffe2๊ฐ pytorch์ ํตํฉ๋์์ผ๋ฏ๋ก ์ฌ์ ํ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ต์ ์์ค์์ pytorch๋ฅผ ์ปดํ์ผํ์ง๋ง detetron simple_infer๋ฅผ ์คํํ๋ฉด ์ฌ์ ํ detectron_ops๋ฅผ ์ฐพ์ง ๋ชปํ๋ ๊ฒ์ ๋ํด ๋ถํํฉ๋๋ค(๋ด ๊ฒฝ์ฐ์๋ GPU ์์)
@mehditlili PYTHONPATH๋ฅผ ์ค์ ํ์ จ์ต๋๊น? ์๋๋ฉด ํ์ฅ๋ ์์ ์ด ๋ถ์กฑํ๋ค๊ณ ์๊ฐํ๊ณ ์์ ํด๋๋ฅผ ์ฌ์ฉํ๊ณ ํ์ฅ๋ ์์ ์ ๋น๋ํ๋ ๋ฐฉ๋ฒ์ ๋์์ด ๋๋ ๊ฐ์ด๋๊ฐ ์์ต๋๊น?
@mattifrind
conda๋ฅผ ํตํ pytorch/caffe2 ๋ฐฐํฌ๋ ๊ณต์์ ์ด๋ฏ๋ก ํด๋น ops ๋ชจ๋์ ์ฐพ๊ธฐ ์ํ ์ถ๊ฐ ์ค์ ์ด ์์ด์ผ ํฉ๋๋ค. libcaffe2_detectron_ops_gpu.so
๋ ํ์ค PATH ํ๊ฒฝ์ ํตํด ์ฐพ์ ์ ์์ง๋ง pytorch ์ค์น ๊ฒฝ๋ก๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ์ ๊ฐ์
์์ด ๊ฒ์๋์ด์ผ ํฉ๋๋ค. ๋ฐํ์์ pytorch sys.path.insert(0, torch.__path__[0]
์ ์ค์น ๊ฒฝ๋ก๋ฅผ ์ฝ์
ํ๊ธฐ
๋ด ๋ฌธ์ ๋ Detectron์ด ๋ถ๋ช ํ Caffe2/core์ ํค๋ ํ์ผ์ ์ํ์ง๋ง Anacdona์ Pytorch ๊ณต์ ๋น๋์๋ Caffe2/core๊ฐ ํฌํจ๋์ด ์์ง ์๋ค๋ ๊ฒ์ ๋๋ค. ์ถ๊ฐ pytorch ์ค์น๋ฅผ ์ํํ๊ณ ํด๋น ๊ฒฝ๋ก๋ฅผ Caffe2_Dir์ ์ถ๊ฐํด์ผ ํฉ๋๊น?
~/.conda/envs/dl/lib/python2.7/site-packages" ๋๋ ํ ๋ฆฌ์ "torch.pth"๋ฅผ ์ถ๊ฐํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. "libcaffe2_detectron_ops_gpu.so"๊ฐ "site-packages/torch" ๋๋ ํ ๋ฆฌ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
torch.pth์๋ ํ๋์ ๊ฒฝ๋ก๋ง ํฌํจ๋์ด ์์ต๋๋ค.
/home/ruixin/.conda/envs/dl/lib/python2.7/site-packages/torch
์ถ์ : ์ด ์ค๋ฅ๋ ์๋ ๊ธฐ๋ฅ์ ์คํํฉ๋๋ค. "ops_path = os.path.join(prefix, 'lib/libcaffe2_detectron_ops_gpu.so')"๊ฐ .so ํ์ผ์ ๊ฐ์ ธ์ค๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
def get_detectron_ops_lib():
"""Retrieve Detectron ops library."""
# Candidate prefixes for the detectron ops lib path
# print("=> path list = :\n", _CMAKE_INSTALL_PREFIX, "\n", sys.prefix, '\n', sys.exec_prefix, '\n', sys.path)
prefixes = [_CMAKE_INSTALL_PREFIX, sys.prefix, sys.exec_prefix] + sys.path
# Search for detectron ops lib
# print("=> prefixes = {}".format(prefixes))
for prefix in prefixes:
ops_path = os.path.join(prefix, 'lib/libcaffe2_detectron_ops_gpu.so')
# print("=> ops_path = {}".format(ops_path))
if os.path.exists(ops_path):
# TODO(ilijar): Switch to using a logger
print('Found Detectron ops lib: {}'.format(ops_path))
break
assert os.path.exists(ops_path), \
('Detectron ops lib not found; make sure that your Caffe2 '
'version includes Detectron module')
return ops_path
@farleylai
๊ทํ์ ์ ์์ ์๋ํ์ง๋ง ์๋ํ์ง ์์๊ณ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
๋๊ตฌ๋ ์ง ์ ์ํ ๋ค๋ฅธ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
@zabatani
libcaffe2_detectron_ops_gpu.so
์ด lib/
์๋์ torch.__path__[0]
lib/
๊ฒฝ๋ก์ ์๋์ง ํ์ธํฉ๋๊น?
์ค์น์ ๋ฐ๋ผ ๋ค๋ฅธ ์์น์ ์๊ฑฐ๋ torch.__path__
์ฌ๋ฌ ํญ๋ชฉ์ด ์์ ์ ์์ต๋๋ค.
๋ด์ฉ์ ์ธ์ํ๊ณ ๋์ดํ์ฌ ์์น๋ฅผ ์ฐพ์ต๋๋ค.
๋๋ ํ๊ฒฝ ๋ณ์ PATH์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
pytorch-nightly๋ฅผ ์ค์นํ์ฌ caffe2๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ libcaffe2_detectron_ops_gpu.so
( /home/ruixin/.conda/envs/dl/lib/python2.7/site-packages/torch
์ ๊ฐ์ ์์น์ ์์)๋ฅผ /usr/lib
๋๋ ๊ฐ์ ํ๊ฒฝ์ lib
๋ณต์ฌํ๊ฑฐ๋ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค
๊ทธ๊ฒ์ ๋๋ฅผ ์ํด ์๋ํฉ๋๋ค.
PYTHONPATH ํ๊ฒฝ ๋ณ์๋ฅผ ์ถ๊ฐํ ํ: /path/to/pytorch/build, ํ ์คํธ ํต๊ณผ
@suica ๊ทธ๊ฒ์ ๋๋ฅผ ์ํด ์ผํ์ต๋๋ค. /ur/lib
๋งํฌ๋ฅผ ๋ฃ์ ์ ์์ผ๋ฉฐ virtualenv ๋์ conda๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ /path/to/conda/env/lib
๋ฃ๊ณ ์๋ํฉ๋๋ค. ๊ฐ์ฌ ํด์!
@genekogan ๊ฐ์ฌํฉ๋๋ค! ์์ฃผ ๊ฐ๋จํ ๊ฐ๋ฑ์ ํด๊ฒฐํ์ต๋๋ค~
๋ฐ์ํ ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ์ต๋๊น?
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ง๋ง colab์์ ์ด๋ค ์์ด๋์ด๊ฐ ์์ต๋๊น?
@genekogan ๋์์ฃผ์๊ฒ ์ด์? ์ผ๋ฐ ํ ์คํธ๋ ๋ชจ๋ "/usr/local/lib/libcaffe2_detectron_ops_gpu.so found" ์ ๋ณด๋ฅผ ์ ๋ฌํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ฉ์ ์ง์ ์์ ์ ํ ์คํธํ๊ณ test_zero_even_op.py๋ฅผ ์คํํ๋ฉด "์ฌ์ฉ์ ์ง์ ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ '/path/to/to/detectron/build/libcaffe2_detectron_custom_ops_gpu์์ ์ฐพ์ ์ ์์ต๋๋ค"๋ผ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ์ จ๋์ง ์๋ ค์ฃผ์ค ์ ์๋์? ์ ๋ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค
@genekogan ๋์์ฃผ์๊ฒ ์ด์? ์ผ๋ฐ ํ ์คํธ๋ ๋ชจ๋ "/usr/local/lib/libcaffe2_detectron_ops_gpu.so found" ์ ๋ณด๋ฅผ ์ ๋ฌํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ฉ์ ์ง์ ์์ ์ ํ ์คํธํ๊ณ test_zero_even_op.py๋ฅผ ์คํํ๋ฉด "์ฌ์ฉ์ ์ง์ ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ '/path/to/to/detectron/build/libcaffe2_detectron_custom_ops_gpu์์ ์ฐพ์ ์ ์์ต๋๋ค"๋ผ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ์ จ๋์ง ์๋ ค์ฃผ์ค ์ ์๋์? ์ ๋ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค
ํด๊ฒฐํ ์ ์์ต๋๋ค, ์ฃ์กํฉ๋๋ค.
๋ค์์ ์ฌ์ฉํ์ฌ ๋คํธ์ํฌ๋ฅผ ํ๋ จํ๋ ค๊ณ ํ ๋๋ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
python2 ๋๊ตฌ/train_net.py \
--cfg ๊ตฌ์ฑ/DensePose_ResNet50_FPN_single_GPU.yaml \
OUTPUT_DIR /tmp/๊ฒ์ถ๊ธฐ ์ถ๋ ฅ
Detectron ๋ฐ caffe2 ์ค์น ํ
์คํธ ๋ชจ๋ ์ฑ๊ณต์ ์ผ๋ก ํต๊ณผํ์ต๋๋ค.
์ค๋ฅ ์ถ๋ ฅ:
๋ฐ๊ฒฌ๋ Detectron ops ๋ผ์ด๋ธ๋ฌ๋ฆฌ: /usr/local/lib/python2.7/site-packages/torch/lib/libcaffe2_detectron_ops_gpu.so
์ญ์ถ์ (๊ฐ์ฅ ์ต๊ทผ ํธ์ถ ๋ง์ง๋ง):
ํ์ผ "/usr/local/densepose/tools/train_net.py", 35ํ,
c2_utils.import_custom_ops()
import_custom_ops์ ํ์ผ "/usr/local/densepose/detectron/utils/c2.py", 39ํ
custom_ops_lib = envu.get_custom_ops_lib()
get_custom_ops_lib์ ํ์ผ "/usr/local/densepose/detectron/utils/env.py", 85ํ
'\'{}\''.format(custom_ops_lib)์์ ์ฌ์ฉ์ ์ง์ ์์
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
AssertionError: '/usr/local/densepose/build/libcaffe2_detectron_custom_ops_gpu.so'์์ ์ฌ์ฉ์ ์ง์ ์์
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
@genekogan ๊ฐ์ฌํฉ๋๋ค! ๋๋ ๊ทธ๊ฒ์ ํด๊ฒฐํ๋ค. ์์ฃผ ๊ฐ๋จํ ๊ฐ๋ฑ~
@genekoganไฝ ่ฝๅธฎๅธฎๆๅ๏ผไธ่ฌๆต่ฏๅ จ้จ้่ฟไฟกๆฏ"/usr/local/lib/libcaffe2_detectron_ops_gpu.so ๋ฐ๊ฒฌ.ๅจ'/ path / to / to / detectron / build / libcaffe2_detectron_custom_ops_gpuไธญๆพๅฐ่ชๅฎไนๆไฝๅบโใ
์ด ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ์ จ๋์ง ๋ง์ํด ์ฃผ์๊ฒ ์ต๋๊น? ๋๋ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค
๊ทธ๋ฆฌ๊ณ 'libcaffe2_detectron_custom_ops_gpu.so' ํ์ผ์ ์ฐพ์ ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. caffe2/pytorch๊ฐ PYTHONPATH ํ๊ฒฝ ๋ณ์์ ์๋์ง ํ์ธํ์ต๋๋ค.
ํด๊ฒฐ์ฑ ์ ์ฐพ์์ต๋๋ค
/๋ผ์ด๋ธ๋ฌ๋ฆฌ/densepose/detectron/utils/env.py์ ๋ํ ๊ฒฝ๋ก
19ํ ํธ์ง
_CMAKE_INSTALL_PREFIX = '/usr/lib'
์๊ฒ
_CMAKE_INSTALL_PREFIX = 'cmake ๋๋ setup.py ํ์ผ์ ์ฌ์ฉํ์ฌ ๋น๋ํ pytorch์ lib ํด๋ ๊ฒฝ๋ก/'
๊ทธ๋ฆฌ๊ณ ๋ค์ ์คํ:)
caffe2์ detectron ๋ชจ๋์ด ์์ต๋๋ค. pytorch๋ฅผ ํตํด caffe2๋ฅผ ์ค์นํ์ต๋๋ค. ์ ๋๋ก ์ค์น๋๊ณ ์์ง๋ง ๊ฐ์ง๊ธฐ ๋ชจ๋์ด ์์ต๋๋ค. ๋์์ ๋ฐ์ ์ ์๋์?
๋ฏธ๋ฆฌ ๊ฐ์ฌ๋๋ฆฝ๋๋ค
์ฌ๋ฌ๋ถ, ์ด ์ฝ๋ ๋ธ๋ก์ ๋ชฉํ๋ "libcaffe2_detectron_ops_gpu.so" ํ์ผ์ ์ฐพ๋ ๊ฒ์
๋๋ค.
", ๊ทธ๋์ ๊ทธ๋ฅ ์ด๋ ๊ฒ ํ์ธ์:
@genekogan ๊ฐ์ฌํฉ๋๋ค! ๋๋ ๊ทธ๊ฒ์ ํด๊ฒฐํ๋ค. ์์ฃผ ๊ฐ๋จํ ๊ฐ๋ฑ~
๊ทธ๊ฒ์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ, ๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค, ๊ฐ์ฌํฉ๋๋ค
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ค์นํ๋ ๋์ ๋ชจ๋ ๋ช ๋ น์ ์ ์ด ๋์์ผ๋ฏ๋ก ์ด๊ฒ์ด ๋ฒ๊ทธ ์ฐ๊ตฌ์ ๋์์ด ๋ ์ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. ํด๊ฒฐํ์ ๊ฑฐ ๋ดค์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ์ง์นจ์ผ๋ก ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ๋์์ด ๋ ์ ์์ต๋๋ค. ๋ชจ๋์๊ฒ ํ์ด์ ๋น๋๋ค!
์์คํ ์ ๋ณด
์ค์น
Caffe2 ๋ฌธ์ ์
NVIDIA ๋๋ผ์ด๋ฒ ์ ๋ฐ์ดํธ
๋๋ผ์ด๋ฒ ๋ค์ด๋ก๋
์ข ์์ฑ ์ค์น
์ฟ ๋ค ์ค์น
๋งํฌ: http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/
์ต์ ๋ฒ์ ์ ๊ฒ์ํฉ๋๋ค. ๊ฐ๋ฅํ ๊ฒฝ์ฐ cuda 8์ ์ฌ์ฉํ์ญ์์ค. cuda-repo-ubuntu1604_8.0.61-1_amd64.deb๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
cuDNN ์ค์น
์ต์ ๋ฒ์ ๊ฒ์: https://developer.nvidia.com/cudnn
์นดํ2 ์ค์น
Caffe2์ ๋น ๋ฅธ ๊ฐ๋ฐ๋ก ์ธํด ์ ์ฅ์๋ฅผ ๋ง์ง๋ง ๋น๋ ์ ๋ฌ ๋ฒ์ ์ผ๋ก ์ฌ์ค์ ํด์ผ ํ ์๋ ์์ต๋๋ค. Caffe2 GitHub ์ ์ฅ์ ์์ ํ์ธํ ์ ์์ต๋๋ค. README.md ์๋จ์ ์๋ ๋น๋ ํต๊ณผ/์คํจ ์์ด์ฝ์ ํด๋ฆญํฉ๋๋ค. ์ผ์ชฝ์์ ๋ง์ง๋ง ๋น๋๋ฅผ ํ์ธํ๊ณ ๋ง์ง๋ง ํต๊ณผ ๋น๋๋ฅผ ์ ํํ ์ ์์ต๋๋ค. ๋น๋๋ฅผ ํด๋ฆญํ๊ณ ์ปค๋ฐ ๋ฒํธ๋ฅผ ๋ณต์ฌํฉ๋๋ค.
ํ๊ฒฝ ๋ณ์ ์ค์
๋ค์ ํ์ .bashrc์ ์ถ๊ฐํ์ญ์์ค.
Caffe2 ๋ฐ GPU ํ ์คํธ
Caffe2 ์ค์น ํ ์คํธ:
GPU ์ค์น๋ฅผ ํ ์คํธํฉ๋๋ค. ๋ฐํ ๊ฐ์ 0๋ณด๋ค ์ปค์ผ ํฉ๋๋ค.
Detectron ์ข ์์ฑ ์ค์น
.bashrc์ ๋ผ์ธ ์ถ๊ฐ:
์ด ๋๋ ํ ๋ฆฌ์ coco ์น์ฌ์ดํธ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ด๋ก๋ํ๋ ๊ฒ์ ์์ง ๋ง์ญ์์ค. ๋ฐ์ดํฐ README.md์ ์ค๋ช ๋ ๊ตฌ์กฐ
๋ํ ํธ๋ก ์ค์น
์ค์น ํ์ธ
๋๋ ๋ด๊ฐ ์ด๋ค ์ฌ๋๋ค์ ๋์ธ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค :)