pytorch的并行:nn.DataParallel 方法

该文描述了在PyTorch中进行深度学习模型训练的步骤,包括设置CUDA环境、初始化随机种子、创建UNetSeeInDark模型并使用DataParallel进行多GPU并行训练。同时,文章还详细说明了如何从磁盘加载并重新部署已训练的模型到CUDA设备上。
摘要由CSDN通过智能技术生成

1. 训练

   # 1.当前版本信息
   print(torch.__version__)
   print(torch.version.cuda)
   print(torch.backends.cudnn.version())
   print(torch.cuda.get_device_name(0))

   np.random.seed(0)
   torch.manual_seed(0)
   torch.cuda.manual_seed_all(0)
   torch.backends.cudnn.deterministic = True
   torch.backends.cudnn.benchmark = False

   # 2. 设置device信息 和 创建model

   model = UNetSeeInDark()
   model._initialize_weights()

   gpus = [0,1,2,3]
   model = nn.DataParallel(model, device_ids=gpus)
   device = torch.device('cuda:0')
   model = model.cuda(device=gpus[0])
  # 如果不使用并行,只需要注释掉 model = nn.DataParallel(model, device_ids=gpus)

2. 载入并行训练的模型的时候 ,可能需要replace module

def get_model():
    # 1.当前版本信息
    print(torch.__version__)
    print(torch.version.cuda)
    print(torch.backends.cudnn.version())
    print(torch.cuda.get_device_name(0))

    # 2. model path and saved sample path
    m_path = r'D:\savedmodel\ruipai_n2n\checkpoint_8000.pth'

    # 3. load model
    device = torch.device('cuda:0')
    model_copy = UNetSeeInDark().to(device)

    # checkpoint = torch.load(m_path)
    # model_copy.load_state_dict({k.replace('module.', ''): v for k, v in checkpoint.items()})
    model_copy.load_state_dict(torch.load(m_path, map_location=device))
    model_copy.eval()
    return model_copy
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值