現在のコンシューマーグレードのGPUでトレーニングできるニューラルネットワークのサイズは?(1060、1070、1080)


9

一般的なコンシューマーグレードのGPUでトレーニング可能なニューラルネットワークのサイズについて、経験則を見積もることはできますか?例えば:

歩行(強化)の出現紙は、ニューロンのTANH活性化を使用してネットワークを訓練します。彼らは、プレーナーウォーカー用の300,200,100ユニットの3層NNを持っています。しかし、彼らはハードウェアと時間を報告していません...

しかし、経験則を開発できるでしょうか?また、現在の経験的結果に基づいているため、たとえば次のようになります。

シグモイドアクティベーションを使用するXユニットは、1060で1時間あたりY回の学習反復を実行できます。

または、bの代わりにアクティベーション関数aを使用すると、パフォーマンスが一時的に低下します。

学生/研究者/好奇心がこれらのネットワークで遊ぶためのGPUを購入しようとしている場合、どのように取得するかをどのように決定しますか?1060は明らかにエントリーレベルの予算オプションですが、高出力デスクトップを構築する代わりに安っぽいネットブックを入手して節約した$をオンデマンドクラウドインフラストラクチャに費やすことが賢くないかどうかをどのように評価できますか。

質問の動機:私は1060を購入したばかりで、(賢明なことですが、後で質問するために)$を保持してGoogle Cloudアカウントを作成すればよかったのではないかと思いました。GPUで修士論文シミュレーションを実行できるかどうか。

回答:


5

通常、問題はモデルをビデオRAMに収めることです。そうでない場合、大きな努力なしではモデルをまったくトレーニングできません(モデルの一部を個別にトレーニングするなど)。もしそうなら、時間はあなたの唯一の問題です。しかし、Nvidia 1080のようなコンシューマーGPUとNvidia K80のようなはるかに高価なGPUアクセラレーターの間のトレーニング時間の違いはそれほど大きくありません。実際、最高のコンシューマカードはGPUアクセラレータよりも高速ですが、VRAMなどの他のプロパティがありません。ランダム比較およびベンチマーク:http://timdettmers.com/2017/04/09/which-gpu-for-deep-learning/https://medium.com/@alexbaldo/a-comparison-between-nvidias-geforce -gtx-1080-and-tesla-p100-for-deep-learning-81a918d5b2c7

モデルがVRAMに収まるかどうかを計算するには、データの量とハイパーパラメーター(入力、出力、重み、レイヤー、バッチサイズ、データ型など)を概算するだけです。


1
良い答えですが、どのモデルが6 / 8GBメモリに収まらないのでしょうか?トレーニングデータの各バッチ+モデルとしましょう。モデルのサイズを計算する方法はわかりませんが、数千のニューロンが想像できず、それらの重みによってギガバイトのメモリがいっぱいになる可能性があります。Googleの事前トレーニング済み画像認識モデルは数百メガのtensorflow.org/tutorials/image_recognitionであり、他のほとんどの製品よりも多くを認識できます。AppleはそれをiPhoneでオンチップで処理するため、モデル自体はTデータよりもはるかに小さくなければなりません。そして、それはすべてRAMにある必要はありませんか?
pascalwhoop 2017

私はしばしばNLPモデル、主にマルチレイヤーRNNを扱っています。語彙サイズが大きい場合、8 GBでも十分ではない可能性があります。トレーニングは通常、予測よりも多くのスペースを必要とすることに注意してください(勾配もスペースを占有します)。
C.イドゥコリ2017

3

注意点として、根本的な技術的限界に挑まない限り、ニューラルネットワークアーキテクチャを開発する場合、計算の速度とリソースは設計の根拠の二次的なものであるべきです。

とはいえ、今年初めに、全ゲノムシーケンスデータを使用したバイオインフォマティクス分析パイプラインに関するMS論文を完成させました。このプロジェクトは、クラスタージョブマネージャーによると、開発に10万時間以上の計算時間を要しました。期限が近づくと、リソースは実際の制約になり、速度が重要になる可能性があります。

だから、私が理解している質問に答えるには:

お金を使ってクラウドで時間を稼ぐほうがいいのではないでしょうか。

多分。1060に費やした数百ドルは、モデルをクラウドではるかにトレーニングすることになります。さらに、私が知る限り、GPUが100%の時間をクランクしている必要はありません(たとえば、暗号通貨をマイニングしている場合はそうします)。最後に、クラウドインスタンスを使用すると、一度に複数のモデルをトレーニングしてスケーリングすることができます。これにより、解決するアーキテクチャの調査と検証を高速化できます。

特定のGPUでのニューラルネットワークの計算時間を測定する方法はありますか

さて、Big Oは推定量の1つですが、より正確な方法が必要なようです。それらが存在すると確信していますが、スレッド、メモリ、コード反復などを考慮したエンベロープ計算の単純なバックで推定を行うことができると思います。本当にGPU処理パイプラインを掘り下げたいですか1060?コードと金属の間で起こっているすべてを理解することで、非常に良い見積もりを出すことができるかもしれませんが、最終的には、時間と労力に見合うだけの価値はないでしょう。Big O表記(可能であれば単純なモデル)が計算時間の変動の大部分をキャプチャしていることを確認する可能性があります。ボトルネックに気付いた場合にできることの1つは、パフォーマンスのプロファイリングです。


2

それはあなたが必要とするものに依存します。任意のリソースで任意のサイズのネットワークをトレーニングできます。問題は訓練の時間です。平均的なCPUでInceptionをトレーニングする場合、収束に数か月かかります。したがって、それはすべて、ネットワークに基づいて結果が表示されるのを待つことができる時間に依存します。ニューラルネットの場合、1つの操作だけでなく多くの操作(連結、最大プーリング、パディングなど)があるため、検索しているときに推定を行うことは不可能です。悪名高いネットワークのトレーニングを開始し、時間を測定するだけです。次に、検索しているネットワークのトレーニングにかかる​​時間を補間できます。


さまざまなNNジョブの情報を収集するリソースを知っていますか?つまり、NNタイプ、ユニット数、ハイパーパラメータ、データセットサイズ、使用ハードウェア、所要時間のリストですか?それは経験則の直観の発達に役立つでしょう
pascalwhoop
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.