Google Colaboratoryを便利に使うためのTIPSまとめ

f:id:karaage:20181206221739p:plain:w640

Google Colaboratoryをもっと便利に使いたい

 ブラウザさえあれば、環境構築不要・無料でPythonの開発が可能なWebサービス「Google Colaboratory(以下Google Colab)」。Windows PC等で手元に適切なPython環境が無い場合や、手元の環境を崩したくないとき、GPUを活用したいときなど幅広く活用しています(詳細は以下記事参照下さい)。

 そんな中、よく使うコマンドやTIPS、使いたいときに探すのに時間がかかるのが多いため、一度まとめてみることにしました。

 以下に本記事で紹介するコマンドをまとめたGoogle Colabのノートブックのリンクを貼っておくので、こちらも好きにコピーして使用してもらってOKです。

Google Colaboratory Tips

Google Colab Tips集

スペック確認

 OS確認

!cat /etc/issue

 容量確認

!cat /etc/issue

 メモリ確認

!free -h

 CPUのスペック確認

!cat /proc/cpuinfo 

 GPUのスペック確認(以下は ランタイム -> ランタイムのタイプを変更 -> ハードウェアアクセラレーションをGPUに設定して確認する)

!cat /proc/driver/nvidia/gpus/0000:00:04.0/information
from tensorflow.python.client import device_lib
device_lib.list_local_devices()

 Google Colabの起動してからの時間確認

!cat /proc/uptime | awk '{print $1 /60 /60 /24 "days (" $1 "sec)"}'

Googleの時間制約に関しては、以下記事参照下さい。

【秒速で無料GPUを使う】深層学習実践Tips on Colaboratory - Qiita

マジックコマンド

 最初に!をつけることで、Google Colab上でLinuxのコマンドが使用可能になります。。

ディレクトリ作成

!mkdir test

ファイル確認

!ls

 ディレクトリ移動

%cd test

cdは!でなく%をつける

 ファイルの作成

!echo 'test' > test.txt

ライブラリ関係

 ライブラリのバージョン指定のインストール。 pipのインストールのとき、ライブラリの最後に==バージョン番号 をつける。ディープラーニング関係のソフトはバージョン依存が激しいので、バージョン指定を使うのがベターです。

!pip install tensorflow==1.8.0

Pythonのバージョン確認

 以下コマンドでPythonのバージョンが確認できます。

import platform
print("python " + platform.python_version())

 インストールされている全てのライブラリとバージョンを確認するコマンドは以下。

import pkg_resources
for dist in pkg_resources.working_set:
  print(dist)

 バージョンを確認したいライブラリが決まっている場合は、以下のようにコマンド実行します。

pkglist = ['numpy', 'scikit-learn', 'matplotlib', 'seaborn', 'pandas']
mport pkg_resources

for dist in pkg_resources.working_set:
    if dist.project_name in pkglist:
        print(dist.project_name, dist.version)

データのアップロード・ダウンロード

 以下コマンドでGoogle Colab上にデータをアップロードします。

from google.colab import files
uploaded = files.upload()

 以下コマンドでGoogle Colab上のデータのダウンロード します(以下は、test.txt というファイルをダウンロード)

rom google.colab import files
files.download('test.txt')

 ただし、これらのコマンドは大きい容量のファイル(数十MB程度)でも、失敗してしまうことがあります。そのようなときは、次に述べるGoogle Driveとの連携を使用するのが良いです。

Google Driveとの連携

 以下コマンドでGoogle Driveと連携できます。

from google.colab import drive
drive.mount('./gdrive')

 上記コマンドを実行すると、URLリンクが表示され、認証コードの入力が求められます。リンク先で取得した認証コードを入力しましょう。毎回認証コードは変わります。

 この後はgdrive というディレクトリのMy Driveディレクトリ以下に自分のGoogle Driveのファイルがマウントされます。

 例えば、test.txtというファイルをGoogle Driveに移動したいときは、以下のようなコマンドを実行します。

!mv test.txt "./gdrive/My Drive"

画像表示

 テスト用の画像をダウンロード

!wget -O test.jpg https://raw.githubusercontent.com/wiki/karaage0703/python-image-processing/0007.jpg

 IPython.displayを使う方法は以下です。

from IPython.display import Image,display_jpeg
display_jpeg(Image('test.jpg'))

f:id:karaage:20160709132427j:plain:w640

 matplotlibを使う方法は以下です。

from PIL import Image
from matplotlib.pyplot import imshow

img = Image.open("test.jpg")
imshow(img)

f:id:karaage:20181206220506p:plain:w640

 枠線の消し方は以下です。

from matplotlib import pyplot as plt 

plt.imshow(img)
plt.axis('off')
plt.show()

from matplotlib import pyplot as plt 

plt.imshow(img)
plt.axis('off')
plt.show()

f:id:karaage:20181206221859p:plain:w640

matplotlibの日本語化

 matplotlibの日本語化は結構めんどうだったりするのですが。japanize-matplotlibというライブラリを使うと、簡単に日本語が使えるようになります。

 具体的には、以下pipコマンドでインストールするだけです。

!pip install japanize-matplotlib

 あとは以下コマンドで日本語の入ったグラフを描くことができます。

import matplotlib.pyplot as plt
import japanize_matplotlib

plt.plot([1, 2, 3, 4])
plt.xlabel('簡単なグラフ')
plt.show()

f:id:karaage:20181206222244p:plain:w640

GitHub上のJupyter NotebookファイルをGoogle Colaboratory上で実行

 GitHub上にアップされたJupyter NotebookファイルをGoogle Colab上で実行することができます。

 具体的には、Google Colab起動直後の画面で「GITHUB」のタブを選択します。 f:id:karaage:20181125134406p:plain:w640

 対象のGitHub上にアップされたJupyter Notebookのアドレスを入力します。

 今回は以下アドレスとしました。https://colab.research.google.com/github/moizumi99/raw_process/blob/master/part1_ISP_Basic_Process.ipynb

f:id:karaage:20181125134352p:plain:w640

 以下のように「Google Colab」上で実行することが可能です。

f:id:karaage:20181126015414p:plain:w640

プルダウンメニュー等のUIを使う方法

 以下の図のようなやつです。 f:id:karaage:20190829051337p:plain:w640

 Formsという以下のノートブックに例が載っていますので、ここからコピペすれば使えます。

https://colab.research.google.com/notebooks/forms.ipynb

 Jupyter Notebookの場合は、ipywidgetsを使えば同様のことができるそうです。

ipywidgetsとBokeh使ってインタラクティブな可視化をする - Qiita

 以下ツイートで教えていただきました。

まとめ

 「Google Colab」のよく使う便利なTIPSをまとめました。最初にも紹介しましたが、本記事で紹介するコマンドをまとめたGoogle Colabのノートブックを作成しています。ご自由に活用下さい。

Google Colaboratory Tips

 また、noteで「Google Colab」を使うことで環境構築不要にしたディープラーニングのチュートリアルも公開しています。興味ある方は是非。

参考リンク

【秒速で無料GPUを使う】TensorFow(Keras)/PyTorch/Chainer環境構築 on Colaboratory - Qiita

【秒速で無料GPUを使う】深層学習実践Tips on Colaboratory - Qiita

pip install して import するだけで matplotlib を日本語表示対応させる - Qiita

Google Colabから簡単にGoogle Driveへ書き込む方法 | Shikoan's ML Blog

関連記事

変更履歴

  • 2019/09/27 Google Driveとの連携に関して追記
  • 2019/08/29 UIの使い方に関して追記