Python 如何在Google Colab中安装CUDA-没有ATen_CUDA库,无法初始化CUDA

Python 如何在Google Colab中安装CUDA-没有ATen_CUDA库,无法初始化CUDA,python,runtime-error,pytorch,google-colaboratory,Python,Runtime Error,Pytorch,Google Colaboratory,我试图在Goolge Colab中使用cuda,但在运行我的程序时,我遇到以下错误 运行时错误:没有ATen_CUDA库,无法初始化CUDA。PyTorch将其后端拆分为两个共享库:一个CPU库和一个CUDA库;发生此错误的原因是您试图使用某些CUDA功能,但由于某些原因,动态链接器尚未加载CUDA库。必须加载CUDA库,即使您不直接使用CUDA库中的任何符号!一个常见的罪魁祸首是缺乏-Wl,-no作为你的链接论点所需要的;如果您不依赖动态链接器的任何符号,则许多动态链接器将删除动态库依赖项。您

我试图在Goolge Colab中使用cuda,但在运行我的程序时,我遇到以下错误

运行时错误:没有ATen_CUDA库,无法初始化CUDA。PyTorch将其后端拆分为两个共享库:一个CPU库和一个CUDA库;发生此错误的原因是您试图使用某些CUDA功能,但由于某些原因,动态链接器尚未加载CUDA库。必须加载CUDA库,即使您不直接使用CUDA库中的任何符号!一个常见的罪魁祸首是缺乏-Wl,-no作为你的链接论点所需要的;如果您不依赖动态链接器的任何符号,则许多动态链接器将删除动态库依赖项。您可以通过在二进制文件上使用ldd来检查是否发生了这种情况,以查看是否存在对*\u cuda.so库的依赖关系

我安装了以下库

from os.path import exists
from wheel.pep425tags import get_abbr_impl, get_impl_ver, get_abi_tag
platform = '{}{}-{}'.format(get_abbr_impl(), get_impl_ver(), get_abi_tag())
cuda_output = !ldconfig -p|grep cudart.so|sed -e 's/.*\.\([0-9]*\)\.\([0-9]*\)$/cu\1\2/'
accelerator = cuda_output[0] if exists('/dev/nvidia0') else 'cpu'

!pip install -q http://download.pytorch.org/whl/{accelerator}/torch-0.4.1-

{platform}-linux_x86_64.whl torchvision
%matplotlib inline
%config InlineBackend.figure_format = 'retina'

import matplotlib.pyplot as plt
import time
import torch
from torch import nn
from torch import optim
import torch.nn.functional as F
from torchvision import datasets, transforms, models
!pip install Pillow==5.3.0
# import the new one
import PIL
我正在尝试运行以下代码

for device in ['cpu', 'cuda']:

    criterion = nn.NLLLoss()
    # Only train the classifier parameters, feature parameters are frozen
    optimizer = optim.Adam(model.classifier.parameters(), lr=0.001)

    model.to(device)

    for ii, (inputs, labels) in enumerate(trainloader):

        # Move input and label tensors to the GPU
        inputs, labels = inputs.to(device), labels.to(device)

        start = time.time()

        outputs = model.forward(inputs)
        loss = criterion(outputs, labels)
        loss.backward()
        optimizer.step()

        if ii==3:
            break

    print(f"Device = {device}; Time per batch: {(time.time() - start)/3:.3f} seconds")

您是否已选择运行时作为GPU?
选中运行时>更改运行时类型>选择硬件加速器作为GPU

是否尝试了以下操作

进入菜单>运行时>更改运行时。

将硬件加速更改为GPU。