📜  测试 cuda pytorch - Python (1)

📅  最后修改于: 2023-12-03 15:26:59.231000             🧑  作者: Mango

在Python中测试使用CUDA和PyTorch

如果您正在使用PyTorch进行深度学习,并且要使用GPU以加速训练和推理,那么本指南将有助于您在Python中测试CUDA和PyTorch,以确保一切正常工作。

何为CUDA?

CUDA是一种通用的并行计算架构,可用于GPU处理器。它由NVIDIA公司开发,可以将计算任务分配给GPU,以加速计算过程。PyTorch是一个基于CUDA的深度学习框架,它使用CUDA来加速模型训练和推理。

测试CUDA是否正常工作

如果您已经安装了CUDA,并且想测试它是否正常工作,则可以在Python中执行以下代码:

import torch

if torch.cuda.is_available():
    print("CUDA is available")
    device = torch.device("cuda")
    print("Device name:", torch.cuda.get_device_name(device))
else:
    print("CUDA is not available")

如果输出为“CUDA is available”并显示了您的GPU设备名称,则您已成功安装了CUDA并准备好在PyTorch中使用它。

测试PyTorch是否正常使用CUDA

接下来,您可以测试PyTorch是否可以使用CUDA来加速模型训练和推理。以下是一个简单的PyTorch程序,用于在GPU上训练一个简单的神经网络,并检查它是否使用了CUDA。

import torch
import torch.nn as nn
import torch.optim as optim

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.fc1 = nn.Linear(2, 1)

    def forward(self, x):
        x = self.fc1(x)
        return x

net = Net()
if torch.cuda.is_available():
    net.cuda()

criterion = nn.MSELoss()
optimizer = optim.SGD(net.parameters(), lr=0.01)

inputs = torch.Tensor([[1.0, 2.0], [2.0, 3.0], [3.0, 4.0], [4.0, 5.0]])
labels = torch.Tensor([[-1.0], [-2.0], [-3.0], [-4.0]])

if torch.cuda.is_available():
    inputs = inputs.cuda()
    labels = labels.cuda()

for epoch in range(500):

    optimizer.zero_grad()
    outputs = net(inputs)
    loss = criterion(outputs, labels)
    loss.backward()
    optimizer.step()

    if epoch % 50 == 0:
        print('Epoch: %d, Loss: %f' % (epoch, loss.item()))

如果PyTorch使用了CUDA,您应该看到输出显示训练过程。如果没有使用CUDA,则会得到运行时错误。

结论

在本指南中,我们演示了如何在Python中测试CUDA和PyTorch的功能。通过测试CUDA和PyTorch是否可以在GPU上工作,您可以确保在训练和推理期间能够获得最佳性能。现在,您可以开始使用PyTorch和CUDA来构建更快,更准确的深度学习模型。