サンプルプログラムはここからダウンロードした。
https://github.com/keras-team/keras/blob/master/examples/mnist_cnn.py
さっそく実行。
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
PS > python mnist_cnn.py
Using TensorFlow backend.
x_train shape: (60000, 28, 28, 1)
60000 train samples
10000 test samples
Train on 60000 samples, validate on 10000 samples
Epoch 1/12
2018-02-28 14:28:39.205108: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\platform\cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to
use: AVX AVX2
2018-02-28 14:28:39.467982: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\gpu\gpu_device.cc:1105] Found device 0 with properties:
name: GeForce GTX 970 major: 5 minor: 2 memoryClockRate(GHz): 1.2155
pciBusID: 0000:01:00.0
totalMemory: 4.00GiB freeMemory: 3.31GiB
2018-02-28 14:28:39.472806: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\gpu\gpu_device.cc:1195] Creating TensorFlow device (/device:GPU:0) -> (device: 0, name: GeForce GT
X 970, pci bus id: 0000:01:00.0, compute capability: 5.2)
60000/60000 [==============================] - 11s 176us/step - loss: 0.2587 - acc: 0.9195 - val_loss: 0.0584 - val_acc: 0.9808
Epoch 2/12
60000/60000 [==============================] - 9s 142us/step - loss: 0.0858 - acc: 0.9739 - val_loss: 0.0386 - val_acc: 0.9863
Epoch 3/12
60000/60000 [==============================] - 9s 142us/step - loss: 0.0654 - acc: 0.9807 - val_loss: 0.0317 - val_acc: 0.9886
Epoch 4/12
60000/60000 [==============================] - 9s 142us/step - loss: 0.0549 - acc: 0.9834 - val_loss: 0.0317 - val_acc: 0.9888
Epoch 5/12
60000/60000 [==============================] - 9s 143us/step - loss: 0.0476 - acc: 0.9860 - val_loss: 0.0311 - val_acc: 0.9894
Epoch 6/12
60000/60000 [==============================] - 9s 142us/step - loss: 0.0426 - acc: 0.9873 - val_loss: 0.0327 - val_acc: 0.9906
Epoch 7/12
60000/60000 [==============================] - 9s 142us/step - loss: 0.0385 - acc: 0.9882 - val_loss: 0.0278 - val_acc: 0.9906
Epoch 8/12
60000/60000 [==============================] - 9s 142us/step - loss: 0.0355 - acc: 0.9890 - val_loss: 0.0245 - val_acc: 0.9918
Epoch 9/12
60000/60000 [==============================] - 9s 142us/step - loss: 0.0326 - acc: 0.9897 - val_loss: 0.0284 - val_acc: 0.9904
Epoch 10/12
60000/60000 [==============================] - 9s 142us/step - loss: 0.0283 - acc: 0.9910 - val_loss: 0.0293 - val_acc: 0.9906
Epoch 11/12
60000/60000 [==============================] - 9s 142us/step - loss: 0.0283 - acc: 0.9914 - val_loss: 0.0270 - val_acc: 0.9919
Epoch 12/12
60000/60000 [==============================] - 8s 142us/step - loss: 0.0274 - acc: 0.9914 - val_loss: 0.0269 - val_acc: 0.9910
Test loss: 0.026897845212663196
Test accuracy: 0.991
正答率は99.1%かぁ。。。
プログラム動作中のGPU負荷は70%前後だった。
Core i5環境なんで多くを求めちゃいけないので、まあこんな感じかと。
2018年2月28日水曜日
Kerasの動作テスト
Kerasのサンプルプログラムmnist_mlp.pyを動かしてみた。
サンプルプログラムはここからダウンロードした。
https://github.com/keras-team/keras/blob/master/examples/mnist_mlp.py
さっそく実行。
PS > python mninst_mlp.py
Using TensorFlow backend.
Downloading data from https://s3.amazonaws.com/img-datasets/mnist.npz
11493376/11490434 [==============================] - 6s 1us/step
60000 train samples
10000 test samples
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_1 (Dense) (None, 512) 401920
_________________________________________________________________
dropout_1 (Dropout) (None, 512) 0
_________________________________________________________________
dense_2 (Dense) (None, 512) 262656
_________________________________________________________________
dropout_2 (Dropout) (None, 512) 0
_________________________________________________________________
dense_3 (Dense) (None, 10) 5130
=================================================================
Total params: 669,706
Trainable params: 669,706
Non-trainable params: 0
_________________________________________________________________
Train on 60000 samples, validate on 10000 samples
Epoch 1/20
2018-02-28 14:09:24.640810: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\platform\cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to
use: AVX AVX2
2018-02-28 14:09:24.920822: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\gpu\gpu_device.cc:1105] Found device 0 with properties:
name: GeForce GTX 970 major: 5 minor: 2 memoryClockRate(GHz): 1.2155
pciBusID: 0000:01:00.0
totalMemory: 4.00GiB freeMemory: 3.31GiB
2018-02-28 14:09:24.928165: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\gpu\gpu_device.cc:1195] Creating TensorFlow device (/device:GPU:0) -> (device: 0, name: GeForce GT
X 970, pci bus id: 0000:01:00.0, compute capability: 5.2)
60000/60000 [==============================] - 5s 79us/step - loss: 0.2453 - acc: 0.9251 - val_loss: 0.1072 - val_acc: 0.9643
Epoch 2/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.1035 - acc: 0.9684 - val_loss: 0.0816 - val_acc: 0.9759
Epoch 3/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0751 - acc: 0.9776 - val_loss: 0.0755 - val_acc: 0.9779
Epoch 4/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0595 - acc: 0.9819 - val_loss: 0.0776 - val_acc: 0.9792
Epoch 5/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0498 - acc: 0.9851 - val_loss: 0.0822 - val_acc: 0.9769
Epoch 6/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0434 - acc: 0.9871 - val_loss: 0.0810 - val_acc: 0.9790
Epoch 7/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0376 - acc: 0.9886 - val_loss: 0.0834 - val_acc: 0.9813
Epoch 8/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0361 - acc: 0.9894 - val_loss: 0.0836 - val_acc: 0.9832
Epoch 9/20
60000/60000 [==============================] - 3s 45us/step - loss: 0.0290 - acc: 0.9911 - val_loss: 0.0994 - val_acc: 0.9813
Epoch 10/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0290 - acc: 0.9913 - val_loss: 0.0922 - val_acc: 0.9800
Epoch 11/20
60000/60000 [==============================] - 3s 43us/step - loss: 0.0272 - acc: 0.9920 - val_loss: 0.0937 - val_acc: 0.9815
Epoch 12/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0236 - acc: 0.9933 - val_loss: 0.0956 - val_acc: 0.9824
Epoch 13/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0237 - acc: 0.9932 - val_loss: 0.1011 - val_acc: 0.9816
Epoch 14/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0219 - acc: 0.9935 - val_loss: 0.0971 - val_acc: 0.9830
Epoch 15/20
60000/60000 [==============================] - 3s 43us/step - loss: 0.0215 - acc: 0.9941 - val_loss: 0.1062 - val_acc: 0.9810
Epoch 16/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0191 - acc: 0.9943 - val_loss: 0.1109 - val_acc: 0.9824
Epoch 17/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0166 - acc: 0.9953 - val_loss: 0.1293 - val_acc: 0.9804
Epoch 18/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0176 - acc: 0.9952 - val_loss: 0.1084 - val_acc: 0.9819
Epoch 19/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0199 - acc: 0.9952 - val_loss: 0.1123 - val_acc: 0.9815
Epoch 20/20
60000/60000 [==============================] - 3s 45us/step - loss: 0.0179 - acc: 0.9952 - val_loss: 0.1125 - val_acc: 0.9824
Test loss: 0.11250528357143812
Test accuracy: 0.9824
テストデータのAccuracyは98.24%ということか。
リソースモニターを眺めていたところ、プログラム実行中はGPUに30%程度の負荷がかかっていた。これを書いているときなんかは0~1%程度の負荷なんだけどね。
サンプルプログラムはここからダウンロードした。
https://github.com/keras-team/keras/blob/master/examples/mnist_mlp.py
さっそく実行。
PS > python mninst_mlp.py
Using TensorFlow backend.
Downloading data from https://s3.amazonaws.com/img-datasets/mnist.npz
11493376/11490434 [==============================] - 6s 1us/step
60000 train samples
10000 test samples
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_1 (Dense) (None, 512) 401920
_________________________________________________________________
dropout_1 (Dropout) (None, 512) 0
_________________________________________________________________
dense_2 (Dense) (None, 512) 262656
_________________________________________________________________
dropout_2 (Dropout) (None, 512) 0
_________________________________________________________________
dense_3 (Dense) (None, 10) 5130
=================================================================
Total params: 669,706
Trainable params: 669,706
Non-trainable params: 0
_________________________________________________________________
Train on 60000 samples, validate on 10000 samples
Epoch 1/20
2018-02-28 14:09:24.640810: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\platform\cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to
use: AVX AVX2
2018-02-28 14:09:24.920822: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\gpu\gpu_device.cc:1105] Found device 0 with properties:
name: GeForce GTX 970 major: 5 minor: 2 memoryClockRate(GHz): 1.2155
pciBusID: 0000:01:00.0
totalMemory: 4.00GiB freeMemory: 3.31GiB
2018-02-28 14:09:24.928165: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\gpu\gpu_device.cc:1195] Creating TensorFlow device (/device:GPU:0) -> (device: 0, name: GeForce GT
X 970, pci bus id: 0000:01:00.0, compute capability: 5.2)
60000/60000 [==============================] - 5s 79us/step - loss: 0.2453 - acc: 0.9251 - val_loss: 0.1072 - val_acc: 0.9643
Epoch 2/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.1035 - acc: 0.9684 - val_loss: 0.0816 - val_acc: 0.9759
Epoch 3/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0751 - acc: 0.9776 - val_loss: 0.0755 - val_acc: 0.9779
Epoch 4/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0595 - acc: 0.9819 - val_loss: 0.0776 - val_acc: 0.9792
Epoch 5/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0498 - acc: 0.9851 - val_loss: 0.0822 - val_acc: 0.9769
Epoch 6/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0434 - acc: 0.9871 - val_loss: 0.0810 - val_acc: 0.9790
Epoch 7/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0376 - acc: 0.9886 - val_loss: 0.0834 - val_acc: 0.9813
Epoch 8/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0361 - acc: 0.9894 - val_loss: 0.0836 - val_acc: 0.9832
Epoch 9/20
60000/60000 [==============================] - 3s 45us/step - loss: 0.0290 - acc: 0.9911 - val_loss: 0.0994 - val_acc: 0.9813
Epoch 10/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0290 - acc: 0.9913 - val_loss: 0.0922 - val_acc: 0.9800
Epoch 11/20
60000/60000 [==============================] - 3s 43us/step - loss: 0.0272 - acc: 0.9920 - val_loss: 0.0937 - val_acc: 0.9815
Epoch 12/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0236 - acc: 0.9933 - val_loss: 0.0956 - val_acc: 0.9824
Epoch 13/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0237 - acc: 0.9932 - val_loss: 0.1011 - val_acc: 0.9816
Epoch 14/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0219 - acc: 0.9935 - val_loss: 0.0971 - val_acc: 0.9830
Epoch 15/20
60000/60000 [==============================] - 3s 43us/step - loss: 0.0215 - acc: 0.9941 - val_loss: 0.1062 - val_acc: 0.9810
Epoch 16/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0191 - acc: 0.9943 - val_loss: 0.1109 - val_acc: 0.9824
Epoch 17/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0166 - acc: 0.9953 - val_loss: 0.1293 - val_acc: 0.9804
Epoch 18/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0176 - acc: 0.9952 - val_loss: 0.1084 - val_acc: 0.9819
Epoch 19/20
60000/60000 [==============================] - 3s 44us/step - loss: 0.0199 - acc: 0.9952 - val_loss: 0.1123 - val_acc: 0.9815
Epoch 20/20
60000/60000 [==============================] - 3s 45us/step - loss: 0.0179 - acc: 0.9952 - val_loss: 0.1125 - val_acc: 0.9824
Test loss: 0.11250528357143812
Test accuracy: 0.9824
テストデータのAccuracyは98.24%ということか。
リソースモニターを眺めていたところ、プログラム実行中はGPUに30%程度の負荷がかかっていた。これを書いているときなんかは0~1%程度の負荷なんだけどね。
登録:
投稿 (Atom)