WindowsでPyTorchの「Image Captioning」を試してみる

github.com

環境

Windows 10 Pro
GPUなし
Python 3.6.8(venv使用)

PyTorchのインストール

今回は古いPytorchをpipで導入する。
非常に簡単。

pip install http://download.pytorch.org/whl/cpu/torch-0.4.1-cp36-cp36m-win_amd64.whl
pip install torchvision==0.2.1

学習済みモデルを試すだけならそれ以外のパッケージは不要

コードとモデルのダウンロード

  • コードのダウンロード

上記GitHubページからすべてのコードをZIPファイルでダウンロードして解凍する。
使用するのは「pytorch-tutorial-master\tutorials\03-advanced」フォルダ内の「image_captioning」フォルダのみ。

  • 学習済みモデルのダウンロード

学習済みモデルはこちらのページの下のほうにある「Pretrained model」の項を参照。

  1. ZIPファイルをダウンロードして解凍する。
  2. 「image_captioning」フォルダの下に「models」フォルダと「data」フォルダを作成してそこに移動する。
  3. モデルの名前を変更する。

「encoder-5-3000.pkl」→「encoder-2-1000.ckpt」
「decoder-5-3000.pkl」→「decoder-2-1000.ckpt」

コードの書き換え

学習済みモデルを試すだけなので不要なパッケージはインストールしていない。
そのためコードの書き換えが必要。

  • build_vocab.py

1行目と5行目をコメントアウトする

#import nltk
import pickle
import argparse
from collections import Counter
#from pycocotools.coco import COCO
  • sample.py

2行目と66, 67行目をコメントアウトする

#import matplotlib.pyplot as plt
    #image = Image.open(args.image)
    #plt.imshow(np.asarray(image))

実行

python sample.py --image png/example.png

ちなみにjpegファイルも受け付ける。

結果

<start> a group of giraffes standing next to each other . <end>

学習

GitHubを忠実に再現すると以下の環境で5epoch学習するのに約4時間かかった。

Windows10 Pro 64bit
Intel(R) Core(TM) i7-7700K
RAM 32.0 GB

NVIDIA GeForce GTX1080
CUDA9.2
cudnn7.2.1

Python3.6.8