본문 바로가기

AI

[caffe] 설치하기

728x90
반응형
반응형

안녕하세요, wh입니다.

서버에서 하는 것이 아닌 임베디드에서 ai를 하게 되면

지원하는 오퍼레이터에 따라 여러가지 frame work로 구현된

model을 변환해줘야하는 경우가 많습니다.

이번에 출시할 모델의 경우에는

caffe와 tensorflow를 지원하지만, 버전이 낮아서 많은 에러사항이 있었는데요

기초적인 것이지만, 오늘은 간략하게 caffe를 설치하는 방법을 정리하고 가겠습니다.

 

목적

  모델들의 변환을 위한 caffe 설치 즉, 훈련을 위한 framwork 설치가 아니라 모델 변환을 위한 설치이기 때문에 gpu를 활용하는 버전을 설치할 필요가 없습니다. 자 그럼 시작해 볼까요?

 

환경

  우분투 18.04, gpu 없는 환경인데요, gpu가 없는 환경에는 당연한 이야기지만 cpu only 버전을 설치해야합니다. 사실 제일 짜증나는 부분이 환경에 맞게 설정을 해주는 것인데, 할 때 마다 느끼지만, 진짜 이 dependency 맞추는 것이 생각보다 매우 귀찮습니다. 참고로 저는 파이선 3.6 -3.9 버전을 모두 설치해놓고 필요할 때마다 바꿔서 사용합니다. 그리고 프로젝트에서 환경을 관리하기 위해 anaconda 가상환경을 이용합니다. 

 

dependency 다운

$ sudo apt 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

 

 dependency 다운을 받을 때도 에러가 나올 수 있는데, 이 부분에서 나오는 에러는 대게 에러 창을 보면 해결할 수있는 것들이 많아요, auto remove를 하라거나, 필요 패키지를 설치하라거나 하는 부분은 리눅스에서 웬만하면 알려주니 오류창을 잘 보시면 됩니다.

caffe Git clone 

$ git clone https://github.com/BVLC/caffe

 git을 clone할 때는 git이 설치가 되어 있어야하며 설치가 되어 있지 않은 경우 , 오류창을 참고해서 설치해 주세요. 아마도 sudo apt-get install git 이었던것 같은데 기억은 잘 안납니다. 

 

makefile.config

  우선 makefile.config를 만들어야 되는데요 git을 clone하셨으면 caffe 폴더가 생기셨을거에요

cd caffe

touch makefile.config

sudo vi makefile.config

그럼 vi가 뜨는 데 i로 입력모드 해주시고

<mkaefile.config>

CPU_ONLY := 1
OPENCV_VERSION := 3
CUSTOM_CXX := g++
CUDA_DIR := /usr/local/cuda
CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
-gencode arch=compute_20,code=sm_21 \
-gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=sm_50 \
-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 ?= @

내용을 붙여넣은 뒤 esc 누르고 :wq 로 입력해주세요.

make

$ make all
$ make test
$ make runtest
$ make pycaffe

를 입력해주시면 됩니다.

 

환경변수 추가

$ export PYTHONPATH=${caffe경로}/python:$PYTHONPATH

 caffe경로를 찾는 가장 쉬운 방법은 caffe 폴더 안에서 pwd라는 명령어를 치면 바로 나온답니다. 그런데 export해줬다는 것은 그 커멘드가 닫히면 에러가 나옴으로 귀찮으시다면, bashrc에 추가해서 사용하시면 됩니다.

 

설치가 완료되었는지 확인하기

$ python

  파이썬 커멘드가 나오면 import caffe 를 통해 오류가 없이 import 되면 된겁니다. 고생하셨습니다 여러분 ㅎㅎ

참고 사항

  파이썬 버전은 2.7을 사용해야합니다. numpy module은 1.14를 사용했습니다. pip install scikit-image 

pip install protobuf를 해줬습니다. 이 외에 몇개의 오류가 있었던 것으로 기억하는 데.. ㅎㅎ 조금 되서 기억이 잘안나네요. 만약에 댓글에 질문 주시면, 해결해드릴게요! 오류메시지도 함께 올려주세요

 

이상 wh였습니다. 누군가가 이 도움을 받았으면 좋겠습니다.

참고로 사실 요즘은 트렌드가 너무 빨라서 임베디드와 서버 단에서 성능 차이가 나는 모델이

많이 나오고 해당 모델을 임베디드에 구현하기 위해

예전 프레임 워크를 사용해야하는 경우가 많습니다.

그런데 문제는 python을 비롯한 dependency가 매번 달라져서

그걸 맞추는게 매우 귀찮은 작업입니다. 다음 글에서 뵐게요

 

728x90
반응형