数据在CPU与GPU之间来回切换的pytorch方法:
数据从CPU放到GPU,即数据从CPU到GPU的迁移,使用以下语句:
data.to("cuda")
数据 从GPU到CPU,使用以下语句:
data.to("cpu")
data通常会有两种数据类型:
1. Tensor
2. Module
to函数:转换数据类型/设备
1. tensor.to(*args, **kwargs)
2. module.to(*args, **kwargs)
举例:
1. tensor的to函数使用
a = torch.ones((2, 2))
a = a.to(torch.float64)
b = torch.ones((3, 3))
b = b.to("cuda")
2. module的to函数使用
fn = torch.nn.Linear((2,2))
fn.to(torch.float64)
gpu = torch.device("cuda")
fn.to(gpu)
张量与模型to函数的区别:
张量不执行inplace,模型执行inplace。也就是说,张量的to函数之后会重新构建一个新的张量,而module无需构建新的张量。
张量的cuda方法
b.cuda()
此方法也可以将张量迁移到GPU当中(与b.to("cuda")作用相同 ),但它是pytorch0.4.0之前的,现在已经弃用了。