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

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

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

推薦する

この式がブロックされると、AI IQはゼロになります

[[214770]]この記事はQuantum School(WeChat:quantumschool...

...

2021年、AIはどんな未来を迎えるのでしょうか?

人工知能は新しい時代の「電気」であると主張する人もいます。市場調査会社IDCのデータによると、AIハ...

「初の顔認証事件」の最終判決がこちら

[[392244]] 4月9日午後3時、「初の顔認識事件」は杭州市中級人民法院で二審判決を受けた。こ...

SIZEアルゴリズム: データストレージセキュリティの革命

スケンダーさん、あなたの発明の本質から始めましょう。 SIZEアルゴリズム開発とは何ですか?このアル...

IoTソリューションは、より効果的なデータ駆動型警察活動の基盤を築く

個人によって生成されるデータの量と種類が増加し続けるにつれて、警察はそれに追いつくために効果的な自動...

公正な AI システムを構築するにはどうすればよいでしょうか?

人工知能はあらゆる業界の企業で急速に導入されており、企業は今後 3 年間で AI システムへの支出を...

機械学習と予測分析の違いは何ですか?

[[279165]]今日、認知学習はかつてないほど普及しています。一般的に言えば、認知学習と認知コ...

中国の新世代人工知能レポートが発表:中国はAI論文数で世界一

[[266390]] 5月24日、浦江イノベーションフォーラムで「中国の新世代人工知能発展報告書20...

...

なぜアルゴリズムを犬のように飼いならすのか

[[114872]]進化人類学者の間では、子犬などのペットが野生動物から進化したのは、社会的な知性を...

ビッグデータと人工知能の時代において、監査人は依然としてアイデアを持つ必要があるのでしょうか?

誰もが考えを持っており、監査人もそれぞれ心の中にさまざまな考えを持っています。表面的には、監査スキル...

チューリング賞受賞者のヤン・ルカン氏:今後数十年間の AI 研究の最大の課題は「予測世界モデル」

ディープラーニングの大規模な応用の後、人々はさらなる技術的進歩をもたらすことができる真の汎用人工知能...

442人の著者による100ページの論文! Googleは2年かけて大規模モデル向けの新しいベンチマーク「BIG-Bench」をリリースした。

1 件の AI 論文、442 人の著者。著者の貢献のために特別な章も設けられています。 100ペー...

AIドクターは正式に勤務中ですか? AIと医療の融合が爆発点に到達!

近年、医療分野における人工知能の応用が非常にホットな話題となっています。 「ニューイングランド・ジャ...