まだオフィシャルではないようですが私がひいきにしている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