モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

Google ColabでPyTorchを使う

Google ColabはGoogleアカウントさえあれば即時TensorFlowの入ったJupyter環境が使えて、さらになんとめちゃ高いGPUまで使えちゃうという、まあいたれりつくせりで超おすすめです。
が、最近arXivとかで公開されてる論文のソースがPyTorchが使われてることも多く、PyTorchも使いたいなあと思うわけです。
でもGoogle Colab環境にPyTorchは入ってないんですよね。


(追記)
Colabの「コードスニペット」から「Install [pytorch](http://pytorch.org/)」を選択して実行すればできるようになっていました。
そちらをおすすめします。


で、Google ColabでPyTorch 0.4使うためにどうしたらいいかを調べたところ、下記内容でばっちり動かせるようになりました。

Pytorch 0.4.0 on Google colab - PyTorch Forums


下記コードをコードセルの最初に貼って実行すればOKです。
ランタイムGPU使うようにしてあれば、ちゃんとGPU使えるようになります。
pipでpytorchのインストールから行うことになりますが、そこまでは時間かかりません。

from os import path
from wheel.pep425tags import get_abbr_impl, get_impl_ver, get_abi_tag
platform = '{}{}-{}'.format(get_abbr_impl(), get_impl_ver(), get_abi_tag())

accelerator = 'cu80' if path.exists('/opt/bin/nvidia-smi') else 'cpu'

!pip install -q http://download.pytorch.org/whl/{accelerator}/torch-0.4.0-{platform}-linux_x86_64.whl torchvision
import torch
print(torch.__version__)
print(torch.cuda.is_available())

出力セルにこんなふうに表示されたらOKです。
もし最後の行がFalseになってるときはGPU使えてない状態です。

tcmalloc: large alloc 1073750016 bytes == 0x5bd9a000 @  0x7fb18556f1c4 0x46d6a4 0x5fcbcc 0x4c494d 0x54f3c4 0x553aaf 0x54e4c8 0x54f4f6 0x553aaf 0x54efc1 0x54f24d 0x553aaf 0x54efc1 0x54f24d 0x553aaf 0x54efc1 0x54f24d 0x551ee0 0x54e4c8 0x54f4f6 0x553aaf 0x54efc1 0x54f24d 0x551ee0 0x54efc1 0x54f24d 0x551ee0 0x54e4c8 0x54f4f6 0x553aaf 0x54e4c8
0.4.0
True