Microsoft Azureでサインアップしてからkaggleデータで機械学習するまでのメモ
kaggleの本番コンペはデータが大きくて、AzureやAWSなどのクラウドサービスで、メモリ数十GBのモンスターマシンの力を借りたくなることがあります。
この前参加したデータ分析ハッカソンなどで、Azureの使い方をおぼえて来たのでメモ。
Azureは本家のチュートリアルがかなり分かりやすくできていますので、主にリンク集です。
※基本的に無料試用版で試したので、自分から無料制限をはずさない限りここで書いてある内容はお金をかけずに試せるはずですが、課金に関する最新の正確な情報は本家サイトでよくお確かめください。
もくじ
Azureにサインアップする
特に難しいことはありません。
ここで個人情報、クレジットカード情報などを登録してください。
その後、Portalにログインします。
バーチャルマシン(VM)のデプロイ
新規→Virtual Machines→Ubuntuをクリックします。(Windows Serverも選べます。)
リソースマネージャーを選択します。
名前→なんでもいいですが、VMの目的に沿った名前がわかりやすいです。
disk type→SSDかStandardか選びます。後者のほうが速度は遅いが、無料枠の減りは遅い…はず。
ユーザー名:sshでログインするときのユーザー名になります。
認証の種類:好きなほうでいいですが、公開キーって何?ってひとにはパスワードがラクです。ただし、パスワードは十分セキュアなものにしましょう。
サブスクリプション:無料試用版を使いたい人は無料試用版を選択。
リソースグループ:新規作成
ロケーション→近いほうが通信が速いです。西日本とか。GPUサーバーなど、一部のサーバーは特定のロケーションでしか使えません。
ただし、無料試用版の場合はコア数制限(4まで)があり、6コア以上必要なGPUサーバーは使えません。
上記の設定をして、OKをクリックします。
オプション機能の構成
よくわからないので、デフォルトにします。
概要
OKを押します。
デプロイが開始されました、とメッセージが出ます。
起動には数分かかるので落ち着いて待ちましょう。
ポップアップで起動が完了した旨表示されます。
ちなみに使わないときは停止しておくと、VMが課金枠を使用しなくなり、節約できます。
ポータル→すべてのリソースから起動中のVMをクリックし、停止をクリックします。
停止には数分かかるので、見届けます。
再起動すると、ストレージのデータは残ったまま続きの操作が出来ます。
SSHでの接続
IPアドレスの確認
Portalトップからすべてのリソース→****-ipをクリックすると赤枠内に表示されます。
SSH接続のために、WindowsではTera Termが使えます。
ホストには先ほど確認したIPアドレスを入力します。
ポートはデフォルトでは22が開放されています。
接続方式はSSH→SSH2です。
つながるとこの画面が出ます。
VMデプロイ時に設定したユーザー名とパスワードを入力します。
↓の画面が出れば、SSH接続成功です。
関連ライブラリのインストール
私の場合、Pythonがないと戦えないので、scikit-learnやらpandasをインストールします。Python自体は入っていますが、pipやnumpyは入っていませんので、自分でインストールする必要があります。
Anacondaをインストールする場合はこちらをSSHで実行してください。
非アナコンダ派の方はこちら。
kaggleデータのダウンロード
wgetやcurlを使いますが、正確にはkaggleの各データコンペにおいて規約に同意したというCookie情報がないと、csvファイルがダウンロードできません。
そこでまず、VMではなく手元のパソコンでkaggleにアクセスして、規約に同意しデータをダウンロードできる状態にします。
Cookieのエクスポートはブラウザによって方法が違いますが、Chromeの場合はこれを使います。
kaggleを開いた状態で、右上の赤丸内のアイコンをクリックするとCookie情報が記載されているポップアップが表れるので、これをコピペしてcookie.txtに保存します。
そしてcookie.txtをSCPなどの方法で、VMに転送します。
おまけ:Jupyterを使いたいとき
SSHでシコシココマンドラインでやるより、デバッグやグラフのビジュアライズをしたいという観点ではJupyter notebook経由で叩くのが便利です。スクリプトの編集もラクですし。本家が詳しいので参照してください。勿論、上記の方法でデータを配置した後、Jupyter経由で解析することもできます。
Jupyter/IPython Notebook を作成する | Microsoft Azure