kri*_*nab 5 python gpu pytorch tensor
我是 Pytorch 的新手,但它看起来很不错。我唯一的问题是什么时候使用tensor.to(device)or Module.nn.to(device)。
我正在阅读有关此主题的文档,它表明此方法会将张量或模型移动到指定的设备。但是我不清楚这需要哪些操作,如果我不使用.to()正确的时间会出现什么样的错误?
例如,如果我只是创建一个张量,我想象张量存储在 CPU 可访问的内存中,直到我将张量移动到 GPU。一旦张量在 GPU 上,GPU 就会对该张量执行任何数学运算。
但是,我是否必须担心不小心将数据张量传输到 GPU 而没有将模型传输到 GPU?这只会给我带来直接的错误,还是会在幕后进行大量昂贵的数据传输。这个例子对我来说很容易测试,但我只是想知道它可能不那么明显的其他情况。
任何指导都会有所帮助。
模型和数据必须在同一设备(CPU 或 GPU)上,模型才能处理数据。CPU 上的数据和 GPU 上的模型,反之亦然,将导致运行时错误。
如果可用,您可以将可变设备设置为 cuda,否则将设置为 cpu,然后将数据和模型传输到设备:
import torch
device = 'cuda' if torch.cuda.is_available() else 'cpu'
model.to(device)
data = data.to(device)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4855 次 |
| 最近记录: |