Caffe 미세먼지 팁들



장점:
빠르다. 코드 작성 없이도 실행시킬수 있다.
Good for feedforward networks
Good for finetuning existing networks
Train models without writing any code!
Python interface is pretty useful!

단점:
Need to write C++ / CUDA for new GPU layers
Not good for recurrent networks
Cumbersome for big networks (GoogLeNet, ResNet)

그냥 feature 뽑거나, classification finetuning에서는 매우 편하다. 하지만 새로운 loss layer가 필요하게 되거나, 그 외의 특이한 아키텍쳐 구조로 설계하려면 방대한 C/C++ code도 이해해야한다.

댓글

  1. https://github.com/gramuah/ccnn.git

    Count CNN by Caffe

    답글삭제
  2. https://github.com/piiswrong/dec.git

    DEC clustering by Caffe

    답글삭제
  3. http://caffe.berkeleyvision.org/install_apt.html

    Caffe install for Ubuntu

    답글삭제
  4. Caffe Install for Ubuntu :

    딥러닝에 관심을 갖게 되면서 관련 툴을 찾다가 처음 찾아 돌려본게 이 Caffe라는 툴이었고, 당시에는 vagrant란
    VM에 다 갖춰진 채로 받아서 한번 샘플을 돌려본 적이 있습니다. pylearn2를 보다보니 거의 연구소 내부에서 쓰는
    자체 툴을 공개한거라(물론 이 자체로도 고맙슴다만) 모니터링이나 새로 모델을 걸어보는데 상당한 불편이 있어
    다시 Caffe 사이트를 찾아가서 보다 보니, 그 짧은 기간(2주) 동안 상당한 보강이 되어있군여 ! 놀랍슴다.

    간단히 소개드렸지만 이 툴은 지아양칭(贾扬清)이란, 칭화대를 졸업하고 UC버클리 PhD를 한, 젊은 구글 연구원이
    만든 딥러닝 툴인데 원래 파이썬/cuda-convent로 구현했던 DeCaf란 툴을 C++/CUDA로 다시 구현한 툴로 Caffe란
    이름은 "Convolutional Architecture for Fast Feature Embedding"란 상당히 복잡한 개념을 줄인 용어로군여. 현재는
    버클리비전이란 버클리대 연구소에서 오픈소스로 관리되고 있습니다.



    C++에 지레 겁먹고 다시 볼 생각을 안했었는데, 엔진부분은 C++로 짜였지만 거의 모든 기능이 파이썬으로 편리하게
    래핑(wrapping)이 되어있고 이제는 오히려 iPyhton노트북으로 사용하는걸 '권장'하고 있습니다. 마치 C로 구현한
    OpenCV가 cv2.pyd 파일 하나로 거의 모든 기능을 가져다 쓸 수 있게 해놓은거 처럼 말이죠. 당장 우분투 리눅스에
    깔아봤슴다.

    설치과정이 워낙 깔끔해서 문서에 나온 대로 해 주면 바로 사용이 가능하더군요. 제가 쓰는 환경은 Ubuntu 14.04
    데스크탑 버전입니다. 일단 소스( https://github.com/BVLC/caffe )를 받아서 풀어 놓고서 :

    1. dependency 설치

    sudo apt-get install libatlas-base-dev

    sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev

    sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler


    저는 파이썬을 반드시 써야 하므로 파이썬에도 dependecy를 추가해주기 위해서

    sudo pip install -r ~/Dev/caffe/python/requirements.txt
    를 실행해줍니다. 제가 왠만한 파이썬 모듈은 거의 깐 걸로 알았는데 추가해서 가져오는 파이썬 모듈들도 꽤나 많네요.
    또한 caffe관련 파이썬 모듈들을 임포트할 수 있도록

    export PYTHONPATH=~/Dev/caffe/python:$PYTHONPATH
    를 .bashrc에 추가해 줍니다.

    2. config

    cp Makefile.config.example Makefile.config
    (물론 GPU를 쓰려면 CUDA 환경은 갖춰진 상태에서 컴파일해야 합니다. 제 경우 첫번째 빌드에서 코어덤프가 났는데
    원인은 Makefile.config 중 CUDA_ARCH 부분의 끝 두줄, arch=compute_50 부분의 커멘트를 안풀어준거 였네요.
    문서를 보면 CUDA 6.0 이상 최신 버전은 이걸 풀어주라고 되어있습니다)

    3. make

    make all

    make test

    make runtest

    ​make pycaffe



    위의 runtest를 실행하면, 무슨 나사에서 돌아가는 프로젝트인지 무려 718가지 테스트를 돌립니다 !

    전에 vagrant VM에서 돌렸던 MNIST 문자인식 샘플을 다시 한번 돌려봅니다.

    cd ~/Dev/caffe/data/mnist
    ./get_mnist.sh

    cd ~/Dev/caffe/examples/mnist
    ./create_mnist.sh

    cd ~/Dev/caffe/examples/mnist
    ./train_lenet.sh



    역시 마찬가지로 10000번 반복에 결과는 0.0298, 지난번 보다 조금 높게 나왔습니다. 새로 깔아본건 이걸
    파이썬으로 요리하는걸 배우기 위해서이니까 몇가지 예제를 iPython 노트북에서 돌려보기로 하지요.

    답글삭제

댓글 쓰기

이 블로그의 인기 게시물

파이썬으로 Homomorphic Filtering 하기

파이썬으로 2D FFT/iFFT 하기: numpy 버전