docker で deep learning

36
Docker Deep Learning 中川武憲 (@ww24)

Upload: takenori-nakagawa

Post on 16-Apr-2017

2.507 views

Category:

Technology


0 download

TRANSCRIPT

Docker で Deep Learning中川武憲 (@ww24)

自己紹介

• 中川武憲 @ww24

• 株式会社サイバーエージェント 16内定者

• 好きな言語は Go, JavaScript

• 好きな分野は Web, Security, Machine Learning

友利奈緒 (SECCON 2015 Intercollege)

この友利奈緒です

撮影: @seen8th

情報系学部4年生

卒業研究

機械学習を用いたパターンロック認証の強化

Agenda

• Deep Learning

• CUDA, cuDNN

• NVIDIA Docker

• Tutorial

Deep Learning

Deep Learning

• 今話題の機械学習の手法の一つ

• 画像認識, 音声認識, 自然言語処理などの分野に於いて高い性能を発揮している

手書き文字認識

http://yann.lecun.com/exdb/mnist/

物体認識

https://www.cs.toronto.edu/~kriz/cifar.html

Deepdream

http://googleresearch.blogspot.co.uk/2015/06/inceptionism-going-deeper-into-neural.html

Deep Learning Library

• 日本

• Preferred Infrastructure の Chainer (MIT License)

• 海外

• BVLC の Caffe (BSD 2-Clause License)

• Google の TensorFlow (Apache License Version 2.0)

*BVLC: Berkeley Vision and Learning Center

CUDA, cuDNN

CUDA

• NVIDIA の開発する並列計算アーキテクチャ

所謂 GPGPU

• 対応した NVIDIA GPU が必要

• 膨大な計算量を必要とする処理に向いている

• 機械学習でも威力を発揮する

NVIDIA GPU が無い場合

• G2 インスタンスを借りましょう

• g2.2xlarge なら1,536 CUDA コア、4GB のビデオメモリ

• g2.8xlarge なら、その4倍の性能

cuDNN

• CUDA を Deep Neural Network に使うためのライブラリ

• CUDA を直接扱うより高速

NVIDIA Docker

導入

• CUDA + cuDNN + Deep Learning Library

• ホストマシンの環境を汚したくない

• 研究では再現性が重要

NVIDIA Docker

• https://github.com/NVIDIA/nvidia-docker

• Docker 上で CUDA (+cuDNN) を使うための

NVIDIA 公式コンテナ

NVIDIA Docker

動作

• ホストマシンに CUDA Driver を入れる

• コンテナに CUDA Toolkit と cuDNN を入れる

• /dev/nvidiactl, /dev/nvidia0, /dev/nvidia-uvm をコンテナに共有

• これらが全部自動化される

Tutorial

Tutorial

• https://github.com/ww24/docker-deep-learning

• CUDA + cuDNN に加えてCaffe, Chainer, TensorFlow が全て入る

Tutorial

• https://hub.docker.com/r/ww24/deep-learning/

• Docker Hub で公開中

$ docker pull ww24/deep-learning

Tutorial

• 3GB 以上あるので、会場のネットワークでの

docker pull はご遠慮ください。

Start

$ GPU=0 ./nvidia-docker run -itd -v $(pwd)/data:/root/data -p 6006:6006 --name deep ww24/deep-learning

NVIDIA GPU 搭載の場合

$ docker run -itd -v $(pwd)/data:/root/data -p 6006:6006 --name deep ww24/deep-learning

CPU のみを使用する場合

Into container

$ docker exec -it deep bash

Caffe Example

# cd caffe # ./data/mnist/get_mnist.sh # ./examples/mnist/create_mnist.sh # ./examples/mnist/train_lenet.sh

Caffe Example

Chainer Example

# cd chainer/examples/mnist # ./train_mnist.py --gpu 0

Chainer Example

TensorFlow Example

# cd tensorflow/tensorflow/examples/tutorials/mnist # python mnist_with_summaries.py

TensorFlow Example

TensorFlow Example

# tensorboard --logdir /tmp/mnist_logs

TensorFlow Example

ご清聴ありがとうございました