8
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

小ネタ: fast.aiのフレームワークを自分のWindows PC上で動かしてみた

はじめに

:triangular_flag_on_post: 先々変わるかもしれませんので、2018/6月時点の情報です

各所で絶賛されているfast.aiディープラーニング・コースの視聴を始めました。当該コースは2018年に刷新されまして、コース中で使用する教材やfastaiのフレームワークPyTorchベースのものに変わっています。 教材のJupyter Notebookをそのまま動かすには正直、GPUが無いとつらいので私もコース中で推奨されたPaperspaceを使いましたが、自分の普段使いのノートPC(GPUなし)でも動かしたいな~と思って、やったら動いたので設定方法をメモしておきます。

  • Thinkpad X230 (当然ながらGPUなし)
  • Windows 7 (& 10でも確認)
  • minicondaでPythonだけ使えるようにしておいた

程度の普通のPCです

設定方法

要は下記のfast.aiのforumの情報を参考に、一箇所だけ変更したら動きました。
Howto: installation on Windows

image

基本的にJeremy大先生の上記指示のとおりに操作すればいいのですが、上記はGPUがあることが前提なので①GPUが無い②Windowsであることの差分だけ変更します。

①のコメントはGPU無いので無視していいです
②Github上のリソースではGPUなし環境用にenvironment-cpu.ymlが提供されていますが、Windowsではそのままでは動きません。
以下のように-pytorch<0.4 の行を -pytorch-cpu<0.4に書き変えて保存します

image

あとはreadmeに従い

conda env update -f environment-cpu.ymlします

ご参考) 以下はPyTorchのHPですが、WindowsでGPUなしならpytorch-cpuを使ってね、ということなので、そう設定しただけです。
image

この変更を漏らしてもインストールは進みますが、最終的にNotebook実行時に以下のようなエラーになりました。

image

③はリソース一式がlinux環境を前提にリンクを貼っているので、それをWindows環境で貼りなおす作業です。書いてある通りに実施すればオーケーです。

いちおう私のWindows10環境での実行ログを下記に抜粋して掲載します

:triangular_flag_on_post: Windows10ではコマンド環境は特権ユーザーで実行してください。(③のシンボリック・リンクの作成に必要です)
Microsoft Windows [Version 10.0.15063]
(c) 2017 Microsoft Corporation. All rights reserved.

C:\>python -V
Python 3.6.5 :: Anaconda, Inc.

C:\>conda -V
conda 4.5.1


c:\>git clone https://github.com/fastai/fastai.git
Cloning into 'fastai'...
remote: Counting objects: 5239, done.
remote: Total 5239 (delta 0), reused 0 (delta 0), pack-reused 5238R
Receiving objects: 100% (5239/5239), 191.36 MiB | 359.00 KiB/s, done.
Resolving deltas: 100% (3306/3306), done.
Checking out files: 100% (239/239), done.

c:\>cd fastai

c:\fastai>dir
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は B86F-D378 です

 c:\fastai のディレクトリ

2018/05/25  15:29    <DIR>          .
2018/05/25  15:29    <DIR>          ..
2018/05/25  15:29             1,485 .gitignore
2018/05/25  15:29             1,770 .travis.yml
2018/05/25  15:29             3,293 CODE-OF-CONDUCT.md
2018/05/25  15:29    <DIR>          courses
2018/05/25  15:29    <DIR>          docs
2018/05/25  15:29             1,308 environment-cpu.yml
2018/05/25  15:29             1,323 environment.yml
2018/05/25  15:29    <DIR>          fastai
2018/05/25  15:29             9,204 LICENSE
2018/05/25  15:29                34 MANIFEST
2018/05/25  15:29               134 MANIFEST.in
2018/05/25  15:29                38 pytest.ini
2018/05/25  15:29             3,523 README.md
2018/05/25  15:29             1,105 requirements.txt
2018/05/25  15:29                42 setup.cfg
2018/05/25  15:29             1,591 setup.py
2018/05/25  15:29    <DIR>          tests
2018/05/25  15:29    <DIR>          tutorials
              13 個のファイル              24,850 バイト
               7 個のディレクトリ  93,059,665,920 バイトの空き領域

c:\fastai>

========================================
コメント:environment-cpu.ymlの変更を行いました
========================================

c:\fastai>conda env update -f environment-cpu.yml
Solving environment: done


==> WARNING: A newer version of conda exists. <==
  current version: 4.5.1
  latest version: 4.5.4

Please update conda by running

    $ conda update -n base conda



Downloading and Extracting Packages
vs2015_runtime 14.0.25420##################################################################
#################################### | 100%
=================
途中省略
=================
python 3.6.5################################################################################################################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: /
|
/ Enabling: jupyter_nbextensions_con
- Writing config:'C':\Users\aa051466\AppData\Local\conda\conda\envs\fastai-cpu\etc\jupyter
    - Validating...
      jupyter_nbextensions_configurator 0.4.0 ok
Enabling notebook nbextension nbextensions_configurator/config_menu/main...
Enabling tree nbextension nbextensions_configurator/tree_tab/main...

=================
途中省略
=================
Successfully installed MechanicalSoup-0.8.0 PrettyTable-0.7.2 beautifulsoup4-4.6.0 chardet-3.0.4 cliff-2.8.1 cmd2-0.8.5 configparser-3.5.0 cssselect-1.0.3 feather-format-0.4.0 graphviz-0.8.3 idna-2.6 isoweek-1.3.3 kaggle-cli-0.12.13 lxml-4.0.0 mizani-0.4.6 opencv-python-3.4.1.15 palettable-3.1.1 pandas-summary-0.0.41 pbr-4.0.3 plotnine-0.3.0 progressbar2-3.34.3 pyarrow-0.9.0 pyperclip-1.6.1 python-utils-2.3.0 requests-2.18.4 scikit-learn-0.19.1 sklearn-pandas-1.6.0 stevedore-1.28.0 torchtext-0.2.3 torchvision-0.2.1 urllib3-1.22
#
# To activate this environment, use:
# > activate fastai-cpu
#
# To deactivate an active environment, use:
# > deactivate
#
# * for power-users using bash, you must source
#


c:\fastai>activate fastai-cpu

(fastai-cpu) c:\fastai>jupyter nbextension enable --py widgetsnbextension --sys-prefix
Enabling notebook extension jupyter-js-widgets/extension...
      - Validating: ok

(fastai-cpu) c:\fastai>cd courses\dl1

(fastai-cpu) c:\fastai\courses\dl1>type fastai
../../fastai
(fastai-cpu) c:\fastai\courses\dl1>del fastai

(fastai-cpu) c:\fastai\courses\dl1>mklink /d fastai ..\..\fastai
fastai <<===>> ..\..\fastai のシンボリック リンクが作成されました

(fastai-cpu) c:\fastai\courses\dl1>cd ../..

(fastai-cpu) c:\fastai>

その他

上記でWindowsPCでもfastaiの教材やNotebookが動くようになりますが

1). Lesson1で画像判定に使うdogscats.zipは犬と猫のトレーニング用画像が各11,500件ずつあり、これをそのままPCでトレーニングするとえらく時間がかかりますしメモリも喰います。そこで、各1000件位に減らしたら10分くらいで終わるようになりました。もちろん「動けばいい」ってものではありませんが、1000件でもそれなりのaccuracyになるようでしたので、「PCで軽く試すだけなら、減らしたらいいかも」とお伝えしておきます。

2). 以下を見るとディープラーニングだけではなくマシンラーニングのコースもEarly Accessとして視聴できます。こちらなどはGPUなしのPCでも十分に動くんじゃないかと思います。(少なくともLesson1のRandom ForestのNotebookは動きました)

Another treat! Early access to Intro To Machine Learning videos
image

3). ネットを見るとfast.aiのコースの講義ノートを色々な方が公開されていますが、(英語ですが) Medium上でHiromi Suenagaさんが公開してくれている一連の講義ノートが詳しくてお勧めです。(各回2時間の講義を延々視聴していると頭の中が混乱してくるので、講義ノートが役立ちます)

  • Deep LearingのLesson1のノートはこちら

良いノートをありがとうございます。勉強になってます!:clap: >Hiromi Suenagaさん

以上です

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
8
Help us understand the problem. What are the problem?