13
18

More than 3 years have passed since last update.

Python、機械学習を始めよう!〜Colab講座〜

Last updated at Posted at 2021-03-01

Google Colaboratoryの使い方

Googleアカウントを持っていれば誰でも使うことができるJupyter Notebook環境であるGoogle Colaboratory(Colab)の使い方を紹介します。

pythonを記述、実行できる環境です

公式紹介ページ
機械学習の分野でよく使われています
最近では論文のコード公開やデモに使われることもあります

Colabの良いところ

  • 環境構築不要

    • すぐ書いて、すぐ動かせる
    • 有名なライブラリはインストール済み
  • 無料でGPU使える

    • 数十万するGPU無料簡単に使える
    • マシンスペックを気にしなくて良い
  • 自動保存

    • 作ったノートブックはDriveに自動保存される
    • 変更は自動で保存される
  • Driveとの連携も便利

    • ローカルからアップロード&ダウンロードする手間と時間を節約
    • 共有されたファイルをそのまま処理できる
  • ディスク容量も充実

    • 巨大なファイルをDriveやローカルにダウンロードせず処理できる
  • セッション管理だから失敗しても大丈夫

    • 間違ってすごく重い処理を回してもローカルのマシンにはノーダメージ

Colabの開き方

まずGoogleにログインした状態でDriveを開きます

その状態で右クリックすると
「その他」から「Google Colaboratory」を選択します
スクリーンショット 2021-02-27 19.29.52.png

ノートブックの作成

先程の動作を行うと
スクリーンショット 2021-03-01 8.41.09.png
このような画面が開きます

次の赤く囲んだ部分をクリックしてノートブックに好きな名前をつけましょう
スクリーンショット 2021-03-01 9.00.53.png

ノートブックは自動で保存されていきます

プログラムの実行

次にプログラムを実行できるよう「ランタイム」に接続します
プログラムは自分のパソコン上で実行されるのではなく、Googleが持っている計算資源で実行されます
赤丸で囲んだ部分をクリックしましょう
すると「接続中」と表示された後、緑色のチェックマークが表示されるのがわかると思います
スクリーンショット 2021-03-01 9.01.34.png

それでは実際にプログラムを書いていきましょう
次のように入力したら(コードを書く部分を「セル」と言います)左の再生マークをクリックして実行します
セルを実行する時のショートカットキーは「command」+「Enter」または「control」+「Enter」です
スクリーンショット 2021-03-01 9.11.58.png

実行に成功すると
スクリーンショット 2021-03-01 9.19.11.png
結果が表示されます

マウスのカーソルをセルの下中央に合わせると、「コード」と「テキスト」と書かれたボタンが出てきます
スクリーンショット 2021-03-01 9.20.47.png
「コード」をクリックすれば新しいセルが作成されます

ファイルのアップロード・Driveのマウント

写真のオレンジ色に囲まれた部分をクリック
スクリーンショット 2021-03-01 8.41.09.png
こんな画面になります

スクリーンショット 2021-03-01 9.34.05.png

まずファイルのアップロードについて説明します
この機能ではローカルのファイルをColabにアップロードして処理できます
(※アップロードしたファイルはノートブックのように保存されないので注意)
上の写真青く囲まれた部分をクリックしてファイルを選択します

次にドライブのマウントについて説明します
この機能はGoogle Driveにあるデータを処理したいときに使います
つまり、ColabとDriveを連携させる操作になります
上の写真中の赤く囲まれた部分をクリックして
スクリーンショット 2021-03-01 10.03.56.png
「GOOGLE ドライブに接続」をクリック
これで完了です

アップロードされたファイルはこのような形式で見ることができ、右クリックで「ダウンロード」「ファイル名の変更」「ファイルの削除」「パスをコピー」「更新」を選べます
スクリーンショット 2021-03-01 15.39.41.png
またドラッグ&ドロップで別のディレクトリ移動させることもできます(操作性はあまり良くないですが)
ファイルの中身は、一度左クリックすると見ることができます
スクリーンショット 2021-03-01 15.44.59.png

(余談 私はこのdriveのマウントを理解するのに丸3〜4日かかりました。今思えばなんで理解できなかったのかと不思議なくらいですが、初心者は意外とつまづくところなのかもしれません)

ちなみに上の写真に「sample data」というところには機械学習を始める入門データ「mnist」(手書きの数字を画像認識するタスク)「california_housing」(カリフォルニアの家賃を予測するタスク)が入っています(しかもtrainとtestに分かれた状態で)

GPUの使い方

機械学習をする上でGPUが必要になる場面は多々あります
しかし、GPUは数十万円することもあり特に初心者には容易に手が出せません
(余談 最近はbitcoinの急騰でGPUが中々手に入らないそうです 2021/3/1現在)
上のリボン「ランタイム」→「ラインタイムのタイプを変更」→ハードウェアアクセラレータをGPUに変更
スクリーンショット 2021-03-01 10.06.57.png

すると
スクリーンショット 2021-03-01 10.07.46.png

で「保存」をクリック

サンプルコードの使い方

プログラムを組んでいると「これどうやるんだろう」という場面が絶対に出てきます
そんな時に役立つのがサンプルコードです
Colabでは「コードスニペット」と呼ばれる機能です

写真中の青く囲まれた部分をクリック
スクリーンショット 2021-03-01 8.41.09.png

ここで検索をかけて
「→」をクリックすると自動でサンプルコードが書かれたセルが挿入される
スクリーンショット 2021-03-01 9.34.42.png

自分が使ったことある例

  • 「Showing CV2 Images」
    これから画像処理を勉強したいという人は思えておくといいかもしれません。ライブラリ「opencv」のcv2.imshow()はColabでは使えないのでこのコードを実行してcv2_imshow()を使います

  • 「Camera Capture」
    Web cameraから画像を受け取りたいときに使います

フォーム項目の追加

セルの外から変数の値を変更できます
スライダーやドロップダウンを追加できます
例えば、丁度いい変数の値を探しているときなどに何度も打ち直すのは面倒です
また、人に見せながら実行しているときなどに役立ちます
「挿入」→「フォーム項目の追加」
スクリーンショット 2021-03-01 12.41.01.png

インプット

スクリーンショット 2021-03-01 12.50.19.png

直接セル内の変数を変更しなくても良くなります
スクリーンショット 2021-03-01 12.52.35.png

変数タイプは「boolean」「date」「integer」「number」「raw」「string」から選べます

スライダー

「挿入」→「フォーム項目の追加」
「フォームフィールドタイプ」を「slider」に変更
最小値、最大値、単位を設定できます
スクリーンショット 2021-03-01 13.09.14.png

スライダーバーが表示されます
変数の値をスライダーで操作できます
スクリーンショット 2021-03-01 12.56.08.png

ドロップダウン

「挿入」→「フォーム項目の追加」
「フォームフィールドタイプ」を「Dropdown」に変更
「プルダウンの項目」の「+ アイテム」をクリックするとドロップダウンの項目を追加できます
追加したら、「値を入力してください」というところに値を入力します
スクリーンショット 2021-03-01 13.11.44.png

ドロップダウンで変数の値を選べます
スクリーンショット 2021-03-01 12.58.11.png

Linuxコマンド

Linuxコマンドを実行できます
基本的には「!」を先頭につければOK
「cd」は「%」が必要
スクリーンショット 2021-03-02 13.00.23.png
「cd」でpathを指定する場合は「%」、「!」は不要
スクリーンショット 2021-03-02 13.00.44.png
「ls」は「!」
スクリーンショット 2021-03-02 13.01.06.png
「wget」も「!」
重いファイルをドライブにもローカル(手元のコンピューター)にもダウンロードしたくないときにおすすめ
機械学習用のデータは数〜数十ギガバイトあることも珍しくないので(特に画像データ)とりあえず試すときには使うことがあります
スクリーンショット 2021-03-02 13.01.26.png
「cat」も「!」
スクリーンショット 2021-03-02 13.01.45.png

その他にも基本的に「!」を先頭につければLinuxコマンドを実行できます
使えると便利です(特にwget)

テキスト

テキストを追加できます
自分のメモや共同作業している相手へのメッセージなどに使えます
markdown形式でかけます
「+テキスト」をクリックして追加します
スクリーンショット 2021-03-02 13.47.49.png

「##」を使うと目次にタイトルが追加されていきます
スクリーンショット 2021-03-02 13.56.52.png

ネットにあるイメージのアドレスを指定するとそのイメージを挿入できます
スクリーンショット 2021-03-02 14.00.22.png
(この記事の冒頭に出てくる写真を表示してみました)

また、TeX形式で数式もかけます(先頭と末尾に「$」が必要です)
スクリーンショット 2021-03-02 13.52.11.png

設定変更

Colabの設定を自由に変更できます
歯車のマークをクリック
スクリーンショット 2021-03-02 17.05.03.png

するとこんな画面になります
「サイト」では、外部からのアクセスの設定や通知設定を行えます
スクリーンショット 2021-03-02 17.07.48.png
ちなみに今、チェックが入っている「実行が完了したときにデスクトップ通知を表示する」を使用するとプログラムの実行終了時に通知が受け取れます
機械学習では、学習に時間がかかるためその間に何かパソコンで別の作業をしたいときなどにおすすめです

また、テーマの変更が行えます
スクリーンショット 2021-03-02 17.10.24.png

「dark」に設定するとこんな画面になります
スクリーンショット 2021-03-02 17.13.52.png

「エディタ」では、コードをかくための設定ができます
スクリーンショット 2021-03-02 17.16.42.png

vimユーザーの方はこの設定をすると使いやすいかもしれません
(私はvim使えないのでわかりませんが)
スクリーンショット 2021-03-02 16.57.08.png
こんな感じになります
スクリーンショット 2021-03-02 16.58.02.png

スクリーンショット 2021-03-02 16.58.40.png

Tips

(追記の可能性あり)
上のリボン(「ファイル」「編集」「挿入」「ランタイム」「ツール」「ヘルプ」)のどこに自分の使いたい機能があるかわからなくなるという人へ

写真左下の赤丸の部分をクリックすると
スクリーンショット 2021-03-01 9.11.58.png

こうやって機能の一覧が表示されてここから選択すればOK
スクリーンショット 2021-03-01 9.32.28.png

最後に

記事を最後までご覧いただきありがとうございました
今後もどんどん更新していきたいと思います

「無料、独学で機械学習エンジニアになる!~機械学習が学べる無料サイト、書籍~」という記事も書いているので興味のある方はぜひそちらもチェックしてください

さて、ちなみにColabは無料で使える環境ですが、Colab Proという有料版もまもなく日本で使えるようになりますもう日本で使えるみたいです(以前はアメリカだけのサポートでした)(2021/3/1現在)
業務でガンガンColabを使いたいという方はぜひそちらをチェックしてください

Colabは論文のデモにも使われています
自分が試したことのあるデモを載せておきます
CVPR2020のPIFuHD: Multi-Level Pixel-Aligned Implicit Function for High-Resolution 3D Human Digitization
単眼RGB画像から人物の3Dモデル(objectファイル)を作る研究のデモです
興味があればぜひ試してみてください(リンクから飛んで「Open in Colab」と書かれた青いボタン)

をクリックしてみてくださいするとColabが開きます

13
18
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
18