1
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
def get_model(args, configs, device, train=False):
(preprocess_config, model_config, train_config) = configs
model = MultiTaskModel().to(device)
return model
model, optimizer = get_model(args, configs, device, train=True)
model = nn.DataParallel(model)
说明:torch.device(“cuda”) 表示使用默认的 CUDA 设备(通常是 ID 为 0 的 GPU 设备),而 torch.device(“cuda:1”) 表示使用 ID 为 1 的 CUDA 设备。
2
device = torch.device('cuda:%s' % parser['gpu_idx'][0] if cuda else 'cpu') # %0
model = spec_CNN(parser['model'], device).to(device)
if len(parser['gpu_idx']) > 1:
model = nn.DataParallel(model, device_ids=parser['gpu_idx'])
说明:device_ids 是 nn.DataParallel 中的一个可选参数,用于指定在哪些 GPU 上并行训练模型。具体来说,这个参数是一个整数列表。如果不指定 device_ids 参数,nn.DataParallel 默认会将模型并行地训练在所有可用的 GPU 上。
用 f-string格式化字符串
name = 'Alice'
age = 18
title = 'Engineer'
message = f'{name} is an {title} aged {age}.'
print(message) # 输出:Alice is an Engineer aged 18.