如何使用 chainer 在 google colab 上从 CPU 切换到 GPU?

How do I switch from CPU to GPU on google colab using chainer?

我遵循了 Chainer 文档上的说明,这导致我在 运行 我的代码时出错:

RuntimeErrorTraceback (most recent call last)
<ipython-input-9-ffb21f9880f0> in <module>()
      ...
      6 model = Classifier(CompetitionNetwork(n_units = 64))
----> 7 model.to_gpu()
      ...
RuntimeError: CUDA environment is not correctly set up
(see https://github.com/chainer/chainer#installation).No module named cupy

然后我尝试以多种不同的方式安装 cupy, 其中之一是

!apt -y install libcusparse8.0 libnvrtc8.0 libnvtoolsext1
!ln -snf /usr/lib/x86_64-linux-gnu/libnvrtc-builtins.so.8.0 /usr/lib/x86_64-linux-gnu/libnvrtc-builtins.so
!pip install cupy-cuda80 chainer

在导入 cupy 之后一直给我同样的错误,然后 运行 我的代码:

RuntimeError: CUDA environment is not correctly set up (see
https://github.com/chainer/chainer#installation).No module named cupy

接下来我尝试使用这个安装 cuda:

!wget https://developer.nvidia.com/compute/cuda/9.2/Prod/local_installers/cuda-repo-ubuntu1604-9-2-local_9.2.88-1_amd64 -O cuda-repo-ubuntu1604-9-2-local_9.2.88-1_amd64.deb

!dpkg -i cuda-repo-ubuntu1604-9-2-local_9.2.88-1_amd64.deb

!apt-key add /var/cuda-repo-<version>/7fa2af80.pub

!apt-get update

!apt-get install cuda

这花了很长时间,似乎可行,但最后还是给我同样的错误。

似乎在Google Colab 的GPU 上使用Chainer 非常困难,除非我做错了什么。使用 Tensorflow 就容易多了。有人有在 Google 的 GPU 上使用 Chainer 的经验吗?

您可能想看看这个 Chainer 示例。

https://colab.research.google.com/drive/1SsxHvQdSz23kaVov8yKizVD3_2tkXdZM

如果您在 Google Colab 环境中遇到问题,

  1. 首先尝试从运行时菜单中选择 "Restart runtime..." 重新启动运行时。
  2. 如果不能解决问题,运行下面的代码销毁并重新创建容器(注意:你会丢失在容器上创建的文件),这样你可以从干净的状态重新开始。 运行执行命令后,您可能需要等待一分钟,然后刷新浏览器以重新加载笔记本。

    !kill -9 -1
    

您安装Chainer/CuPy的安装步骤是正确的。 https://github.com/kmaehashi/chainer-colab

您不必手动安装 CUDA 工具包; Colab容器默认提供。

我检查了 python2 上的 chainer 是否适用于 google-colab。

https://colab.research.google.com/gist/fiarabbit/a44a8b3ff25afc78849c62c2f75b25dd

我确认 chainer w/ python2 在 google-colab 上工作。

重点是您不需要像 kmaehashi 给出的 mnist-example 那样通过 wget 安装 cupy。

此外,不要忘记打开 GPU。