(論文メモ)Benchmark Analysis of Representative Deep Neural Network Architectures


はじめに

IEEE Accessに掲載された学習モデルのベンチマーク論文である。論文で作成したコードも公開されている
推論時のメモリ使用量や計算量観点で、効率的な学習モデルな何かという文脈で調査が行われている。また、計算効率の観点から、VGGではなくResNetが使われるのか分かる。

動作環境

システム1

  • Core i7-7700 @3.6GHz
  • 16GB DDR4 RAM 2400MHz
  • NVIDIA Titan X Pascal GPU with 3840 CUDA cores
  • Ubuntu 16.04

システム2

  • NVIDIA Jetson TE1 board with 64-bit ARM A57 CPU @2GHz
  • 4GB LPDDR4 1600MHz
  • NVIDIA Maxwell GPU with 256 CUDA cores
  • JetPack-2.3 SDK

40の深層学習モデルをベンチマークした。画像サイズは、224x224から331x331を用いた(モデルによって相違する)。

性能指標

以下の5つを性能指標として用いた。

  • 精度(accuracy)としては、Top-1およびTop-5を用いた。
  • モデルの複雑度(model complexity)を確認した。これは、学習モデルを保存した際のファイルサイズを基にしている。
  • メモリ使用量(memory usage)も確認した。バッチ数は、1から64までで確認した。
  • 計算複雑性(computational complexity) FLOPSベースで測定した。(nvprofで測定?)
  • 推論時間(inference time)

実験結果

精度とモデルや計算の複雑度

ImageNet-1kをベースに精度とモデルや計算の複雑度を見るためのプロット(Fig.1)である。縦軸が精度、横軸が計算量である。例えば、VGGの計算効率が悪いのがわかる。また、モデルの複雑度と精度は線形の関係にはない。

精度とパラメータ数の相関

パラメータ単位あたりの精度の高さを見るためのプロット(Fig.2)である。モデルにより精度を実現するパラメータ効率が異なる。

メモリ使用量とモデルの複雑度について

Titan Xpでのモデルの複雑度(パラメータ数)から、メモリ使用量は推測できる(Fig.4)。パラメータ数とメモリ使用量は、ほぼ線形の関係にある。ただし、2つのグループに分かれる。

推論時間について

バッチサイズを1から64まで変えて、推論時間を、Titan XpおよびJetson TX1で測定した(Table1)。Titan Xpでは、SEResNet-154以外はリアルタイム性を実現している。なお、Jetson TX1の空欄はメモリ不足により測定できなかったバッチサイズである。

推論時間と精度について

Titan XpとJetson TX1について、推論時間と精度の関係を調べた(Fig.3)。計算能力の高いTitan Xpでは、ほとんどのモデルでリアルタイム性が出ている。しかし、組み込み向けのJetson TX1では、MobileNet等の一部のモデルでしか性能を達成できない。

バッチサイズを変えた場合のメモリ使用量について

Titan Xpでバッチサイズを変えてメモリ使用量を確認した(Table2)。バッチサイズ1の時に、どんなに小さいモデルでもGPUのメモリを0.6GB以上消費する。とはいえ、大きいモデルでも1.5GB以内で収まっている。

制約条件を考慮したモデルのランキング

メモリ使用量と推論時間の制約の組合せで、精度の高いモデルをランキングした(Table3)。Titan Xpの場合、Dual Path Networks (DPN)が省メモリでの速度と精度の点で優れている。Jetson TX1は、組み込み向けで計算能力が異なり、違うモデル(MobileNet)等が優れている。

参考資料

論文

計測に用いたWikiやコード

ハードウェア