7層のネットワークを動かす 1の続きです。
学習結果の精度、実行時間、最大メモリ使用量、を取得します。
環境は、Mac mini (CPU 2.8GHz / メモリ 16GB / SSD / (GPU Intel Iris 1536MB))です。
処理はCPUで行われます。
実行結果 [Adam]
エポック数 : 200
の結果です。
画像は、training用200枚、testing用20枚としています。
OptimizerとしてAdamを使ったときの結果です。lr(learning rate)は、変更せずに0.001のままとしています。
メモリ使用量を抑制する目的で、ミニバッチサイズを50にしています。
層の数 | 画像データのサイズ | 1分類あたりの枚数 | 分類 | Optimizer | ハイパーパラメーター |
---|---|---|---|---|---|
simple(7層) | 56×56 | 100枚 | タチコマ、猫 | Adam | lr = 0.001 |
simple(7層) | 56×56 | 100枚 | トマト、みかん | Adam | lr = 0.001 |
simple(7層) | 56×56 | 100枚 | トマト、りんご | Adam | lr = 0.001 |
simple(7層) | 56×56 | 100枚 | 犬、猫 | Adam | lr = 0.001 |
simple(7層) | 112×112 | 100枚 | 犬、猫 | Adam | lr = 0.001 |
simple(7層) | 168×168 | 100枚 | 犬、猫 | Adam | lr = 0.001 |
simple(7層) | 224×224 | 100枚 | 犬、猫 | Adam | lr = 0.001 |
タチコマ、猫
56 x 56
実行に14分かかりました。最大メモリ使用量は801MBでした。
real 820.80
user 1209.32
sys 207.00
801816576 maximum resident set size
トマト、みかん
56 x 56
実行に13分かかりました。最大メモリ使用量は786MBでした。
real 761.67
user 1140.59
sys 197.61
786149376 maximum resident set size
トマト、りんご
56 x 56
実行に13分かかりました。最大メモリ使用量は791MBでした。
real 768.93
user 1148.17
sys 197.41
791425024 maximum resident set size
犬、猫
犬と猫の判定は学習が進まない場合があったので、画像データのサイズを大きくすることで結果が変わるか試行しました。単純に情報が増えて精度が向上するという予想です。
56 x 56
実行に13分かかりました。最大メモリ使用量は819MBでした。
real 770.28
user 1151.05
sys 196.15
819740672 maximum resident set size
112 x 112
実行に1時間19分かかりました。最大メモリ使用量は2.2GBでした。
real 4740.57
user 4429.60
sys 1514.42
2216738816 maximum resident set size
168 x 168
実行に3時間12分かかりました。最大メモリ使用量は4.7GBでした。
real 11466.01
user 9977.16
sys 3600.04
4734939136 maximum resident set size
224 x 224
実行に6時間3分かかりました。最大メモリ使用量は6.7GBでした。
real 21751.53
user 18359.36
sys 6775.70
6756798464 maximum resident set size
画像サイズが大きくなっても精度は上がらない結果となりました。
224×224が最も悪い結果になってしまいました。予想と反する結果となりました。残念です。
実行結果 [AdaGrad]
OptimizerをAdaGradにして、他は全く同じ設定で動作させます。
層の数 | 画像データのサイズ | 1分類あたりの枚数 | 分類 | Optimizer | ハイパーパラメーター |
---|---|---|---|---|---|
simple(7層) | 56×56 | 100枚 | タチコマ、猫 | AdaGrad | lr = 0.001 |
simple(7層) | 56×56 | 100枚 | トマト、みかん | AdaGrad | lr = 0.001 |
simple(7層) | 56×56 | 100枚 | トマト、りんご | AdaGrad | lr = 0.001 |
simple(7層) | 56×56 | 100枚 | 犬、猫 | AdaGrad | lr = 0.001 |
simple(7層) | 112×112 | 100枚 | 犬、猫 | AdaGrad | lr = 0.001 |
simple(7層) | 168×168 | 100枚 | 犬、猫 | AdaGrad | lr = 0.001 |
simple(7層) | 224×224 | 100枚 | 犬、猫 | AdaGrad | lr = 0.001 |
タチコマ、猫
56 x 56
実行に14分かかりました。最大メモリ使用量は787MBでした。
real 815.96
user 1201.60
sys 206.29
787714048 maximum resident set size
トマト、みかん
56 x 56
実行に13分かかりました。最大メモリ使用量は769MBでした。
real 781.71
user 1164.19
sys 195.83
769863680 maximum resident set size
トマト、りんご
56 x 56
実行に13分かかりました。最大メモリ使用量は775MBでした。
real 773.56
user 1158.42
sys 193.17
775073792 maximum resident set size
犬、猫
56 x 56
実行に13分かかりました。最大メモリ使用量は792MBでした。
real 792.93
user 1175.71
sys 197.28
803688448 maximum resident set size
112 x 112
実行に1時間20分かかりました。最大メモリ使用量は2.1GBでした。
real 4801.89
user 4497.65
sys 1510.67
2146906112 maximum resident set size
168 x 168
実行に3時間15分かかりました。最大メモリ使用量は4.5GBでした。
real 11732.67
user 10214.76
sys 3661.98
4573364224 maximum resident set size
224 x 224
実行に6時間4分かかりました。最大メモリ使用量は6.6GBでした。
ミニバッチサイズを100にすると、倍くらいのメモリ使用量になりました。8GBのメモリのPCで実行するとGB単位のswapが発生し続けてしまいます。
real 21894.03
user 18549.95
sys 6728.55
6634545152 maximum resident set size
こちらも、画像サイズが大きくなっても精度は上がらない結果となりました。
少なくともlrの調整は必要そうです。
まとめ
- 見た目が大きく異なるものに対しては、すぐに100%の精度で判定できるようになる
- 7層のネットワークでも2分類で80%くらいの精度は得られる
- 7層のネットワークでも224×224を入力とすると、Mac miniの上位機種で6時間かかる
- ミニバッチサイズを100とか200にして、224×224を入力とすると、7層であっても、メモリが16GBでは足りない
- Optimizerとハイパーパラメーターの組み合わせ次第では学習が全く進まない場合がある
- トマトとみかんの判定は、犬と猫の判定と同じくらい難しい ?
次は、ハイパーパラメーターを変更して動作させます。