サイトアイコン NegativeMindException

Google Colaboratoryで遊ぶ準備

オイラは大したGPUを持っていないので、これまでDeep Learning手法の実装を自分で試すのに苦労していた。デスクトップPCを新調した今も、新しいGPUを買うまで状況は同じだ。



ということで、無料でGPUリソースも使えるクラウド環境 Google Colaboratory 通称Colabの使い方をちゃんと知っておこうと思う。

Google Colaboratory





動画では「Googleドライブに保存されるJupyter Notebook」と解説されているけど、そもそもJupyter Notebookにもあまり馴染みがないので、そこから理解していかなければ。

書いたnotebook(ipynbファイル)はバージョン管理したいので、手始めにGitHubに保存する方法を調べる↓

GitHub でのノートブックの保存と読み込み

Google ColaboratoryはGitHubと完全に統合できるように設計されており、NotebookをGitHubから読み込んだり、NotebookをGitHubに保存することができます。

公開されているNotebookをGitHubから直接読み込む

Colabは認証などの手順無しで、GitHubで公開されているNotebookを直接読み込むことができます。
例えば、以下のURLにあるNotebookなら:https://github.com/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb
Colabでのリンクは以下URLになります:https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb
Chrome拡張機能Open in Colabを使用すれば、このようなリンクをワンクリックで生成できます。

ColabからGitHubのリポジトリをブラウジングする

Colabは、GitHubの任意のユーザー/組織、リポジトリ、ブランチに直接リンクする特別なURLもサポートしています。
例えば:

PrivateのNotebookを読み込む

GitHubのPrivateリポジトリからNotebookを読み込むことも可能ですが、Colabがファイルにアクセスできるようにするために追加の手順が必要です。以下の手順を行います:


スポンサーリンク
  1. http://colab.research.google.com/githubに移動します。
  2. “Include Private Repos”(Privateリポジトリを含める)チェックボックスをクリックします。
  3. ポップアップウィンドウでGithubアカウントにサインインし、ColabにPrivateファイルの読み取りを許可します。
  4. これで、PrivateリポジトリとNotebookがGitHubナビゲーションペインから利用できるようになります。

NotebookをGitHubまたはGoogleドライブに保存する

GitHubがホストするNotebookをColabで開くと、Notebookを編集できる新しいビューが開きます。 ソースの上書きを心配することなく、Notebookを実行・変更できます。
Colab上から変更を保存する場合は、[ファイル]メニューを使用して、変更したノートブックをGoogleドライブに保存するか、GitHubに戻すことができます。
[ファイル]→[ドライブにコピーを保存]または[ファイル]→[GitHubにコピーを保存]を選択し、表示されるプロンプトに従います。 Colab NotebookをGitHubに保存するには、コミットをリポジトリにプッシュする権限をColabに付与する必要があります。

Colabバッジから開く

GitHubがホストするNotebookのコピーは誰でもColabで開くことができます。多くの人がGitHubでホストされているNotebookのライブビューに簡単にアクセスできるように、Colabでは以下のようなshields.ioスタイルのバッジを提供しています。



このバッジのmarkdownでの記述は以下の通りです:

[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb)

対応するHTMLは以下の通り:


このテンプレートのNotebook URLを、リンク先のNotebookに置き換えることを忘れないでください。

Colabを始める前のGoogleドライブの環境設定はこちらの記事を参考にしようか↓
https://www.atmarkit.co.jp/ait/articles/1812/10/news145.html

とりあえずPyTorchの簡単なコードを実行してみようね。
https://github.com/omerbsezer/Fast-Pytorch

最近勉強した流れでPGGANを試してみても良いかもね。
https://pytorch.org/hub/facebookresearch_pytorch-gan-zoo_pgan/

無料でColabを使う場合の制限については追々理解していこう。
https://qiita.com/shoji9x9/items/0ff0f6f603df18d631ab
https://qiita.com/tomo_makes/items/b3c60b10f7b25a0a5935

この際、ちゃんとJupyterの使い方習得したいな。



スポンサーリンク

関連記事

  • AndroidもopenGLも初心者さ (でもJavaは知ってるよ)
  • UnityでARKit2.0
  • ROSでガンダムを動かす
  • trimesh:PythonでポリゴンMeshを扱うライブラリ
  • iPadをハンディ3Dスキャナにするガジェット『iSense 3D Scanner』
  • WordPressプラグインによるサイトマップの自動生成
  • Webサイトのワイヤーフレームが作成できるオンラインツール
  • Cartographer:オープンソースのSLAMライブラリ
  • Autodesk Mementoでゴジラを3次元復元する
  • 組み込み向けのWindows OS 『Windows Embedded』
  • Qlone:スマホのカメラで3Dスキャンできるアプリ
  • 「ベンジャミン·バトン数奇な人生」でどうやってCGの顔を作ったのか
  • OpenCV 3.3.0 contribのsfmモジュールのサンプルを動かしてみる
  • 2D→3D復元技術で使われる用語まとめ
  • Google App EngineでWordPress
  • コンピュータビジョンの技術マップ
  • CGのためのディープラーニング
  • Raspberry Pi 2を買いました
  • Google App Engineのデプロイ失敗
  • Web経由でRaspberry PiのGPIOを操作したい
  • オープンソースの顔認識フレームワーク『OpenBR』
  • 疑似3D写真が撮れるiPhoneアプリ『Seene』がアップデートでついにフル3Dモデルが撮影できる...
  • Twitter APIのPythonラッパー『python-twitter』
  • OpenCLに対応したオープンソースの物理ベースレンダラ『LuxRender(ルクスレンダー)』
  • 機械学習のオープンソースソフトウェアフォーラム『mloss(machine learning ope...
  • AnacondaとTensorFlowをインストールしてVisual Studio 2015で使う
  • CGレンダラ研究開発のためのフレームワーク『Lightmetrica (ライトメトリカ)』
  • Kornia:微分可能なコンピュータービジョンライブラリ
  • OpenCV 3.3.0-RCでsfmモジュールをビルド
  • Unityで画面タッチ・ジェスチャ入力を扱う無料Asset『TouchScript』
  • Googleが画像解析旅行ガイドアプリのJetpac社を買収
  • iOSデバイスのためのフィジカル・コンピューティングツールキット『konashi(こなし)』
  • 機械学習に役立つPythonライブラリ一覧
  • CGALDotNet:計算幾何学ライブラリ CGALのC#ラッパー
  • Konashiを買った
  • RefineNet (Multi-Path Refinement Network):ディープラーニン...
  • WordPress on Windows Azure
  • 顔検出・認識のAPI・ライブラリ・ソフトウェアのリスト
  • OpenCVでカメラ画像から自己位置認識 (Visual Odometry)
  • TorchStudio:PyTorchのための統合開発環境とエコシステム
  • PyDataTokyo主催のDeep Learning勉強会
  • UnityのMonoBehaviourクラスをシングルトン化する
  • モバイルバージョンを終了