これから始める人向け Google Colaboratoryの操作方法

Google Colaboratory(Colab)の使い方について2022年12月現在でまとめてみました。
本記事は、Jupyter Notebookは多少使ったことはあるけど（コードセル(Ptyhonコード）やテキストセル（markdown)はある程度理解している）、Colabを初めて使う方をターゲットにしています。

# <font color=royalblue>Colabの始め方</font>

Googleコラボのインストールは、以下の手順で簡単に行えます。

+ Googleアカウトを作成（まだ持っていない場合）
+ Googleドライブ上で左上のメニューから「アプリで開く」->「アプリを追加」で、Googleコラボを選んでインストール

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1413278/5da58c21-830f-4628-08ca-c01eaff6c0fa.png)

+ Github等からアップロードしたNotebookファイル(.ipynb)を実行するとGoogleコラボが自動起動します

下記の動画も参考にしてください。 Colabで使用するJupyter Notebookの簡単な操作の説明も紹介されています。

https://www.youtube.com/watch?v=inN8seMm7UI

# <font color=royalblue>最新の環境</font>

## <font color=royalblue>ColabでのPythonのバージョン</font>

コードセルで　`!python --version` コマンドを実行することで事前にインストールされているライブラリィを確認することができます。
Pythonは、3.7.15がインストールされています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1413278/1c986351-861d-06d3-192c-24be788deebb.png)


## <font color=royalblue>インストール済みライブラリィリスト</font>

コードセルで　`!pip list` コマンドを実行することで事前にインストールされているライブラリィを確認することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1413278/1b1ee774-93b2-fb1c-a846-f76dc60c4b21.png)



主なインストール済みライブラリィとバージョン

|ライブラリィ|バージョン|
|:---------:|:--------:|
|numpy|1.21.6|
|matplotlib|3.2.2|
|pandas|1.3.5|
|Pillow|7.1.2| 
|scikit-learn|1.0.2|
|tensorflow|2.9.2|


## <font color=royalblue>注意すべきこと</font>
Tensorflowのバージョンは 2.9.2 ですので、Tensorflow1.xで作成された様々な既存のコードは動かすことができません（CUDAのバージョン:V11.2.152)。
ただし、Tensorflow1.xの互換モードでは2022年11月末現在では動きますので、コードの先頭に下記のimport文を入れ必要な非互換部分のみ修正すれば動かすことが可能なことが多いです。
筆者がStyleGAN2で対応した事例を以下に紹介してますので参考になればと思います。

https://qiita.com/DeepTama/items/ca006743e086d9eb6d87


# <font color=royalblue>各種操作</font>

## <font color=royalblue>新規NoteBookの作成</font>
新しくノートブックを作成する際は、Googleドライブの「新規」 -> 「その他」 -> 「Google Colaboratory」で作成します（新しく作るのではなく既存のNotebookをテンプレとしてマイドライブにアップロードして使う方法もあります）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1413278/f7694003-98a7-6c77-060e-87dcd4f42a5a.png)

## <font color=royalblue>Googleドライブのマウント</font>
Google「マイドライブ」との接続（マウント）は以下のコマンドで行います。　Colab上のファイルはセッションが切れると自動で削除されてしまいます。そのため保存したいファイル（Notebook以外のGithubからクローンしてきたコード等）がある場合は、マイドライブをマウントして保存できるようにしましょう。

下記のコマンドをコードセルで実行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1413278/a4fe0940-9ad4-ccf4-791f-d8e2a31569da.png)



以下のダイアログが表示されますので、「Googleドライブに接続」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1413278/823c7d24-82a4-1ce2-db16-092c9185723a.png)

使用するアカウントの選択ダイアログが表示されますので選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1413278/d38d3b56-8fa2-aa02-da04-85e883f7c327.png)

各リソースにアクセスする同意を求められますので「許可」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1413278/5b6e6995-2d7b-1b29-f4bf-4110de6c0ce1.png)


マイドライブのマウンドが完了すると「Mounted at /content/drive」が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1413278/db58bfe2-9df4-0662-f1ab-b24f13dbbcdc.png)


実際にマウントされたのかColabのディレクトリを見てみます。左サイドバーにあるフォルダのマークをクリックするとフォルダ構成が表示されます（Windowsのエクスプローラー風にグラフィックで表示されます）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1413278/6b439dab-4264-bf38-a32a-d31c6183d421.png)

「drive」 $\to$ 「MyDrive」がマウントされ、マイドライブがアクセスできるようになっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1413278/8be3f0f9-8ca9-b71b-ab9e-62e3788ebec0.png)


+ <font color=royalblue>OSコマンドの使い方</font>

OSコマンドは、先ほどPythonのバージョンを確認しように先頭に 「`!`」 を付ければ実行できます。
また、iPyhonで持っている「マジックコマンド」でも同様の処理ができます。マジックコマンドは先頭に「`%`」を付けて実行します。マジックコマンドの一覧は「`%lsmagic`」で確認出来ます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1413278/5d4d5440-dbe2-f27f-5e8e-5aa2a4f235a7.png)


OSコマンドにあるコマンド(cd、ls、pwd..等）では基本できることは一緒です。マジックコマンドではNotebookならではの便利なコマンドがあります。

マジックコマンドの例

|コマンド|説明|
|:---------:|:--------:|
|%time|コマンドセルでの実行時間の計測を行う|
|%history|コードセルの実行履歴を一覧で取得する|
|%autosave|Auto Saveの頻度を変更できる。（default120秒）|
|%matplotlib inline|matplotlibでコードセル直下にグラフが描画される|


## <font color=royalblue>Colab上のファイルへのアクセス</font>
Colab上のファイルへのアクセスは、Notebooke上からGUIで操作が出来ます。
ファイルをクリックすれば右サイドバーで中身の確認や編集が行えます。また右クリックでアップロードやファイル名の変更、削除等の各種の編集作業が行えます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1413278/11b7052a-5141-b3bb-35ff-3a157e569791.png)


また、コードセルからUNIXのコマンドを使ったファイル操作も行えます。

## <font color=royalblue>Githubからコードのコピー</font>

`!git clone XXXX`でGuthubのコードをColba上に取り込めます（ただし、セッションが切れるとクリアされるので変更等を行う場合は注意（マイドライブにコピーして利用する等）が必要です）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1413278/8a3b13b4-a4d3-b9c7-fc0b-6905caef4879.png)

クローンに成功すると左サイドバーのファイルで見れるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1413278/5bf8b34f-575b-7906-e92a-e1a2864c995d.png)



## <font color=royalblue>リソースの表示と切り替え</font>

使用しているメモリやCPU、GPUの状態は左上にある「▼（その他接続オプション）」をクリックし「リソースの状態」を選択することで確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1413278/9f09fd09-0a8b-24fa-8a4b-d1f7a1fb09cb.png)


CPUおよびGPUの切り替えは、「ランタイム」 $\to$ 「ラインタイムのタイプを変更」を選択し、表示された「ノートブックの設定」ダイアログの「ハードウェアアクセラレータ」で選択します（GPU/TPUの使用時間には制限があります）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1413278/0f55ba32-16dc-05bc-873a-7bde458b3c63.png)


# <font color=royalblue>おわりに</font>
PythonやNumpyをきちんと理解したい人向けに、Google　Colba上で動かせるチュートリアルを以下に公開しています。　よろしかったら使ってみてください。

+ Pythonチュートリアル

https://qiita.com/DeepTama/items/4bf9e3139471918eb0fe

+ Numpyチュートリアル

https://qiita.com/DeepTama/items/e943baaa0270a4ed22f3

+ Pandasチュートリアル

https://qiita.com/DeepTama/items/c2566f41e09470aeb661


誤りや不足、加筆修正すべきところがありましたらぜひご指摘ください。継続してブラッシュアップしていきます。
© 2022 [NPO法人AI開発推進協会](https://sites.google.com/deepaelurus.com/aboutus/home)