fast.aiのpart1 v2の環境構築

まだオフィシャルではないようですが私がひいきにしているMOOC講座、Deep Learning Part 1: Practical Deep Learning for Coders の v2 が昨年末にオープンになりました。

part1 v2用の環境構築をPaperspaceとAzure上で行ったのでそのメモです。

Paperspace

Paperspaceは講座の中でオススメされている仮想デスクトップ環境を提供するサービスです。

jp.techcrunch.com

以下のガイドに沿って何の問題なくセットアップできました。 github.com

私が作業したときは fast.ai用のテンプレートイメージはまだ存在してなく Ubuntu 16.04 のテンプレートからの構築だったのですが最新版のガイドでも問題ないはず。

ちなみに、当時のガイドはこちらです。

Azure

Paperspace用のセットアップスクリプトを一部修正すれば問題なく環境構築できました。

修正したところ

7行目あたり

# sudo rm /etc/apt/apt.conf.d/*.*
sudo rm /etc/apt/apt.conf.d/*

です。

一連の流れは

$ wget http://files.fast.ai/setup/paperspace
$ sed -i -e 's/\/etc\/apt\/apt.conf.d\/*.*/\/etc\/apt\/apt.conf.d\/*/' paperspace
$ bash paperspace

となります。

Azure (v1用のインスタンスを流用)

v1用に構築したGPUインスタンスでpart1 v2用の環境構築も可能です(並行して使えます)。

part1構築時のインスタンスのCUDAのバージョンが8.0であるためenvironment.ymlを以下のように修正します。

dependencies:
- scipy
# - cuda90 # コメントアウト

...

- zeromq
#- pytorch>=0.2.0 # コメントアウト
- torchvision>=0.1.9
- bcolz
- prompt_toolkit
- pip:
  - http://download.pytorch.org/whl/cu80/torch-0.2.0.post3-cp36-cp36m-manylinux1_x86_64.whl # 追加

あとは、$ conda env update でokです。

ライブラリのimportでエラーになったときのworkaround

Azure (v1用のインスタンスを流用)の方法で自宅PCもv2用の環境構築を行ったのですが

jupyter notebookの

from fastai.transforms import *
from fastai.conv_learner import *
from fastai.model import *
from fastai.dataset import *
from fastai.sgdr import *
from fastai.plots import *

のセルを実行したときに ImportError: dlopen: cannot load any more object with static TLS というエラーが出ちゃいました。。

フォーラムのコメントを参考に以下のように一つ上のセルで import torch, cv2を追加したらエラーを解消できました。

# Workaround for  'ImportError: dlopen: cannot load any more object with static TLS'
# http://forums.fast.ai/t/import-error-in-lesson-1/7704/11
import torch, cv2 

# This file contains all the main external libs we'll use
from fastai.imports import *

もし同じ症状に出くわすことがあったらお試しください!

pytorchのインストールでエラーが出た場合

もし、pytorchのインストール時に

PackageNotFoundError: Dependency missing in current osx-64 channels: 
  - pytorch -> mkl >=2018

というようなエラーが出た場合、

$ conda update conda で解決します。

Error installing 0.3.0 from Anaconda on MacOS 10.13.1 · Issue #4090 · pytorch/pytorch · GitHub