Help us understand the problem. What is going on with this article?

AWS-EC2のp2インスタンスでchainer-goghの画風変換をGPU実行してみた

More than 1 year has passed since last update.

はじめに

DeepLearningの実践入門としてAWS-EC2のp2インスタンスを使用して、chainer-goghの画風変換をGPUで実行してみました。
結論としてp2.xlargeを使用してサンプル通りの画風変換を実行すると、5分程度で処理が完了します。
参考にさせていただいたchainer-goghのGitHub

環境

クライアントPC : macOS Sierra 10.12.4
サーバ : EC2 p2.xlarge (時間課金なので注意してください。)

事前準備

GPUコンピューティングのインスタンスを立ち上げる場合、デフォルトでは作成できないためAWSの担当者に問い合わせを行い、領域を拡張してもらってください。
領域の拡張はEC2ダッシュボードを開いて、左側のメニューにある「制限」から p2.xlarge の規制緩和の依頼ができます。

p2インスタンスの作成

今回はディープラーニングで使用する諸々のツールがインストール済みのAMIを使用します。
※私は"バージニア北部"リージョンを使用しています。
EC2ダッシュボードから「インスタンスの作成」 → 「AWS Marketplace」の順にクリック。
検索窓に「Deep Learning AMI」を入力して検索し、「Deep Learning AMI Amazon Linux Version」のAMIを使用してください。
その後のインスタンスの作成作業は通常のEC2と同じですので、ここでは割愛させていただきます。

環境構築

立ち上げたp2インスタンスにsshで接続して環境構築を実施します。

Pythonのインストール

「Deep Learning AMI Amazon Linux Version」を使用すると最初からPythonの2系と3系がインストールされているので、インストール作業は不要です。
※今回はPython3系を使用します。

Gitのインストール

こちらも最初から入っているので不要です。

Chainerのインストール

下記のコマンドでインストールできます。

sudo pip3 install chainer

Chainer-goghのクローン

必要であれば予めGitHub上で自分のリポジトリにChainer-goghをforkしておいてください。
chainer-goghをサーバにcloneします。

git clone https://github.com/xxxxxxxxx/chainer-gogh.git

モデルのダウンロード

NINモデルをダウンロードしてください。(下記リンク先のDropBoxのURLからダウンロードできます。)
https://gist.github.com/mavenlin/d802a5849de39225bcc6

ダウンロードしたファイルをクライアントマシンからサーバに送信してください。

scp -i xxxxxxx.pem xxxxxxxx/nin_imagenet.caffemodel ec2-user@host:~/chainer-gogh

出力用ディレクトリを作成

cd chainer-gogh; mkdir output

画風変換の実行

コマンドで実行

実行には5分程度かかります。

python3 chainer-gogh.py -m nin -i sample_images/cat.png -s sample_images/style_1.png -o output -g 0

実行結果をダウンロード

ローカルのターミナルでコマンドを実行。
このコマンドではim_04950.pngをDownloadディレクトリ配下にダウンロードします。
このファイルが画風変換した最終結果になります。
100イテレーションずつ途中結果も出力されますので、outputディレクトリを確認してください。

scp -i xxxxxxx.pem ec2-user@xxxxxxxxxx:~/chainer-gogh/output/im_04950.png ~/Download/im_04950.png

後処理

EC2は時間課金になります。
確認が終わったらインスタンスを削除するか停止してください。

まとめ

今回はchainer-goghを使用した画風変換の環境をp2インスタンスで作成し、GPU実行できるところまで確認しました。
AWSを使用することで手元にGPUマシンを用意しなくても手軽に使用できるので大変便利です!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした