ブラウザで機械学習を実行することができるGoogle Colaboratoryをご紹介します。
無料かつ、最新バージョンの Chrome、Firefox、Safari で使用することが出来ます。
(他のブラウザでも使えるかもしれません)
目次
条件
- PCがインターネットに接続中
- ブラウザがChrome、Firefox、Safariのいずれか
Google Colaboratoryを開く
以下のサイトにアクセスします。
https://colab.research.google.com
「Colaboratoryへようこそ」という画面が表示されます。
概要について、3分程度の紹介動画があるので、閲覧することをお勧めします。
音声は英語ですが、日本語字幕付きです。
TensorFlow等のインストール
機械学習を始めるにあたり、必要なライブラリ(ランタイム)をインストールする必要があります。
以下の動画に沿って、TensorFlowなどをインストールします。
Getting Started with TensorFlow in Google Colaboratory (Coding TensorFlow)
Googleドライブから新しいColabノートブック作成
ブラウザでGoogleドライブにアクセスします。
https://www.google.com/intl/ja_ALL/drive/
Googleドライブにアクセスを選択して、メニュー画面を開きます。
「+新規」を選択します。
メニューが開くので、その他 > アプリを追加を選択します。
ドライブにアプリを追加画面が開きます。
「アプリを検索」の入力欄に”colab”と入力してEnterを押します。
検索結果として、Colaboratoryが表示されます。
「+接続」ボタンを選択します。
ColaboratoryがGoogleドライブに追加されます。
「Colaboratoryをデフォルトのアプリにします」というチェックが付いた状態でOKボタンを押します。
これでGoogleドライブのメニューに「Colaboratory」が表示されるようになります。
ドライブにアプリを追加画面を閉じます。
Googleドライブメニューにおいて、+新規 > その他 > Colaboratory を選択します。
Colaboratoryの画面が開きます。
+コード を追加 を選択することでコードセルを追加することが出来ます。
TensorFlowのインストール
以下のコマンドを入力して、左の実行ボタン(▷)を押します。
!pip install tensorflow
pipはPythonコードではなく、コマンドラインでの実行コマンドのため、エクスクラメーションマークを前につける必要があります。
☆ エクスクラメーションを前につけることで、linuxのコマンドを実行することが出来ます。
tensorflowのインストールが実行されます。
以下のコマンドを、新しいコードセルに入力して実行し、インストール確認をします。
import tensorflow as tf print(tf.__version__)
以下のようにバージョン情報が表示されればOKです。
TensorFlow GPUのインストール
TensorFlowには様々なバージョンが存在します。
ここではGPUを用いて機械学習を行う場合に必要となる、GPU用のTensorFlowインストール手順を示します。
ランタイムのリセット
メニューの ランタイム > すべてのランタイムをリセット を選択します。
確認画面が表示されるので、「はい」を選択します。
ランタイムのタイプ変更
メニューの ランタイム > ランタイムのタイプを変更 を選択します。
ノートブックの設定画面が開くので、ハードウェアアクセラレータでGPUを選択し、保存を押します。
インストール実行
新しいコードセルにて、以下のコマンドを入力し、左の実行ボタン(▷)を押します。
!pip install tensorflow-gpu
以下のコマンドを、新しいコードセルに入力して実行してインストール確認をします。
import tensorflow as tf print(tf.__version__)
以下のようにバージョン情報が表示されればOKです。
TensorFlowを持ちいたDeepニューラルネットワークの構築&実行
試しに、以下の記事で用いたmnistの学習サンプルを実行してみます。
from __future__ import division, print_function
from keras.callbacks import ModelCheckpoint
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Dropout
from keras.utils import np_utils
import os
import matplotlib.pyplot as plt
BATCH_SIZE = 128
NUM_EPOCHS = 20
MODEL_DIR = "/tmp"
(Xtrain, ytrain), (Xtest, ytest) = mnist.load_data()
Xtrain = Xtrain.reshape(60000, 784).astype("float32") / 255
Xtest = Xtest.reshape(10000, 784).astype("float32") / 255
Ytrain = np_utils.to_categorical(ytrain, 10)
Ytest = np_utils.to_categorical(ytest, 10)
print(Xtrain.shape, Xtest.shape, Ytrain.shape, Ytest.shape)
# モデル定義
model = Sequential()
model.add(Dense(512, input_shape=(784,), activation="relu"))
model.add(Dropout(0.2))
model.add(Dense(512, activation="relu"))
model.add(Dropout(0.2))
model.add(Dense(10, activation="softmax"))
model.summary()
model.compile(optimizer="rmsprop", loss="categorical_crossentropy",
metrics=["accuracy"])
if not os.path.exists(MODEL_DIR): # ディレクトリが存在しない場合、作成する。
os.makedirs(MODEL_DIR)
checkpoint = ModelCheckpoint(
filepath=os.path.join(MODEL_DIR, "model-{epoch:02d}.h5"), save_best_only=True) # 精度が向上した場合のみ保存する。
# 学習実行
history = model.fit(Xtrain, Ytrain, batch_size=BATCH_SIZE, nb_epoch=NUM_EPOCHS,
validation_split=0.1, callbacks=[checkpoint])
# グラフ描画
# Accuracy
plt.plot(range(1, NUM_EPOCHS+1), history.history['acc'], "o-")
plt.plot(range(1, NUM_EPOCHS+1), history.history['val_acc'], "o-")
plt.title('model accuracy')
plt.ylabel('accuracy') # Y軸ラベル
plt.xlabel('epoch') # X軸ラベル
plt.legend(['train', 'test'], loc='upper left')
plt.show()
# loss
plt.plot(range(1, NUM_EPOCHS+1), history.history['loss'], "o-")
plt.plot(range(1, NUM_EPOCHS+1), history.history['val_loss'], "o-")
plt.title('model loss')
plt.ylabel('loss') # Y軸ラベル
plt.xlabel('epoch') # X軸ラベル
plt.legend(['train', 'test'], loc='upper right')
plt.show()
学習が実行され、グラフ描画も行われることが分かります。
以上で、Google Colaboratoryの紹介は終わりです。
スペックの高くないPCでも、ネットワーク環境さえあれば気軽に機械学習を実行出来そうですね。
以下の動画も参考にしてください。
Build a deep neural network in 4 mins with TensorFlow in Colab
参考
Google Colaboratory
https://colab.research.google.com

