はじめに
Colaboratoryとは、Googleが提供を始めたJupyter Notebook互換のデータ分析ツールです。
今回、オライリー社の「ゼロから作るDeep Learning」の本にあるコードを、
Colaboratoryで実行する方法を紹介します。
まずはそのために「ゼロから作るDeep Learning」のコードを、Google Driveに保存します。
https://github.com/oreilly-japan/deep-learning-from-scratch
Google Driveをディレクトリとしてマウントする
ノートブックを新規作成して、「Python3」のノートブックを作成します。
https://colab.research.google.com/
Colaboratoryでは、コマンドを実行できます。
下記の実行が終わると、URLと認証コード入力フォームが表示されるので
認証をします。
認証したあと、!lsを実行して、driveディレクトリがあればマウントは成功です。
!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse
from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}
「ゼロから作るDeep Learning」のコードを動かす(p.73)
書籍では、MNISTデータセットをダウンロードやNumpy配列への変換を行うためのスクリプトを提供しています。(datasetディレクトリの、mnist.py)
これをGoogle Driveに保存しているので、Colaboratoryから使用します。
下記を実行して、printが正しく出力されれば成功です。
import sys, os
# sys.path.append(os.pardir) # 下記に変更
sys.path.append('/content/drive/deep-learning-from-scratch')
# 最初の呼び出しは数分待ちます...
(x_train, t_train), (x_test, t_test) = load_mnist(flatten=True, normalize=False)
# それぞれのデータ形状を出力
print(x_train.shape) # (60000, 784)
print(t_train.shape) # (60000,)
print(x_test.shape) # (10000, 784)
print(t_test.shape) # (10000,)
さいごに
自分自身も機械学習について初心者ですが、学習と同時にColaboratoryを試してみたので紹介しました。
Colaboratoryを使用することで、マシンスペックを気にせず実行できると思うので参考にしていだければ幸いです。
参考