首页 > 解决方案 > 在 pytorch 中训练模型时出现运行时错误

问题描述

RuntimeError:cuda 运行时错误(59):

epochs = 3
print_every = 40
steps = 0

# change to cuda
model.to(device)

for e in range(epochs):
    running_loss = 0
    for ii, (inputs, labels) in enumerate(trainloader):
        steps += 1
        inputs, labels = inputs.to(device), labels.to(device)

        optimizer.zero_grad()

        # Forward and backward passes
        outputs = model.forward(inputs)
        loss = criterion(outputs, labels)
        loss.backward()
        optimizer.step()

        running_loss += loss.item()

        if steps % print_every == 0:
            print("Epoch: {}/{}... ".format(e+1, epochs),
                  "Loss: {:.4f}".format(running_loss/print_every))

            running_loss = 0

我在上面的代码中收到以下错误。

RuntimeError: cuda runtime error (59) : device-side assert triggered at /opt/conda/conda-bld/pytorch_1524584710464/work/aten/src/THC/generic/THCTensorCopy.c:20

我正在使用来自 torchvision.models 的预训练模型之一来获取图像特征。使用这些特征构建和训练一个新的前馈分类器。

而且我不确定我在这里做错了什么。另外,我正在启用 GPU 的 jupyter norebook 内的在线门户上运行此代码。

在此先感谢您的帮助!

标签: pythondeep-learningjupyter-notebookpytorch

解决方案


推荐阅读