Chainer Getting Started

소개



기계 학습 및 딥 러닝의 대표적인 라이브러리/프레임워크의 하나인 Chainer 에 관해서, 처음으로 움직이는 사람을 위한 메모입니다.tensorflow 라든지 특히 Caffe 에 비해 환경 구축이 매우 간단하다는 인상입니다.

TensorFlow 환경 구축 + fully_connected_feed.py 실행을 3 분 안에 시도 라고 하는 기사로, TensorFlow에 관해서, 환경의 구축과, 샘플의 실행까지 썼습니다만, 이 기사에서는 Chainer 에 대해 좀 더 자세하게 조사해 여러가지 정리하고 싶습니다. (앞으로도 수시로 편집하겠습니다)

이 기사에서는 Ubuntu의 경우와 OSX의 경우를 소개합니다.

OS X 환경 구축 + 샘플 실행



환경




  • OSX 10.11.4 El Capitan
  • Python 2.7.10
  • $ python -V
    Python 2.7.10
    

    절차



    [1]. 환경 구축


    pip 라든지가 들어 있지 않은 경우는 sudo easy_install pip 로 넣어 주어, 이하와 같이 chainer 환경을 정돈합니다.
    $ sudo easy_install pip
    $ sudo pip install --upgrade virtualenv
    

    여기서 다른 Python 환경에서 문제를 일으키지 않도록 가상 환경으로 chainer라는 디렉토리를 준비합니다.
    $ mkdir ~/chainer
    $ virtualenv --system-site-packages ~/chainer
    

    드디어 가상 환경에 chainer를 설치합니다.
    $ source ~/chainer/bin/activate
    (chainer) $ pip install chainer
    

    무려 이것만!
    또한 보충으로, $ deactivate 에서 빠질 수 있습니다.

    [2]. 자습서 코드 준비


    (chainer)$ cd workdir 
    (chainer)workdir$ git clone https://github.com/pfnet/chainer.git
    

    [3]. 자습서 코드 실행


    (chainer)workdir$ python chainer/examples/mnist/train_mnist.py
    GPU: -1
    # unit: 1000
    # Minibatch-size: 100
    # epoch: 20
    
    Downloading from http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz...
    Downloading from http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz...
    Downloading from http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz...
    Downloading from http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz...
    epoch       main/loss   validation/main/loss  main/accuracy  validation/main/accuracy  elapsed_time
    1           0.190416    0.104004              0.94345        0.9684                    17.5941       
    2           0.076082    0.0811159             0.976417       0.9736                    36.9471       
    3           0.0471095   0.0981369             0.984867       0.9702                    56.9719       
    4           0.0350777   0.0761874             0.9886         0.9781                    77.4668       
    5           0.0282012   0.0867539             0.991067       0.9774                    98.3472       
    6           0.0248647   0.0695007             0.9919         0.9801                    119.961       
    7           0.0210343   0.0767947             0.99305        0.9808                    141.635       
    8           0.0176813   0.0905643             0.994          0.9777                    163.806       
    9           0.0178874   0.0723692             0.99425        0.9826                    186.365       
    10          0.0136274   0.0707852             0.995917       0.9832                    209.43        
    11          0.0131937   0.113052              0.9958         0.9755                    233.096       
    12          0.0128028   0.0889003             0.996083       0.9803                    257.344       
    13          0.0112644   0.110072              0.9965         0.9792                    282.586       
    14          0.0139703   0.0881926             0.995267       0.9828                    308.389       
    15          0.0122166   0.104037              0.996317       0.9808                    335.018       
    16          0.00773986  0.107721              0.997583       0.9815                    362.33        
    17          0.00971623  0.094353              0.996933       0.9809                    390.071       
    18          0.0107869   0.0942736             0.996717       0.9832                    418.135       
    19          0.0114094   0.096485              0.99665        0.9822                    449.07        
    20          0.00670194  0.0999182             0.997883       0.9852                    481.826 
    

    같으면 성공입니다!

    Ubuntu 환경 구축 + 샘플 실행



    환경


  • 우분투 14.04.5
  • $ lsb_release -a
    LSB Version:    core-2.0-amd64:core-2.0-noarch:core-3.0-amd64:core-3.0-noarch:core-3.1-amd64:core-3.1-noarch:core-3.2-amd64:core-3.2-noarch:core-4.0-amd64:core-4.0-noarch:core-4.1-amd64:core-4.1-noarch:security-4.0-amd64:security-4.0-noarch:security-4.1-amd64:security-4.1-noarch
    Distributor ID: Ubuntu
    Description:    Ubuntu 14.04.5 LTS
    Release:    14.04
    Codename:   trusty
    
  • Python 2.7.6
  • $ python -V 
    Python 2.7.6
    

    절차



    OSX 환경과 완전히 동일합니다!

    화풍을 변환하는 알고리즘을 사용해보십시오.



    이 섹션에서 시도하는 화풍을 변환하는 알고리즘은 Ubuntu의 경우와 OSX의 경우 공통입니다.

    Chainer의 가상 환경으로 들어갑니다.
    $ source ~/chainer/bin/activate
    

    임의의 디렉토리로 이동해, 이번 움직이는 화풍을 변환하는 알고리즘의 소스 코드를 github로부터 clone 해 옵니다.
    (chainer)$ cd workdir
    (chainer)workdir$ git clone [email protected]:mattya/chainer-gogh.git
    

    그 후,
    (chainer)workdir$ cd chainer-gogh
    (chainer)workdir/chainer-gogh$ 
    

    의 상태로 둡시다.
    이 알고리즘은 Caffe 모델을 사용하기 때문에 여기에서 다운로드하여 동일한 디렉토리에 배치합니다.

    마지막으로 화풍 변환을 수행합니다.
    그러면, 다음과 같은 화면은 나오지 않지만, 차례로 화풍 변환 후의 화상이 png 형식으로 output_dir 디렉토리에 출력되어 갑니다. 일련 번호의 큰 이미지만큼 나중에 출력되어 좋은 느낌이 됩니다. 다음은 실행 명령입니다. 그러나 이대로 시도하면 다음과 같이 오류가 발생하므로,
    (chainer)workdir/chainer-gogh$ python chainer-gogh.py -m vgg -i sample_images/cat.png -s sample_images/style_0.png -o sample_images -g -1
    Traceback (most recent call last):
      File "chainer-gogh.py", line 7, in <module>
        from PIL import Image
    ImportError: No module named PIL
    

    아래와 같이 다른 단락 Pillow 를 인스톨 한다고 하는 조작을 사이에 두고 실행합시다.
    (chainer)workdir/chainer-gogh$ pip install Pillow
    Collecting Pillow
      Downloading Pillow-3.4.2-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (3.4MB)
        100% |████████████████████████████████| 3.5MB 314kB/s 
    Installing collected packages: Pillow
    Successfully installed Pillow-3.4.2
    (chainer)workdir/chainer-gogh$ python chainer-gogh.py -m vgg -i sample_images/cat.png -s sample_images/style_0.png -o sample_images -g -1
    

    이 명령은 sample_images/cat.png 라는 이미지를 sample_images/style_0.png 라는 이미지의 화풍으로 변환합니다.


    (chainer)workdir/chainer-gogh$ python chainer-gogh.py -m vgg -i sample_images/cat.png -s sample_images/style_0.png -o sample_images -g -1
    load model... nin_imagenet.caffemodel
    ('image resized to: ', (1, 3, 435, 435))
    ('image resized to: ', (1, 3, 435, 428))
    0 0 0.0 132.33581543
    0 1 0.0 16.8572692871
    0 2 5.28033351898 0.127215072513
    0 3 0.52776414156 0.00720807584003
    100 0 0.0 0.917560875416
    100 1 0.0 0.521785616875
    ~~//略//~~
    4900 2 1.104362607 0.072212561965
    4900 3 0.0635322630405 0.000989900669083
    

    같은 것이 나오면 아마 성공입니다.

    링크


  • htp // 2g. 하테나 bぉg. 코 m / 엔 트리 / 짱 r-go
  • htps : // 아 rぃ v. rg / pdf / 1508.06576v2. pdf
  • htps : // 기주 b. 코 m / 엄청 / 짱 r-go
  • htps : // Resea rch. p 렙 ㅇ d. jp/2015/09/짱 r-gh/
  • ぃ tp // 이 m / 한가로이 15 / ms / d1465 041dc1145에 b98
  • 좋은 웹페이지 즐겨찾기