PyTorch乱数生成によるCPU占有の高すぎる解決方法


PyTorch乱数生成はCPUを占有する高すぎる問題を発生します。
今日はpytouchを使っていますが、CPUの占有率が高すぎることが分かりました。検査の結果、CPUで乱数を生成してから呼び出します。to(device)がGPUに転送されるので、効率が低くなり、CPUとGPUが消耗されます。
PyTorch文書を調べたら、toch.randn(shop,out)は直接GPUに乱数を生成できます。shpeがtenssor.cudia.Tensorタイプであれば大丈夫です。このようにして、CPUに大きな行列が生成されるのを避けることができ、shape変数は小さい。
そのため、下のコードでこのような操作ができます。

noise = torch.cuda.FloatTensor(shape) if torch.cuda.is_available() else torch.FloatTensor(shape)
torch.randn(shape, out=noise)

以上のPyTorch乱数生成はCPUの高すぎる解決方法を占用します。つまり、小編集は皆さんに全部の内容を共有しています。参考にしてもらいたいです。どうぞよろしくお願いします。