Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
138
Help us understand the problem. What is going on with this article?
@alchemist

GPUでディープラーニングやるならAWSよりFloydHub

More than 3 years have passed since last update.

UdacityのDeep Learning Nanodegree Foundation
のコースでFloydHubという便利なサービスが紹介されていました。ディープラーニングのHerokuだそうです。

GPUが使えるプランも月額14ドルからなので、手軽にGPUでディープラーニングを始めることができます。
TensorFlowとKerasがデフォルトですが、他にもPyTorchやChainerなどメジャーなフレームワークはだいたい使えるようになっています。

2017/10/18 追記

この記事を書いた直後に、KaggleのKernelについての記事が投稿されています。Kaggleのデータセットに限って言えば、Kernelを使う方が簡単そうです。
パワーアップしたKernelでKaggleに飛び込もう - Qiita

FloydHubのいいところ

起動が簡単

floyd-cliというコマンドラインツールが用意されていて、それを使うとコマンドラインから簡単に環境を起動することができます。
例えばGPUの環境でJupyter NotebookからPyTorchを使用したい場合は、

floyd run --gpu --env pytorch-0.2 --mode jupyter

と打ち込むだけでJupyter Notebookのサーバーが起動して、少し待っているとブラウザも自動的に表示されます。
SSHでホストに接続してJupyter Notebookを起動するという作業が必要がないので、すぐに使い始めることができます。

floyd-cli自体のインストールも簡単で、普通にpipでインストールするだけです。

pip install floyd-cli

同じNotebookでCPUとGPUを使い分けることができる

Jupyter Notebookで作業をしている場合、GPUインスタンスを使っていても計算をしていない時間が長くなります。
できればNotebookを編集している時は単価の安いインスタンスを使って、計算を実行するときだけGPUインスタンスを利用できるといいんですが、AWSだとインスタンスごとにデータを持つのでなかなか面倒です。
FloydHubでは同じデータでCPUのみの環境とGPUの環境を簡単に切り替えることができるので、無駄にGPUを使うことがなくなります。

データセットをダウンロードしなくてもいい

ディープラーニングでは巨大なデータセットを扱うことが多いので、そのダウンロードにかなりの時間がかかることがあります。
FloydHubではよく使われるデータセットが用意されていて、起動時にマウントすることができるのでダウンロードや解凍する手間を省くことができます。
例えばKaggleのDogs vs. Catsのデータセットを使いたい場合は、

floyd run --data fastai/datasets/cats-vs-dogs/2:/data --mode jupyter

と打ち込めば、/dataディレクトリにデータセットがマウントされます。

料金が事前に決まっている

AWSは使った分だけ後から請求されるので、インスタンスを停止するのを忘れてしまうと大変なことになります。
ディープラーニングに使うGPUインスタンスは1時間100円ぐらいからなので、例えば1ヶ月立ち上げっぱなしにしていると100円×24時間×30日=72,000円もかかってしまいます。
FloydHubは月額の料金が決まっていてその範囲内だけ使用できるという契約になっているので個人で利用するには安心です。
足りなくなればPowerupsというのを購入すれば後から時間を追加することもできるようになっています。

Pricing | FloydHub

FloydHubのイマイチなところ

使える環境が決まっている

FloydHubではあらかじめいくつかのDockerイメージが用意されていてその中から選ぶことしかできません。
ハードウェアはGPUあり・なしの2種類だけです。
List of Available Environments - FloydHub Documentation

ただし、floyd_requirements.txtというファイルに必要なパッケージを書いておけば起動時に追加のパッケージをインストールしてくれるので、ほとんどの場合は問題ないと思います。

環境が残らない

起動するたびに新しい環境が作られるので、起動後にインストールしたパッケージなどは残りません。毎回インストールするか、それが面倒ならfloyd_requirements.txtに書いておく必要があります。

参考リンク

とりあえずFloydhubで遊んでみた - Qiita

138
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
alchemist
CAEの技術サポートとコンサルティングの仕事をしています。 おもにNXの構造解析と機構解析を担当しています。 最近はCAD/CAEのカスタマイズの仕事を始めました。 仕事ではC#とPythonを使っています。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
138
Help us understand the problem. What is going on with this article?