PyTorchでGPUを使う方法
PyTorch を使ってディープラーニングのモデルで GPU を使うための短いチュートリアルです。GPU の利用可能性の確認から、メトリクスの可視化までを扱います。
Created on August 12|Last edited on August 12
Comment
セクション一覧
イントロダクション
このレポートでは、GPUを使いこなし、より細かく制御するための方法を順を追って解説します。
Weights & Biases を使うと、GPU と CPU の利用率に関するメトリクスを自動でログできます。これにより、多数のモデルを学習する際の計算資源の使用状況を簡単に監視できます。
GPU の利用可能性を確認する
GPU に アクセス できるかを確認する最も簡単な方法は、次を呼び出します。 torch.cuda.is_available()これが True を返した場合、システムに NVIDIA ドライバーが正しくインストールされていることを意味します。
>>> import torch>>> torch.cuda.is_available()
GPU 利用時の注意点
- デフォルトではテンソルはCPU上で生成されます。モデルもCPU上で初期化されます。そのため、GPUを使って処理が行われるように手動で確実に設定する必要があります。>>> X_train = torch.FloatTensor([0., 1., 2.])>>> X_train.is_cudaFalse
- PyTorchは、CPUで生成したテンソルをGPUへ転送するための使いやすいAPIを提供しています。ありがたいことに、新しく生成されるテンソルは親テンソルと同じデバイス上に生成されます。>>> X_train = X_train.to(device)>>> X_train.is_cudaTrue
- 同じ考え方がモデルにも当てはまります。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)
torch.cuda パッケージ
PyTorchでは、 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メトリクスの可視化
Weights & Biases でモデルを追跡している場合、GPU の利用可能性を含むすべてのシステムメトリクスが自動的にログに記録されます。特に重要なメトリクスとしては、GPU メモリ使用量、GPU 利用率、CPU 利用率 などがあります。記録されるメトリクスの一覧は次をご覧ください。こちら。
以下のメディアパネルは、トレーニング中に W&B によって自動的に記録されたシステムメトリクスの一部を示しています。
Run set
0
まとめ
本記事では、Keras を使ってディープラーニングの研究で GPU を活用し、Weights & Biases を用いてリソース消費を監視する方法を紹介しました。Lambda Labs によるこちらの優れた記事もあわせてご覧ください。システムリソースの利用状況の追跡トレーニング中に Weights & Biases を使用する場合。
Weights & Biases を試す
Weights & Biases は、機械学習の実験管理を支援します。私たちのツールを使って、実行のハイパーパラメータと出力メトリクスをログし、結果を可視化・比較して、学びをすばやく同僚と共有しましょう。
手順
- 下の緑色の「Run」ボタンをクリックしてください初回に実行をクリックすると、Replit がマシンを割り当てるまで約30〜45秒かかります。
- ターミナルウィンドウの指示に従ってください(右下のペイン)
- ターミナルウィンドウのサイズを変更できます(右下)拡大表示用
PyTorch に関心のある方へのおすすめ読み物
PyTorch Dropout for regularization - tutorial
Learn how to regularize your PyTorch model with Dropout, complete with a code tutorial and interactive visualizations
How to save and load models in PyTorch
This article is a machine learning tutorial on how to save and load your models in PyTorch using Weights & Biases for version control.
Image Classification Using PyTorch Lightning and Weights & Biases
This article provides a practical introduction on how to use PyTorch Lightning to improve the readability and reproducibility of your PyTorch code.
Add a comment
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