動かして学ぶバイオメカニクス #20 〜Google Colaboratoryの使い方〜
紹介したPythonコードを確認したいが,Pythonの開発環境を整えることまでされたくないという方のために,このシリーズではコードをGoogle Colaboratoryで確認できるようにしている.ただし,紹介したコードを実行するためには,モーションキャプチャやフォースプレートのデータが必要となる.これらをダウンロードし,Google Colaboratoryで利用する方法を補足しておく.
もし,Google Colaboratoryで計算を行わない場合は,ファイルに保存して利用すれば良いので,この章の最後をご覧になっていただきたい.
Google Colaboratoryとは
Google Colaboratory(以下,Google Colab)は、Google社が無料で提供している機械学習の教育などの開発環境である.開発環境はJupyterLab(正しくは「ジュパイター・ラボ」と呼ぶ,Jupyter Notebookの後継)に似たインターフェースを持ち,Pythonの主要なライブラリがプリインストールされている.Googleアカウントを持っていれば,Google ColabでPythonコードを動かすには,ネットワーク環境とブラウザ(Chrome推奨だがSafariでもほとんど問題なく動作する)が必要なだけである.
ちなみにそのJupyterLabは,(筆者のような)ソフトウエアエンジニアではなく,科学技術計算を行いというだけの方などには適し,PythonなどをWebブラウザ上で記述・実行できる統合開発環境である.notebook形式でメモやコメントを保存できる.筆者はエンジニアではないので,notebook形式のほうが,実験結果の整理などに便利である.MatlabやMathematicaに近い感覚で利用ができる.
ただしJupyterLabを利用するにしても計算環境を構築する必要がある.慣れていない方はそれすらも面倒だ.そこで,そのような面倒な開発環境をほとんど構築せずに,アプリをインストールするだけの,JupyterLab Desktopというアプリというものもある.
Pythonの実行環境やライブラリはこのアプリケーションの内部にすべて含まれている.現在,筆者はこれを利用している.ここで紹介している程度の計算であれば,特に問題はないだろう.
また,JupyterLabで書いたコードの拡張子は".ipynb"となり,作成したノートブックはJupyterノートブック形式で保存され,JupyteLab等の互換性のあるフレームワークで閲覧や実行などが行える.このマガジンで共有しているように,読者も他の方と共有ができる.
ここでのGoogle Colabの位置づけはコードの共有であって,無理にColabで動かす必要はない.ただし,いったんColabで確認をする場合もあるだろう.もしColabを利用する場合は,計測データをGoogle Dirveにアップロードする必要がある.そこで,少しだけGoogle Colabでコードを実行するときのために,「Google Driveのマウントの仕方」などの補足を行う.
Google Colabの利用方法
Google Colabの利用にはGoogleアカウントが必要となる.もしお持ちでない方は,アカウント作成が必要となる.アカウント作成はそれほど難しくない.
ログイン後,記事のリンクをクリックしていただくと(たとえば,以下は第17章の記事からのリンク),
実行できるコードが示される.
Google Colabを利用しない場合は,この記事の最後の「Google Colab以外での実行方法」の節をご覧になっていただきたい.
このマガジンで示したコードを実行する際,計測データが必要となることがある.データは記事のリンクから自由にダウンロードできるようにしている.
ただしGoogle Colabでは,「パソコンのローカルに置いてあるファイルを直接利用することができない」.そのため,Google Drive上にダウンロードしたデータファイルを置いて利用することになる.
Google Driveの扱い方を説明する前に,まず知っておくべきColabの基本的な利用方法は以下のセルの実行方法だけである.それ以外は,インターネットで検索をしていただきたい.
1.セルの実行方法
まずは上記のリンクなどから,ノートブックを開くと,図1のようなセルと呼ばれる,コマンドが書かれている部分が見えるはずだ.その左上には実行ボタンが備わっている.
そこで,各セルの実行は図1赤丸のセルの左にある実行ボタンを押すか,Cntr+Enter(または⌘+Enter)のキーで実行できる.
2.Google Driveのマウント
上から順番セルをに実行していき,下記の図2のところで,Google Driveのマウントの準備を行う.この作業を行う前に,データは予めリンクからダウンロードしていただきたい.
ダウンロードした計測データを利用するために,以下の手順でGoogle Driveをマウントする.
I:セルによるマウントの実行
図2のフィルパスの設定で,下記の図3の部分
を実行すると,
II:アクセスの許可
以下の図4の画面が表示されるので,
「Google ドライブに接続」ボタンをクリックし,
III:アカウントの選択
さらに,次の画面(図5)でアカントをクリックして選択し,
IV:マウントの許可
さらに,次の画面(図6)で許可ボタンをクリックする.
V:ドライブの階層の確認
すると,ドライブがマウントされ,図7の左のフォルダーのアイコンをクリックすると,
ドライブのマウントが実行できれば,drive以下にMyDriveがあらたにマウントされる(図8).
VI:新しいフォルダの作成
このフォルダー以下に,さらにフォルダーを作っても構わない.ここでは,drive/MyDriveの文字の右側にメニューが表示されるプルダウンメニュー(︙)から,図9の「新しいフォルダ」で,drive/MyDrive下にフォルダを作成する.
ここでは,図9のように,Note_Biomechanicsというフォルダをdrive/MyDrive下に作成し,
VII:データのGoogleドライブへのコピー
その新しいフォルダ下に,3つのダウンロードした計測データを,「ドラッグ&ドロップ」でアップロードすると,
のように表示される.以上で,Google Drive側の設定は終わりである.
このGoogle Driveをマウントせずに,デフォルトのdrive領域にコピーしてもよいが,そのファイルは,Google Colabの利用が途切れると,自動で削除されるので,ここで示したようにGoogle Driveをマウントするほうが懸命だろう.
3.ファイルパスの設定
Google Driveの階層構造とアップロードしたファイル名に合わせて
のように書き換えれば,ファイルの読み込み準備が完了する.
図12のように左のファイルを右クリック,または右側の(︙)のパスをコピーのメニューから取得しても良い.
Google Colab以外での実行方法
もし,別環境でPythonを実行するために,すでにPythonの計算環境を構築していたり,これから構築するという方は,ノートブックをファイルに保存して利用していただければと思う.
ファイルへの保存はファイルメニューのダウンロードで実行できる(図13).
JuputerLabやJupyter notebookなどで利用する場合は,ノートブック形式のまま保存したほうが便利であるので,".ipynb"の拡張子を選択するとよいだろう.それ以外は,".py"を選択していただきたい.
Google Colabratoryの複数セルの実行方法
Colabはノートブックのように使用できるのが利点であるが,複数のセルをひとつひとつ実行するのは面倒である.
複数セルの選択と実行方法
そこで,セルをまとめて選択し,まとめて実行できると便利である.
複数のセルはの選択は,shiftキーを押し選択するか,図14のように見出し(この例では「パッケージの読み込み」)の▼の部分を,クリックすれば,
図15のように,次の見出し(「ファイルパスの設定」)までの複数のセルをまとめて非表示にすることができる.
そこで,図15の赤丸部分(▷)をクリックして,複数のセルをまとめて実行することができる.
これ以外に「複数のセルの選択」は,Shift + クリック で選択でき,さらに「複数セルの実行」は,Ctrl/Cmd + Shift + Enter で実行できる.
【解析・受託開発について】
スポーツセンシングでは,豊富な知見を持つ,研究者や各種エンジニアが研究・開発のお手伝いをしております.研究・開発でお困りの方は,ぜひスポーツセンシングにご相談ください.
【例】
・データ解析の代行
・受託開発
(ハードウェア、組込みソフトウェア、PC/モバイルアプリ)
・測定システム構築に関するコンサルティング など
その他,幅広い分野をカバーしておりますので,まずはお気軽にお問い合わせください.
【データの計測について】
スポーツセンシング社のスタジオで,フォースプレートやモーションキャプチャを利用した計測も行えます.出力されるデータと,ここで示したプログラム(入力データの取り込み関数を少々改変する必要があるが)で,同様な解析を行えますので,まずはお気軽にお問い合わせください.
株式会社スポーツセンシング
【ホームページ】sports-sensing.com
【Facebook】sports.sensing
【Twitter】Sports_Sensing
【メール】support@sports-sensing.com