Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 오봉 계곡
- HTML
- 하늘숲황토펜션
- ubuntu
- 파이썬 GUI
- python yield
- machine learning
- 텐서플로 설치
- anaconda tensorflow
- 지리산 펜션
- 파이썬 yield
- 출근 전날
- 하늘숲 황토 펜션
- 아나콘다 텐서플로
- 파이썬
- cuda
- 산청 황토 펜션
- LISP
- Python
- 지리산 둘레길
- 하늘숲펜션
- tensorflow 설치
- 계곡 펜션
- tensorflow
- 지리산 황토 펜션
- 황토펜션
- 전용 계곡
- CUDA9.0
- 인공지능
- LISP 함수
Archives
- Today
- Total
YongWook's Notes
<CAFFE> 설치 in Ubuntu 본문
연구실 PC : Nvidia Geforce GTX 1070 + Ubuntu 14.04 조합
개인 노트북 : Nvidia Geforce GT650M + Ubuntu16.04조합
- CUDA (Nvidia GPU tool for performance)
~curl 설치
$>apt-get install curl $>apt-get install git
~apt-get 업그레이드
$>apt-get upgrade
~CUDA8.0 설치 (그래픽카드 드라이버도 포함)
https://developer.nvidia.com/cuda-downloads - runfile로 다운받기.
$>chmod +x cuda_8.0.27_linux.run $>sudo ./cuda_8.0.27_linux.run --no-opengl-libs #약관 다 읽고 Accept #installing the NVIDIA drvier - YES (352.00 이상의 nvidia드라이버가 이미 설치되어있다면 NO) #installing CUDA Toolkit + Driver - YES #installing CUDA Samples - YES #Symbolic link - YES #xorg.conf 가 나온다면 이건 NO
만약 unsupported compiler error가 난다면 다음과 같이 gcc문제를 해결하자.sudo apt-get install gcc-4.8 sudo update-alternatives --remove-all gcc sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10
~CUDA 환경변수 설정
$>cd /etc/ $>sudo gedit bash.bashrc #다음 환경 변수 추가해줌 export CUDA_HOME=/usr/local/cuda-8.0 export LD_LIBRARY_PATH=${CUDA_HOME}/lib64 PATH=${CUDA_HOME}/bin:${PATH} export PATH $>source ~/.bashrc #변경된 환경변수 적용 (혹은 재부팅)
~설치된 NVIDIA driver, CUDA버전 확인
$>cat /proc/driver/nvidia/version #Nvidia driver version $>nvcc -V #CUDA driver version #터미널에서 NVIDIA_CUDA-8.0_Samples 폴더로 이동 후 $>make #NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release/ 로 이동 후 $>./deviceQuery $>./bandwidthTest
+ Sample폴더에서 make를 했더니 gcc관련 error가 발생하는 경우가 가끔 있다. gcc version > 5.3인 경우 발생하는 오류인데, 내 gcc버전을 확인($> gcc --version) 했을 때 5.3 이하임을 만족하고 있는 경우가 있다. 심볼릭 링크를 변경하는 등의 방법도 있다고 하지만 잘 먹히지 않을 땐, 그냥 /usr/local/cuda-8.0/include/의 host_config.h를 sudo로 열고 해당 error부분을 삭제해버려도 좋다. 확인된 side effect는 아직 없다고 한다. - Caffe가 사용하는 Dependencies
$> sudo apt-get install --force-yes libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev protobuf-compiler gfortran libjpeg62 libfreeimage-dev libatlas-base-dev git python-dev python-pip libgoogle-glog-dev libbz2-dev libxml2-dev libxslt1-dev libffi-dev libssl-dev libgflags-dev liblmdb-dev
- Caffe 패키지 소스와 파이썬 requirements 설치
$> git clone https://github.com/BVLC/caffe.git $> cd caffe $> cat python/requirements.txt | xargs -L 1 sudo pip install #usr/local에 해당하는 python library와 numpy에 대한 심볼릭 링크 만들기 - numpy도 설치됨 $> sudo ln -s /usr/include/python2.7/ /usr/local/include/python2.7 $> sudo ln -s /usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy /usr/local/include/python2.7/numpy #scipy설치 $>apt-get install python-scipy
- Make
#caffe 패키지의 루트폴더에서 $>cp Makefile.config.example Makefile.config #Makefile.config 코드 중 활성화된 PYTHON_INCLUDE 변경 PYTHON_INCLUDE := /usr/local/include/python2.7 \ /usr/local/include/python2.7/numpy #위를 완료했다면, 드디어 $>make pycaffe $>make all $>make test
+ make pycaffe 시 hdf5 error가 발생하는 경우 다음과 같이 해결하자.
cd /usr/lib/x86_64-linux-gnu sudo ln -s libhdf5_serial.so.8.0.2 libhdf5.so #직접 디렉토리에 들어가서 자신의 버전을 확인하여 수정. sudo ln -s libhdf5_serial_hl.so.8.0.2 libhdf5_hl.so #caffe루트 폴더의 Makefile.config 수정 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/ LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial/
- Test
#테스트 데이터 다운로드드 $> python scripts/download_model_binary.py models/bvlc_reference_caffenet $> sh data/ilsvrc12/get_ilsvrc_aux.sh #콘솔창에서 실험결과를 확인하기 위해 caffe/python/classify.py를 편집한다. + import pandas as pd parser.add_argument( #여러개의 overloading된 함수들 ... ) + parser.add_argument( #추가로 overload시키기 + "--print_results", + action='store_true', + help="Write output text to stdout rather than serializing to a file." + ) + parser.add_argument( + "--labels_file", + default=os.path.join(pycaffe_dir,"../data/ilsvrc12/synset_words.txt"), + help="Readable label definition file." + ) + # Classify. start = time.time() + scores = classifier.predict(inputs, not args.center_only).flatten() predictions = classifier.predict(inputs, not args.center_only) print("Done in %.2f s." % (time.time() - start)) + if args.print_results: + with open(args.labels_file) as f: + labels_df = pd.DataFrame([{'synset_id':l.strip().split(' ')[0], 'name': ' '.join(l.strip().split(' ')[1:]).split(',')[0]} for l in f.readlines()]) + labels = labels_df.sort('synset_id')['name'].values + + indices =(-scores).argsort()[:5] + predic기tions = labels[indices] + + meta = [(p, '%.5f' % scores[i]) for i,p in zip(indices, predictions)] + print meta + # Save
$>python python/classify.py --print_results examples/images/cat.jpg foo 를 입력하여 테스트
ValueError가 발생했을 시 대처법
#caffe/python/caffe/io.py 의 258-259 line if ms != self.inputs[in_][1:]: raise ValueError('Mean shape incompatible with input shape.') #를 다음 코드로 변경 후 저장 if ms != self.inputs[in_][1:]: print(self.inputs[in_]) in_shape = self.inputs[in_][1:] m_min, m_max = mean.min(), mean.max() normal_mean = (mean - m_min) / (m_max - m_min) mean = resize_image(normal_mean.transpose((1,2,0)),in_shape[1:]).transpose((2,0,1)) * (m_max - m_min) + m_min #raise ValueError('Mean shape incompatible with input shape.')
- 완료되었을 때의 화면
- cuDNN 설치 -for performance
https://developer.nvidia.com/cudnn
#cuDNN의 파일들을 적절한 디렉토리로 복사 tar -zxf cudnn-8.0-linux-x64-v5.1.tgz $>cd cuda/lib64/ $>sudo cp lib* /usr/local/cuda/lib64 $>cd cuda/include/ $>sudo cp cudnn.h /usr/local/cuda/include/
- OpenBLAS -for performance
$>git clone git://github.com/xianyi/OpenBLAS $>cd OpenBLAS && maek FC=gfortran $>sudo make PREFIX=/opt/OpenBLAS install $>sudo ldconfig $>cp /opt/OpenBlas/lib/libopenblas.a /usr/lib $>cp /opt/OpenBlas/lib/libopenblas.a /usr/local/lib/ $>cp /opt/OpenBlas/lib/libopenblas.so* /usr/lib $>cp /opt/OpenBlas/lib/libopenblas.s0* /usr/local/lib
- Makefile.config 수정
#cuDNN과 OpenBLAS를 모두 설치했다면 caffe폴더의 Makefile.config를 다음과 같이 수정한다. USE_CUDNN := 1 #uncomment BLAS := open
'-software > AI' 카테고리의 다른 글
<인공지능> Multiple-Object Detection (1) - RCNN (0) | 2017.03.13 |
---|---|
<CAFFE> 학습시키기, 사용하기 (0) | 2016.08.30 |
<인공지능> Monk's Problem (0) | 2016.05.25 |
<인공지능> LISP에 대해 알아보자 - 4 새로운 함수 만들기 (1) | 2016.03.06 |
<인공지능> LISP에 대해 알아보자 3 - LISP의 함수 下 (0) | 2016.03.04 |
Comments