ブラウザで機械学習を実行することができる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