LoginSignup
1
3

More than 5 years have passed since last update.

学習時間評価 その2 [TensorFlowでDeep Learning 13]

Last updated at Posted at 2016-11-27

(目次はこちら)

はじめに

以前の記事で、

  • c4.2xlarge
  • g2.2xlarge
  • g2.8xlarge

の3つのインスタンスタイプで、cifar10の学習時間の評価を行った。

今回、AWSのEC2でp2インスタンスが利用可能になったので、また同じように学習時間の評価を。

P2インスタンス?

Name GPUs vCPUs RAM (GiB) Price/Hour
p2.xlarge 1 4 61 $0.900
p2.8xlarge 8 32 488 $7.200
p2.16xlarge 16 64 732 $14.400

GPUは、NVIDIA Tesla K80!!
個人で所有するには敷居が高いスペック。

評価環境

インスタンスタイプ

いろいろ環境構築とか面倒なので、g2.2xlargeとp2.xlargeで。

学習対象

LeNet-5-like convolutional MNIST model

Inception v3 model on Imagenet

こちらは、
tensorflow/models/inceptionにあるように、

NOTE Before doing anything, we first need to build TensorFlow from source, and installed as a PIP package. Please follow the instructions at Installing From Source.

なので、ビルドが必要。
さらに、ImagenetのデータのダウンロードとTFRecord formatへの変換が必要で、それだけで丸一日かかる・・・

学習時間計測

LeNet-5-like convolutional MNIST model

g2.2xlarge

GRID K520がCompute Capability 3.0であることを失念していました。この結果はCPUになります。。

Step 0 (epoch 0.00), 10.6 ms
Minibatch loss: 8.334, learning rate: 0.010000
Minibatch error: 85.9%
Validation error: 84.6%
Step 100 (epoch 0.12), 119.7 ms
Minibatch loss: 3.250, learning rate: 0.010000
Minibatch error: 6.2%
Validation error: 7.6%
Step 200 (epoch 0.23), 117.6 ms
Minibatch loss: 3.377, learning rate: 0.010000
Minibatch error: 12.5%
Validation error: 4.2%
...
Step 8500 (epoch 9.89), 119.8 ms
Minibatch loss: 1.618, learning rate: 0.006302
Minibatch error: 0.0%
Validation error: 0.8%
Test error: 0.8%

p2.xlarge

Step 0 (epoch 0.00), 44.4 ms
Minibatch loss: 8.334, learning rate: 0.010000
Minibatch error: 85.9%
Validation error: 84.6%
Step 100 (epoch 0.12), 11.8 ms
Minibatch loss: 3.259, learning rate: 0.010000
Minibatch error: 6.2%
Validation error: 7.4%
Step 200 (epoch 0.23), 10.9 ms
Minibatch loss: 3.362, learning rate: 0.010000
Minibatch error: 9.4%
Validation error: 4.4%
...
Step 8500 (epoch 9.89), 10.9 ms
Minibatch loss: 1.612, learning rate: 0.006302
Minibatch error: 1.6%
Validation error: 0.9%
Test error: 0.7%

評価

いうまでもないが、p2.xlargeはg2.2xlargeの10倍速い。
g2インスタンスでリザーブドインスタンス買った人も多いだろうに。たぶん、粋なはからいでp2インスタンスに乗り換えるんでしょうけど。

こんなに差が出るなら、Inception v3 modelのほうは評価不要に思えるが、モデルやデータの質が全然異なるので、さらに差が広がると容易に想像できるので、やる。

Inception v3 model on Imagenet

g2.2xlarge

GRID K520がCompute Capability 3.0であることを失念していました。この結果はCPUになります。。

2016-11-27 11:17:37.914060: step 0, loss = 13.05 (0.7 examples/sec; 45.648 sec/batch)
2016-11-27 11:22:09.663319: step 10, loss = 13.99 (1.5 examples/sec; 21.561 sec/batch)
2016-11-27 11:25:43.922104: step 20, loss = 14.60 (1.5 examples/sec; 21.275 sec/batch)
2016-11-27 11:29:19.665863: step 30, loss = 14.95 (1.5 examples/sec; 21.557 sec/batch)
2016-11-27 11:33:00.637729: step 40, loss = 14.24 (1.4 examples/sec; 22.077 sec/batch)
2016-11-27 11:36:42.248699: step 50, loss = 14.00 (1.5 examples/sec; 21.922 sec/batch)
2016-11-27 11:40:25.607910: step 60, loss = 13.31 (1.4 examples/sec; 22.319 sec/batch)
2016-11-27 11:44:07.525535: step 70, loss = 13.11 (1.5 examples/sec; 21.972 sec/batch)
2016-11-27 11:47:48.913615: step 80, loss = 13.21 (1.4 examples/sec; 22.079 sec/batch)
2016-11-27 11:51:29.875606: step 90, loss = 13.14 (1.5 examples/sec; 21.937 sec/batch)
2016-11-27 11:55:08.308093: step 100, loss = 13.13 (1.5 examples/sec; 21.951 sec/batch)
...

p2.xlarge

2016-11-27 11:03:30.950642: step 0, loss = 13.07 (0.7 examples/sec; 43.646 sec/batch)
2016-11-27 11:04:17.764336: step 10, loss = 13.76 (21.6 examples/sec; 1.484 sec/batch)
2016-11-27 11:04:32.590020: step 20, loss = 14.28 (21.4 examples/sec; 1.497 sec/batch)
2016-11-27 11:04:47.657033: step 30, loss = 14.63 (21.2 examples/sec; 1.511 sec/batch)
2016-11-27 11:05:02.499948: step 40, loss = 14.06 (21.6 examples/sec; 1.480 sec/batch)
2016-11-27 11:05:17.538775: step 50, loss = 13.49 (21.3 examples/sec; 1.504 sec/batch)
2016-11-27 11:05:32.363192: step 60, loss = 13.07 (22.1 examples/sec; 1.449 sec/batch)
2016-11-27 11:05:47.280413: step 70, loss = 13.21 (21.7 examples/sec; 1.472 sec/batch)
2016-11-27 11:06:02.230082: step 80, loss = 13.34 (22.3 examples/sec; 1.434 sec/batch)
2016-11-27 11:06:17.052023: step 90, loss = 13.01 (21.5 examples/sec; 1.491 sec/batch)
2016-11-27 11:06:32.107453: step 100, loss = 13.12 (20.4 examples/sec; 1.567 sec/batch)
...

評価

15倍程度の速度差。。
こんな重いjobを投げてすみませんでした、g2.2xlargeさん。
今後、g2インスタンスを使うことはないでしょう。

GRID K520がCompute Capability 3.0であることでも、今後、g2インスタンスを使うことはないでしょう。

あとがき

現時点では、p2だと、p2.xlargeしかスポットインスタンスが使えないので、しばらくはp2.xlargeでいこうかと。(p2.8xlarge, p2.16.xlargeもちょっと試してみようかなぁ)
Inception v3 model on Imagenetが学習できそうなので、数日以上回して、Inception v3 pre-trained modelと比較してうまくいってそうだったら、Imagenetに頼らずに、手持ちのデータだけで学習してみようかと。でも、データ作るの大変そう・・。

1
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3