pytorch - Pytorch 照明的 model.to(device)

标签 pytorch pytorch-lightning

我目前使用 Pytorch Lightning 使用 GPU 训练我的模型

trainer = pl.Trainer( gpus=[0,1],  
        distributed_backend='ddp', 
        resume_from_checkpoint=hparams["resume_from_checkpoint"])
    
    trainer.fit(model, train_dataloader=train_loader, val_dataloaders=val_loader)

关于如何使用定义为使用 GPU 的训练器运行测试样本的说明也很清晰

trainer.test(test_dataloader=test_dataloader)

以及如何加载模型并交互使用它

model = transformer.Model.load_from_checkpoint('/checkpoints/run_300_epoch_217.ckpt')
results = model(in_data,

我使用后者通过 Docker 容器中的套接字与交互式系统进行交互。

有没有合适的方法让这个 Pytorch Lightning 模型在 GPU 上运行? Lightning 指令说不要使用 model.to(device),但它的工作原理似乎与 Pytorch 一样。为何需要说明以避免副作用?

我开始阅读有关 ONNX 的内容,但宁愿有一种简单的方法来指定 GPU,因为交互式设置与 cpu 完美配合。

最佳答案

我的理解是,“删除任何 .cuda() 或 to.device() 调用”仅适用于 Lightning 训练器,因为训练器会自行处理。

如果您不使用训练器,LightningModule 模块基本上只是一个具有一些命名约定的常规 PyTorch 模型。所以使用 model.to(device) 就是在 GPU 上运行的方法。

关于pytorch - Pytorch 照明的 model.to(device),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65185608/

相关文章:

python - 正确使用 PyTorch 的 non_blocking=True 进行数据预取

python - PyTorch:如何打印网络中每一层的输出 blob 大小?

python - pytorch 闪电 "got an unexpected keyword argument ' weights_summary'"

python - 使用 Pytorch Lightning 时如何将指标(例如验证损失)记录到 TensorBoard?

python - 使用 PyTorchVideo 加载用于训练视频分类模型的动力学数据集时出错

pytorch-lightning - validation_epoch_end 与 DDP Pytorch Lightning

python - Pytorch Softmax 给出 nans 和负值作为输出

python - 有没有办法覆盖 nn.Module 上的向后操作

python - 分割成 block 后如何合并图像

pytorch - 无法导入 pytorch-lightning