サイトアイコン 知的好奇心

ブラウザで機械学習を実行できるGoogle Colaboratory

ブラウザで機械学習を実行することができるGoogle Colaboratoryをご紹介します。

無料かつ、最新バージョンの 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の学習サンプルを実行してみます。

Kerasで学習を中断した後、途中から再開する方法

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

Qiita:Google Colaboratory事始め

https://qiita.com/kouki_outstand/items/cd24dccbaa92274be39e

モバイルバージョンを終了