[ubuntu] Caffe ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น ๋ฐฉ๋ฒ
ํฐ๋ฏธ๋์ฐฝ์ ๋จผ์ ํจ๋ค.
1. dependencies package ๋ค์ด ๋ฐ๊ธฐ
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler python-dev libgflags-dev libgoogle-glog-dev liblmdb-dev libboost-all-dev libatlas-base-dev libopenblas-dev libopencv-dev python-opencv python-pip python-dev python-protobuf build-essential
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install the python3-pip python3-dev
2. caffe ์ฝ๋ cloneํ๊ธฐ
git clone https://github.com/BVLC/caffe
2. Makefile.config ์ค์ ํ๊ธฐ
cd caffe
cp Makefile.confg.example Makefile.config
sudo vi Makefile.config
ํด๋น ํ์ผ์ ์๋์ ๊ฐ์ ๋ถ์ฌ๋ฃ๊ธฐํ๋ค.
^[[200~CPU_ONLY := 1`
OPENCV_VERSION := 3
CUSTOM_CXX := g++
CUDA_DIR := /usr/local/cuda
CUDA_ARCH :=\
-gencode arch=compute_52,code=sm_52 \
-gencode arch=compute_60,code=sm_60 \
-gencode arch=compute_61,code=sm_61 \
-gencode arch=compute_61,code=compute_61
BLAS := atlas
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/lib/python2.7/dist-packages/numpy/core/include
PYTHON_LIB := /usr/lib
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
BUILD_DIR := build
DISTRIBUTE_DIR := distribute
TEST_GPUID := 0
Q ?= @
๋ณธ ๊ธ์, cuda 11.0 ๋ฒ์ ์ ํ๊ฒฝ์ค์ ์ด๋ค. ์ฐธ๊ณ ํ๋๋ก.
a ์ ๋ ฅ ํ, ctrl + v ํ๋ฉด ๋ณต๋ถ๋๋ค. ์ฐธ๊ณ ๋ก ๋ณต์ฌํ ๋ ๋ชจ๋ ๋ค์ฌ์ฐ๊ธฐ(space, enter)๋ฅผ ์ง์ฐ๊ธฐ๋ฅผ. ๊ทธ๋ฌ์ง ์์ผ๋ฉด ์๋ฌ๊ฐ ๋๋ค.
์ฐธ๊ณ ๋ธ๋ก๊ทธ : https://knight76.tistory.com/entry/makefile4-missing-separator-Stop-%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0
:makefile:4: *** missing separator. Stop. ํด๊ฒฐํ๊ธฐ
์ค๋๋ง์ make๋ฅผ ์ฐ๋ค๋ณด๋ ์ค์ํ ๊ฒ ์๋ค. ์๋์ ๊ฐ์ ์๋ฌ๋ฅผ ๋ง๋๋ฉด ํญ(tab) ๋์ ์คํ์ด์ค(space)๊ฐ ์ฝ๋์ ์์ ์๋ค๊ณ ์๋ฆฐ๋ค. ์คํ์ด์ค๋ฅผ ์์ ๊ณ ํญ์ ์ถ๊ฐํ๋ฉด ๋ ์ด์ ์๋ฌ๊ฐ ๋ฐ์ํ์ง ์๋
knight76.tistory.com
3. make pycaffe
sudo make all
sudo make test
sudo make runtest
๋ง์ง๋ง์ ์ด๋ฐ ํ๋ฉด์ด ๋์ค๋ฉด ์ฑ๊ณต
make pycaffe
๋ง๋ค์ด์ก๋์ง ์ฌ๋ถ ํ์ธ
echo $?
0์ด ์ถ๋ ฅ๋๋ฉด ์ค์น ์๋ฃ
4. path ์ค์
export PYTHONPATH=/home/(์ฌ์ฉ์์ด๋ฆ)/caffe/python:$PYTHONPATH
๋ณธ์ธ ์ปจํ ์ด๋ ์ด๋ฆ์ ์์ฑํ๋ฉด ๋๋ค.
... ๊ทผ๋ฐ python์์ importํ ๋
Python 3.7.6 (default, Jan 8 2020, 19:59:22)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import caffe
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/2019112024/Desktop/caffe3/caffe/python/caffe/__init__.py", line 1, in <module>
from .pycaffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, RMSPropSolver, AdaDeltaSolver, AdamSolver, NCCL, Timer
File "/home/2019112024/Desktop/caffe3/caffe/python/caffe/pycaffe.py", line 13, in <module>
from ._caffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, \
ImportError: dynamic module does not define module export function (PyInit__caffe)
์ด๋ฐ ์๋ฌ๊ฐ ๋จ.