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

【TensorFlow】 CPUとGPUの速度比較

More than 1 year has passed since last update.

「機械学習おもしろい!もっと勉強したい!」と思ったものの、Macbookでは時間がかかりすぎるのでNVIDIAのGTX1080を搭載したPCを買いました。

意外と速度比較の記事がなかったので、色々比較をしてみて随時追加していきます。「買おうかなどうしようかな。」と、悩んでおられる方のご参考になれば幸いです。

機械学習初心者勢なので、至らない点はご容赦ください。

学習対象

MNISTの手書き数字認識を扱います。精度はテストセットのデータの精度を使っています。精度も一応書きますが、あまり気にしなくてもよいです。

比較対象

一応MacbookAirの方のGPUも書いておきましたが、TensorFlowで使えるのは現状NVIDIA製のGPUのみなので、使いません。

PC MacBook Air(Early 2014モデル) Alienware aurora R6
OS MacOS Sierra Windows10 Pro
CPU Intel Core i7 1.7GHz Intel Core i7-7700 3.6GHz
GPU Intel HD Graphics 5000 NVIDIA GTX1080
メモリ 8GB 32GB

NN

5層、ユニット数=(前層 + 出力層) / 3 * 2、ミニバッチサイズ100、バッチノーマライゼーション

実行コード
https://github.com/syatyo/tensorflow-practice/blob/master/five_layer_nn_batch_norm.py

1000エポック

環境 CPU GPU
学習時間(秒) 38.5 12.5

精度: 0.9762

約3倍の速さになったっていう記事は見たことありましたが、だいたいそんな感じですね。

10000エポック

環境 CPU GPU
学習時間(秒) 334.6 73.5

精度: 0.9856

10000エポック回しても、ANNではそこまでの差はなさそうです。ギリCPUでも耐えられるレベルでしょうか。

CNN

入力層→Conv1→Pooling1→Conv2→Pooling2→全結合→ドロップアウト→出力層
ミニバッチサイズ50、エポック1000、ドロップアウトの利用

実行コード
https://github.com/syatyo/tensorflow-practice/blob/master/cnn.py

1000エポック

環境 CPU GPU
学習時間(秒) 253.5 9.2

精度: 0.941

CNNだと明らかに速度に差が出ます。10秒と4分では大違いですね。

10000エポック

環境 CPU GPU
学習時間(秒) 1906.5 57.7

精度: 0.9897

これくらい回すと、CPUでは30分強かかります。

LSTM

入力層→LSTM→出力層、ドロップアウトなし。
ミニバッチサイズ128、隠れ層のユニット数128、エポック10000

実行コード
https://github.com/syatyo/tensorflow-practice/blob/master/rnn_lstm.py

1000エポック

環境 CPU GPU
学習時間(秒) 81.3 17.0

精度: 0.953125

意外とCNNよりはCPUでも早く学習しています。

10000エポック

環境 CPU GPU
学習時間(秒) 800.5 127.7

精度: 0.9921875

CNNの1万エポックよりはマシですが、それでも13分強の待ち時間は辛いですね。

最後に

何か計測の要望あればコメントお願いします。

yosshi4486
アプリケーション作るのが好きな人
https://www.wantedly.com/users/6233980
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
ユーザーは見つかりませんでした