Pytorch フレームワークを使用するよりも 200 倍高速です。 0.76秒後、ラップトップ上のCNNはMNISTを解いた。

Pytorch フレームワークを使用するよりも 200 倍高速です。 0.76秒後、ラップトップ上のCNNはMNISTを解いた。

[[417184]]

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載しています。転載の際は出典元にご連絡ください。

MNIST のトレーニングは、コンピューター ビジョンにおける「Hello World」タスクと言えます。

PyTorch の標準コードを使用して CNN をトレーニングする場合、通常は約 3 分かかります。

しかし今では、ラップトップを使えばその時間を 200 倍以上短縮できます。

速度は0.76秒に達します!

それで、たった 1 エポックのトレーニングで 99% の精度をどうやって達成したのでしょうか?

200倍のスピードアップを実現する8つのステップ

これは、GeForce GTX 1660 Ti GPU を搭載したラップトップです。

Python 3.x と Pytorch 1.8 も必要です。

まずトレーニング用のデータセットをダウンロードし、毎回 14 エポックのトレーニングを実行します。

現時点では、テスト セットでの 2 回の実行の平均精度は 99.185%、平均実行時間は 2 分 52 秒 ± 38.1 ミリ秒です。

次に、トレーニング時間を段階的に短縮します。

1. 早めにトレーニングをやめる

3 ~ 5 エポック後、テスト精度が 99% に達するとトレーニングは早期に停止されます。

このとき、トレーニング時間は約 1/3 に短縮され、57.4 秒±6.85 秒になりました。

2. ネットワークのサイズを縮小し、正規化技術を使用して収束を高速化する

具体的には、最初の conv レイヤーの後に 2x2 最大プール レイヤーを追加して、完全接続レイヤーのパラメーターを 4 倍以上削減します。

次に、2 つのドロップアウト レイヤーのうち 1 つを削除します。

このようにして、収束に必要なエポック数は 3 未満に削減され、トレーニング時間は 30.3 秒±5.28 秒に短縮されます。

3. データの読み込みを最適化する

data_loader.save_data() を使用して、データセット全体を以前に処理した方法で pytorch 配列としてディスクに保存します。

つまり、ディスクからデータを何度も読み取るのではなく、データセット全体が一度に読み込まれ、GPU メモリに保存されます。

現時点では、平均トレーニング時間を 7.31 秒 ± 1.36 秒に短縮するために必要なエポックは 1 つだけです。

4. バッチサイズを増やす

バッチ サイズを 64 から 128 に増やすと、平均トレーニング時間が 4.66 秒 ± 583 ミリ秒に短縮されます。

5. 学習率を上げる

指数関数的減衰の代わりにスーパーコンバージェンスを使用します。

学習率はトレーニング開始時は 0 で、途中で最大値 (4.0) まで直線的に増加し、その後ゆっくりと 0 まで減少します。

これにより、トレーニング時間は 3.14 秒 ± 4.72 ミリ秒に短縮されます。

6. バッチサイズを再度増やし、ネットワークサイズを縮小する

手順 2 を繰り返し、バッチ サイズを 256 に増やします。

残りのドロップアウト層を削除し、畳み込み層の幅を狭めて補正しながら、手順 4 を繰り返します。

最終的に平均時間は 1.74 秒±18.3 ミリ秒に短縮されました。

7. 最終的な微調整

まず、最大サンプリング層が ReLU アクティベーションの前に移動されます。

次に、畳み込みカーネルのサイズを 3 から 5 に増やします。

最後に、ハイパーパラメータの調整を実行します。

学習率を 0.01 (デフォルトは 0.001)、beta1 を 0.7 (デフォルトは 0.9)、beta2 を 0.9 (デフォルトは 0.999) に設定します。

この時点で、トレーニングは 1 エポックに短縮され、762 ミリ秒 ± 24.9 ミリ秒で 99.04% の精度を達成しました。

「これは単なるHello Worldの例です」

この最終結果をありふれたものだと考える人もいます:

データの読み込み時間を最適化し、モデル サイズを縮小し、SGD の代わりに ADAM を使用することは、すべて常識的なことです。

MNIST は機械学習の「Hello World」であり、その目的は最小臨界値を示してフレームワークに慣れてもらうことだけなので、実際に MNIST を高速化しようとする人はいないと思います。それに、3 分というのはそれほど長い時間ではありません。

一部のネットユーザーは、ほとんどの人の仕事はMNISTのようなスーパークラスターにはないと考えています。したがって、彼は次のように述べた。

私が望むのは、トレーニング時間を本当に最小限に抑えることに重点を置いた取り組みをさらに進めることです。

GitHub:
https://github.com/tuomaso/train_mnist_fast

<<:  1780億のパラメータを持つこの言語モデルは、王者GPT-3に挑戦するためだけに作られたのでしょうか?

>>:  トレンド検索No.1!韓国、ハリー・ポッターの「透明マント」を作るためにカメレオン型ソフトロボットを開発

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

ファーウェイの鄭葉来氏:イノベーションと包括性、テクノロジーが産業インテリジェンスの向上を促進

11月11日、中国ハイテクフェア2020が深センで開催されました。ファーウェイクラウドコンピューティ...

...

...

2021年以降の人工知能について何かお考えはありますか?

中国科学技術協会、中国科学院、中国工程院、浙江省人民政府、杭州市人民政府、浙江省人工知能開発専門委員...

...

...

...

Dry goods: アルゴリズムの学習に役立つオープンソース プロジェクト

[[321744]]今日、LeetCode の問題やさまざまなアルゴリズム ルーチンを分析できる優れ...

AIOps によるネットワーク管理の一般的な方法

エンタープライズ NetOps チームは、大量の受信データを精査して、ネットワーク上で発生する技術、...

クラウド、持続可能性、デジタル導入 - 2022 年のアジア太平洋地域の技術予測

フォレスターのアジア太平洋地域における 2022 年の予測によると、地域特有の圧力により、どこからで...

AIとコグニティブコンピューティングがIoTデータを理解

今日、世界中がインダストリー4.0とそれがもたらすテクノロジーに注目しています。人工知能 (AI) ...

YOLOv6: 高速かつ正確な物体検出フレームワークがオープンソース化

著者: Chu Yi、Kai Heng 他最近、Meituan のビジュアル インテリジェンス部門は...

AIと機械学習がIoTと密接に関係する理由

モノのインターネット (IoT) の将来の可能性は無限です。 2025 年までに、世界中の IoT ...

顔認識エンジンのトップ 5 (テキストにイースター エッグあり)

[51CTO.com クイック翻訳] ご存知のとおり、顔の特徴は指紋ほどユニークで永続的ではありま...