MacBookのグラフィックカードがAIモデルを実行できないのはもったいない:このディープラーニングツールはすべてのブランドのGPUをサポートしています

MacBookのグラフィックカードがAIモデルを実行できないのはもったいない:このディープラーニングツールはすべてのブランドのGPUをサポートしています

PlaidML と呼ばれるこのツールを使用すると、NVIDIA、AMD、または Intel のグラフィック カードに関係なく、ディープラーニングのトレーニングを簡単に実行できます。

[[315945]]

周知のとおり、ディープラーニングは2010年代のNVIDIAのGPUコンピューティング能力の向上により急速に発展しました。しかし、現在市場には多くのブランドのグラフィックカードがあり、それらも優れたパフォーマンスを備えています。後者はAIモデルのコンピューティング能力の基礎となることができるでしょうか?

[[315946]]

答えが「はい」であれば、私たちのラップトップ、特に多額のお金をかけて購入した MacBook Pro を使ってディープラーニング モデルを実行できます。

MacBookProはテクノロジー界隈で広く普及しており、品質も良いのですが、ディープラーニングには使えないのが残念です。 MacBookを購入する際、一部の人はディスクリートグラフィックカードに多額のお金をかけますが、ディープラーニングに関しては、お金が無駄になることに気づきます。なぜなら、長い間、ほとんどの機械学習モデルは、汎用GPUライブラリCUDAを通じてのみNVIDIAのGPUを使用できたからです。

しかし、本当に選択の余地はないのでしょうか? Medium のブロガーは、そうではないと述べています。 PlaidML と呼ばれるディープラーニング フレームワークがこのジレンマを解決できます。

並列コンピューティングに GPU を使用する理由は何ですか?

たとえば、家を建てる場合、一人でやる場合は 400 時間かかりますが、建築業者を雇えば、おそらくその時間を半分に短縮できます。雇う労働者の数が増えるほど、家は早く建ちます。これはアムダールの法則が明らかにしたものです。これは、並列コンピューティング後にプロセッサの効率を向上させる能力を表す、コンピュータ サイエンスにおける経験則です。

[[315948]]

では、なぜ GPU を使用するのでしょうか? GPU はもともとディープラーニング用に設計されたものではありませんが、並列コンピューティングの性質はグラフィックス処理に似ているようです。単一の GPU コアはパフォーマンスが劣りますが、高度な並列構造と多数のコアを備えているため、大規模なデータ ブロックのアルゴリズムを処理する場合、CPU よりも効率的です。グラフィックス処理とディープラーニングの本質的な類似性により、GPU はディープラーニングと並列コンピューティングの第一の選択肢となっています。

CUDA以外に選択肢はないのでしょうか?

しかし、GPU の並列機能を利用する場合、NVIDIA の CUDA は避けて通れません。この汎用並列コンピューティング ライブラリは、ディープラーニングには不可欠です。現在、高性能クラウド コンピューティングや DL サーバーが NVIDIA GPU を使用する主な理由は CUDA です。

ラップトップの並列機能を最大限に活用したいが、N カードを購入する余裕がない場合は、この記事で紹介した PlaidML が非常に適しています。

プロジェクトアドレス: https://github.com/plaidml/plaidml

PlaidML は、2017 年に Vertex.AI によってオープンソース化されたディープラーニング ツールキットです。 2018年にIntelはVertex.AIを買収した。 PlaidML 0.3.3 がリリースされた後、開発者は Keras を使用して、AMD および Intel GPU 上で並列ディープラーニング タスクを完了できるようになりました。先月、Vertex.AI は PlaidML のバージョン 0.7.0 をリリースしました。

PlaidML は、ラップトップ、組み込みデバイス、その他のデバイスでディープラーニングを可能にするポータブル テンソル コンパイラです。重要なのは、CUDA ではなく、オープン スタンダードの OpenCL に依存していることです。

OpenCL 汎用並列コンピューティング オープン スタンダードは、N カード専用に設計されていないため、AMD、Intel、NVIDIA のいずれであっても、ラップトップ GPU をサポートできます。

[[315949]]

多くの読者は、OpenCL エコシステムは CUDA ほど成熟しておらず、開発がそれほど安定して速くないのではないかと考えているかもしれません。ただし、複雑な基礎メカニズムは PlaidML に任せることができ、私たちはそれを使用するだけで済みます。

PlaidML に触れる必要すらありません。PlaidML は一般的なディープラーニング フレームワークに統合されており、ユーザーはどのハードウェアでも呼び出すことができます。現在、PlaidML は Keras、ONNX、nGraph などのツールをすでにサポートしています。Keras を直接使用してモデルを構築し、MacBook の GPU を簡単に使用できます。

さて、本題に入りましょう。ラップトップの GPU を使用してシンプルな CNN を実行する方法です。

ラップトップのGPUでニューラルネットワークを実行する

PlaidMLと関連コンポーネントをインストールして設定する

まず、ラップトップに Python 3 がインストールされていることを確認する必要があります。著者は、次のコードを仮想環境で実行することを推奨しています。

  1. #まだインストールしていない場合はpython3 virtualenv をインストールします
  2. pip3 仮想環境をインストールする
  3.   
  4. # ケース仮想環境を作成してアクティブ化します  
  5. python3 -m venv プレイドml-venv
  6. ソース plaidml-venv/bin/activate
  7.   
  8. # KerasでPlaidMLをインストールする
  9. pip インストール -U plaidml-keras

標準の TensorFlow フレームワークの Keras では PlaidML を使用できないため、PlaidML でカスタマイズされた Keras をインストールする必要があることに注意してください。

  1. # 適切なデバイスを使用するためにPlaidMLを設定します
  2. plaidml セットアップ

PlaidML の設定手順 2。

これで、選択したデバイスのリストが表示されます。著者のコンピューター Macbook Pro 15'2018 を例にとると、デバイス リストは次のようになります。

  • CPU
  • インテルUHDグラフィックス630
  • AMD Radeon Pro 560x グラフィック カード

最後に、「y」または「nothing」と入力して戻り、設定を保存します。これですべてがインストールされ、GPU を使用してディープラーニング プロジェクトを実行できるようになりました。

ファッション mnist で CNN 分類器を作成する

まず、Jupyter Notebook を起動します。

  1. ジュピターノートブック

次に、Keras バックエンドとして PlaidML を使用するために次のコードを実行します。それ以外の場合は、デフォルトで TensorFlow が使用されます。

  1. # PlaidMLをインポートしています。必ずこの順序に従ってください
  2. plaidml.kerasをインポートする
  3. plaidml.keras.install_backend()
  4. インポートOS
  5. os.environ[ "KERAS_BACKEND" ] = "plaidml.keras.backend"  

これで、パッケージをインポートしてファッション データセットをダウンロードできます。

  1. kerasをインポートする
  2. keras.modelsからSequentialをインポートする
  3. keras.layers からDense、Dropout、Flatten をインポートします
  4. keras.layers からConv2D、MaxPooling2Dをインポートします
  5. kerasからバックエンドをKとしてインポートします
  6.  
  7. # Kerasからファッションデータセットをダウンロードする
  8. ファッション_mnist = keras.datasets.fashion_mnist
  9. (x_train, y_train)、(x_test, y_test) = keras.datasets.fashion_mnist.load_data()
  10.  
  11. # データを再形成して正規化する
  12. x_train = x_train.astype( 'float32' ).reshape( 60000 , 28 , 28 , 1 ) / 255  
  13. x_test = x_test.astype( 'float32' ).reshape( 10000 , 28 , 28 , 1 ) / 255  

次に、Keras のシーケンシャル モジュールを使用して、単純な CNN を作成し、コンパイルします。

  1. # CNN モデルを構築します。このチャンクを実行すると、 「INFO:plaidml:Opening device xxx」と表示されます。
  2. モデル = keras.Sequential()
  3. model.add ( keras.layers.Conv2D (フィルター= 64 、カーネルサイズ= 2 、パディング= 'same' 、アクティベーション= ' relu' 、入力シェイプ=( 28、28、1 ) ))
  4. モデルを追加します(keras.layers.MaxPooling2D(pool_size= 2 ))
  5. モデルを追加します(keras.layers.Dropout( 0.3 ))
  6. model.add(keras.layers.Conv2D(フィルター= 32 、カーネルサイズ= 2 、パディング= 'same' 、アクティベーション= 'relu' ))
  7. モデルを追加します(keras.layers.MaxPooling2D(pool_size= 2 ))
  8. モデルを追加します(keras.layers.Dropout( 0.3 ))
  9. モデルを追加します(keras.layers.Flatten())
  10. モデルを追加します(keras.layers.Dense( 256 , activation= 'relu' ))
  11. モデルを追加します(keras.layers.Dropout( 0.5 ))
  12. モデルを追加します(keras.layers.Dense( 10 , activation= 'softmax' ))
  13.  
  14. # モデルをコンパイルする
  15. model.compile(optimizer= 'adam' ,
  16. 損失=keras.losses.sparse_categorical_crossentropy、
  17. メトリック=[ '精度' ])

次に、モデルを適合させてその精度をテストします。

  1. # トレーニングセットにモデルを適合させる
  2. モデル.fit(x_train, y_train,
  3. バッチサイズ = 64
  4. エポック = 10 )
  5.  
  6. # テストセットでモデルを評価する
  7. スコア = model.evaluate(x_test, y_test, 詳細 = 0 )
  8. # 印刷テストの精度
  9. print( '\n' , 'テスト精度:' , score[ 1 ])

その他の結果。

私たちがトレーニングした畳み込みニューラル ネットワーク モデルは、ファッション分類タスクで 91% の精度を達成し、トレーニングにはわずか 2 分しかかかりませんでした。この数字はそれほど印象的ではないかもしれませんが、CPU のトレーニングにかかる​​時間を考慮してください。

CPUを使用して同じタスクを完了するには2219秒(約37分)かかり、この間Macのファンは狂ったように出力します。

上記の結論から、Macbook Pro の GPU を使用したディープラーニング計算は、単純に CPU を使用する場合よりも 15 倍高速であることがわかります。 PlaidML を使用すると、自分のラップトップを使用してディープラーニング モデルをトレーニングすることがさらに簡単になります。

現在(2020 年 2 月)の時点で、PlaidML はさまざまなブランドの GPU と互換性があり、CUDA/cuDNN なしで NVIDIA グラフィック カードを使用した場合でも同様のパフォーマンスを実現できます。

PlaidML の GitHub ページで、さらに多くのデモや関連プロジェクトを見ることができます。このツールが開発され続けるにつれて、より多くのアルゴリズムがサポートされるようになると思います。ラップトップで小さなモデルを素早くテストすることもできます。

<<:  過剰に防御的?モスクワのバス運転手は中国人乗客の身元を手動で確認し、顔認識システムの使用も許可されている。

>>:  機械学習に必要なエンジニアリングの量は将来大幅に削減されるだろう

ブログ    

推薦する

日本の芥川賞受賞者が認める:小説の5%はChatGPTによって書かれた

1月22日、日本で最も権威のある文学賞である芥川賞を受賞した作家が、受賞作である小説「東京同情塔」の...

人工知能は人類のより良い生活を可能にする

新世代人工知能の活発な発展は、科学技術革新と産業のアップグレードと変革の産業推進の焦点となり、経済社...

顔認識がコミュニティに登場: 「顔スキャン」の背後にあるプライバシーとセキュリティの問題

李静さん(仮名)は、団地内の自分のアパートのドアを開けることができなくなった。ドアには「顔認識」装置...

ドキュメントの分類が複雑すぎますか? MITとIBMは協力してこの問題を解決した

[[286340]] 【画像出典:venturebeat オーナー:venturebeat 】この記...

最も美しいデジタルガールフレンドをDIYしましょう! MITが最強の仮想人間ジェネレーターのソースコードを公開、ネイチャー誌に掲載

MITメディアラボの研究者らは、仮想キャラクターを生成するツールをオープンソース化した。このツールは...

...

テンセントと清華大学が新インフラ分野の最新成果を発表:データセンターのバッテリー設備向けAI診断サービス

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

ドローンは「緊急産業」がインテリジェンスの時代に移行するのに大いに役立つ

私の国は、世界で最も深刻な災害に見舞われる国の一つです。自然災害は一般的に、種類が多く、被害地域が広...

...

スマート シティ: 誇大広告と現実を切り離す!

スマート シティをめぐる熱狂はかつてないほど高まっていますが、この熱狂の中で、スマート シティが私た...

...

...

ディープラーニングは私たちの生活に革命をもたらした

【51CTO.com クイック翻訳】ディープラーニングが泡のようなものだとしたら、それを真に制御する...

長文情報の精度はChatGPTを上回る、Metaは大規模モデルの幻覚を軽減する新手法を提案

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...