LinuxでもWindowsでもディレクトリ構造や設定ファイル、モデルデータ(重みデータ)は同じなので、相互に流用できます。
学習時にはLinuxで実行し、モデルデータやclassファイルをWindowsに持ち込んで、動画や静止画の評価に回すなどワークフローを柔軟にできます。
Windowsで作ったclassファイルやdataファイルなど、テキスト形式の設定ファイルでは、改行コードや文字エンコードの変換が必要です。
この目的のために作られたdos2unix.pyというプログラムがあります。
ほぼ同格なLinux(Ubuntu)、Windowsの2台のマシンで、同じデータを使ってYOLOv3の学習を実施してみました。
20000イテレーションまで実施し、1000イテレーション毎に保存される重みファイルのタイムスタンプ間隔を計測します。
Deepstation
i7 7700 3.6GHz*8、メモリ32GB
NVidia GeForce GTX1080Ti 11GB
Ubuntu 16.04.6LTS 64Bit
HP OMEN 880-000jp Desktop
i7 7700 3.6GHz*8、メモリ32GB
NVidia GeForce GTX1070 8GB
Windows10Professional 64bit
基本的な構成としてはほぼ同格。
GPU性能は、1070と1080Tiでは20-30%程度異なるようです。
1000イテレーションに費やした時間
ほぼ20-30%の違いです。
Linux、Windowsで差はある...が学習速度の違いは、GPUの性能がそのまま出ているようです。
(Linuxの方が圧倒的有利かと先入観を持っていたが、YOLOv3のバイナリで実行した限りにおいて、GPU性能差以上の違いがなさそう)
※trainが途中で止まると損失が大きいので、(特に動画を使った)評価とは分けたほうが良いです。
最後に、おまけとして、Windowsゲーミングノートの内蔵カメラで、リアルタイムに検出した場合の驚くべきパフォーマンスを示して、本記事を終わります。
OMEN by HP Laptop 17-an0xx
i7 7700 2.8GHz*8、メモリ16GB
NVidia GeForce GTX1070 8GB
Windows10 Professional 64bit
内蔵カメラ -c 0でdemoモード起動した際のスクリーンショットです。モデルは、VOC COCOの学習済モデル。34.2fps出ています。
▼この記事を書いたひと
R&Dセンター
松井 良行
R&Dセンター 室長。コンピュータと共に35年。そしてこれからも!
●富士見事務所 TEL : 052-228-8733 FAX : 052-323-3337
〒460-0014 愛知県名古屋市中区富士見町13−22 ファミール富士見711 地図
交通部 R&Dセンター