Introduction

chainerに付属している DCGAN(Deep Convolution Generative Adversarial Networks) のサンプルを動かした際のエラーについての対応メモ。

Resolution

backend がない

下記のエラーが出る。

1
2
3
4
5
6
7
> python -i train_dcgan.py
Traceback (most recent call last):
File "train_dcgan.py", line 9, in <module>
from net import Discriminator
File "D:\Works\Python\Envs\chainer\chainer\examples\dcgan\net.py", line 5, in <module>
from chainer import backend
ImportError: cannot import name 'backend'

理由としては、現時点(2018/10/21)でのgithubのリポジトリがChainerのv5.0へ移行し始めている。
その過程でI/Fに下記の変更がはいった模様。

要するに、

1
from chainer import backends 

1
from chainer import backend 

こうなったと。
で、pipからインストールしたchainerは

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
> python -m pip freeze chainer
certifi==2018.10.15
chainer==4.5.0
colorama==0.3.9
cupy==4.5.0
fastrlock==0.4
filelock==3.0.9
isort==4.3.4
lazy-object-proxy==1.3.1
mccabe==0.6.1
numpy==1.15.2
protobuf==3.6.1
six==1.11.0
typed-ast==1.1.0
wincertstore==0.2

となっており、ずれている、というわけです。
なので、githubのブランチをv4に変更して実行するのが正解。

PIL がない

1
2
3
4
5
6
7
> python -i train_dcgan.py
Traceback (most recent call last):
File "train_dcgan.py", line 14, in <module>
from visualize import out_generated_image
File "D:\Works\Python\Envs\chainer\chainer\examples\dcgan\visualize.py", line 6, in <module>
from PIL import Image
ModuleNotFoundError: No module named 'PIL

なので、Pillowをインストール。
いつも、PILをインストールしようとするけど、そういう名前のパッケージはないのね。

1
2
3
4
5
6
> python -m pip install Pillow
Collecting Pillow
Downloading https://files.pythonhosted.org/packages/bd/39/c76eaf781343162bdb1cf4854cb3bd5947a87ee44363e5acd6c48d69c4a1/Pillow-5.3.0-cp36-cp36m-win_amd64.whl (1.6MB)
100% |████████████████████████████████| 1.6MB 975kB/s
Installing collected packages: Pillow
Successfully installed Pillow-5.3.0

CUDAが使えない

1
2
3
4
5
6
7
8
9
10
> python -i train_dcgan.py -g 0
GPU: 0
# Minibatch-size: 50
# n_hidden: 100
# epoch: 1000

D:\Works\Python\Envs\chainer\lib\site-packages\chainer\backends\cuda.py:95: UserWarning: cuDNN is not enabled.
Please reinstall CuPy after you install cudnn
(see https://docs-cupy.chainer.org/en/stable/install.html#install-cupy-with-cudnn-and-nccl).
'cuDNN is not enabled.\n'

cuDNNをインストールして、CuPyを再インストールしろ、ってエラーです。
自分の環境にインストールされているcuDNNを調べて適切なCuPyをインストールします。
普通のCuPyは削除しなくてもOKでした。

1
2
3
4
5
6
7
8
9
> python -m pip install cupy-cuda92
Collecting cupy-cuda92
Downloading https://files.pythonhosted.org/packages/1a/23/0a8f34c97486ff7e18c5db9bcd76f62605adcf9b63f6fc247229e5df24b4/cupy_cuda92-4.5.0-cp36-cp36m-win_amd64.whl (231.7MB)
100% |████████████████████████████████| 231.7MB 92kB/s
Requirement already satisfied: numpy>=1.9.0 in d:\works\python\envs\chainer\lib\site-packages (from cupy-cuda92) (1.15.2)
Requirement already satisfied: six>=1.9.0 in c:\users\takuya\appdata\roaming\python\python36\site-packages (from cupy-cuda92) (1.11.0)
Requirement already satisfied: fastrlock>=0.3 in d:\works\python\envs\chainer\lib\site-packages (from cupy-cuda92) (0.4)
Installing collected packages: cupy-cuda92
Successfully installed cupy-cuda92-4.5.0

cuDNNはC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vX.Xに適切に展開されている必要があります。