1. ホーム
  2. python

[解決済み] CUDAをpytorchで使う?

2022-01-30 03:29:56

質問内容

このサイトで検索しましたが、古い投稿しか見つかりませんでした。

GPUでトレーニングを実行したいのですが、どうすればいいですか?いくつかのフォーラムで、私は私が適用する必要があることを発見しました。 .cuda() CUDAを使いたいものすべてに適用しました(私はプログラムがクラッシュしないように、できる限りのものに適用しました)。驚いたことに、これではトレーニングがさらに遅くなってしまいます。

すると、こんな使い方があることがわかりました。 torch.set_default_tensor_type('torch.cuda.FloatTensor') を使うとCUDAが使えるようになります。両方有効にしても何も変わりません。何が起きているのでしょうか?

モデル全体で確実にCUDAを有効にする方法はありますか?


また MyModel() とはどういう意味ですか?もっと具体的な例、例えばコード例が欲しい。 (これは私が参照している投稿です)

解決方法は?

を使用することができます。 tensor.to(device) コマンドを使用して、テンソルをデバイスに移動する。

は、その .to() コマンドは、リンク先の投稿のように、モデル全体をデバイスに移動する場合にも使用されます。

もう一つの可能性は、テンソルの作成時に、テンソルのデバイスを設定するために device= のようにキーワード引数で指定します。 t = torch.tensor(some_list, device=device)

コード内で動的にデバイスを設定したい場合は

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

を使用して、可能であればcudaをデバイスとして設定します。

に様々なコード例があります。 PyTorchチュートリアル や上記のリンク先のドキュメントが参考になると思います。