Skip to main content

PyTorchでGPUを使用する方法

PyTorchでディープラーニングモデルにGPUを使用するための短いチュートリアルを以下に示します。 1. **GPUの利用可能性の確認**: GPUが利用可能かどうかを確認するには、`torch.cuda.is_available()`を使用します。 2. **デバイスの設定**: モデルとデータをGPU上で実行するには、デバイスにGPUを指定します。例えば、`device = torch.device("cuda" if torch.cuda.is_available() else "cpu")`を使用します。 3. **モデルの転送**: モデルをGPUに転送するには、`.to(device)`メソッドを使用します。`model = model.to(device)` 4. **データの転送**: テンソルデータもGPUに転送します。`input = input.to(device)`のように使用します。 5. **トレーニングと評価**: GPUを使用してモデルのトレーニングや評価を行います。 6. **GPUメモリの可視化**: GPUメモリ使用量を確認するには、`torch.cuda.memory_allocated()`や`torch.cuda.memory_reserved()`を使用します。
Created on August 5|Last edited on August 5

セクション

紹介

このレポートでは、GPUの使用方法とより多くの制御を行う方法について説明します。
私たちは、Weights and Biasesを使用して、すべてのGPUとCPUの利用メトリクスを自動的にログに記録します。これにより、多数のモデルをトレーニングする際の計算リソースの使用状況を簡単に監視できます。
続行する前に、まだしていない場合は、PytorchがGPUを使用しているか確認する

GPUの在庫状況を確認する

GPUにアクセスできるか確認する最も簡単な方法は、呼び出すことです。torch.cuda.is_available()。システムにNvidiaドライバーが正しくインストールされていることを意味します。
>>> import torch
>>> torch.cuda.is_available()


GPUの落とし穴

  • デフォルトでは、テンソルはCPU上で生成されます。モデルもCPU上で初期化されます。したがって、操作がGPUを使用して実行されるように手動で確認する必要があります。
    >>> X_train = torch.FloatTensor([0., 1., 2.])
    >>> X_train.is_cuda
    False
  • PyTorchは、CPU上で生成されたテンソルをGPUに転送するための簡単に使用できるAPIを提供しています。新しいテンソルは親テンソルと同じデバイス上で生成されます。
    >>> X_train = X_train.to(device)
    >>> X_train.is_cuda
    True
  • 同じ論理がモデルにも当てはまります。
    model = MyModel(args)
    model.to(device)
  • したがって、データとモデルをGPUに転送する必要があります。さて、何がdevice
  • これは、通常、という名前が付けられる変数を初期化する一般的なPyTorchの実践です。device私たちがトレーニングしているデバイス(CPUまたはGPU)を保持します。
    device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
    print(device)


トーチCUDAパッケージ

パイトーチでは、torch.cudaパッケージにはCUDAテンソルタイプの追加サポートがあり、これらはCPUテンソルと同じ機能を実装しますが、計算にGPUを使用します。
  • テンソルをGPUに配置したい場合は、呼び出すことができます。.cuda()
    >>> X_train = torch.FloatTensor([0., 1., 2.])
    >>> X_train = X_train.cuda()
  • GPU上のテンソルをCPUに移動したい場合は、次の���うに呼び出すことができます。.cpu()これは通常、モデルの出力(テンソル)をCPUに移動するために使用されます。
  • 現在選択されているデバイスのインデックスを取得します。
    >>> torch.cuda.current_device() # returns 0 in my case
  • 利用可能なGPUの数を取得する。
    >>> torch.cuda.device_count() # returns 1 in my case
  • デバイスの名前を取得するために。
    >>> torch.cuda.get_device_name(0) # good old Tesla K80


例とGPUメトリクスの可視化


リンクされたColabノートブックを試して、PyTorchを使用してシンプルなMNIST分類器を訓練してください。ノートブックはと統合されています。重みとバイアス
モデルをWeights & Biasesで追跡している場合、GPU使用率を含むすべてのシステムメトリクスが自動的に記録されます。記録される最も重要なメトリクスのいくつかは、GPUメモリの割り当て、GPU使用率、CPU使用率などです。記録されるメトリクスの完全なリストを確認できます。ここ
以下のメディアパネルには、トレーニング中にW&Bによって自動的に記録されたこれらのシステムメトリクスの一部が表示されています。



Run set
0


要約

この記事では、Kerasを使用して深層学習の研究にGPUを活用し、Weights and Biasesを利用してリソース消費を監視する方法を確認しました。Lambda Labsによる素晴らしい記事をぜひチェックしてください。トラッキングシステムのリソース利用率重みとバイアスを用いたトレーニング中に。

ウェイト&バイアスを試してみてください。

Weights & Biasesは、機械学習の実験を追跡するのに役立ちます。ハイパーパラメータを記録して、実行からのメトリクスを出力し、結果を視覚化して比較し、同僚と迅速に共有するためのツールを試してください。
開始する5分以内にReplitで2つのクイックな実験を実行して、W&Bがどのようにあなたの作業を整理するのに役立つかを確認し、以下の指示に従ってください。
指示:
  1. 緑色の「実行」ボタンをクリックしてください。(初回の実行時、Replitは約30~45秒かけてマシンを割り当てます)
  2. ターミナルウィンドウの指示に従ってください。(右下のペインの下)
  3. ターミナルウィンドウのサイズを変更できます。(右下)で拡大表示



PyTorchに興味がある人におすすめの読書リスト



Sadegh Pouriyan
Sadegh Pouriyan •  
You imported torch and checked whether Cuda is available or not. Which version of PyTorch were you installed? GPU version or cpuonly version?
1 reply