Google Colaboratoryを使ってみます


Google Colaboratory  (FAQ)

Colaboratory

GoogleのColaboratoryをお借りしてこのテキストのコードこのテキストのコードをやってみます。

ソースとデータのサンプル

ColaboratoryとJetson Nanoの実行速度を比較してみます(無謀ですが)

 


CPUのみで、フレームワークを使わずスクラッチから実装するパターン

 

左のペインを開きます

ファイルを選んで、ランタイムに接続します。

割り当て->接続->初期化

 

/contentが初期ディレクトリです。

必要なら新規にディレクトリーを作成して、対象のディレクトリーにファイルをアップロードします

新規にディレクトリを作るシェルコード

!mkdir src

ソースとデータのサンプルのnetwork2.pyとmnist_loader.pyを使います

 

実行はソースをアップロードした/content/srcで行うので移動

%cd /content/src

セルで以下を実行

 

1EpochにつきColabで10秒くらい、Jetsonだと47秒くらいでした。

 


ではGPUを使ってみます。Theanoフレームワークを使います。

新規のNotebook

 

ランタイムを選んで「ランタイムのタイプを変更」

 

ハードウェアアクセラレータでGPUを選んで保存

確認

import tensorflow as tf
tf.test.gpu_device_name()

‘/device:GPU:0’

 

数字を分類するニューラルネットワークの実装をやってみる2-3から

まず、

network3.pyで100のニューロンを含む隠れ層を1つだけを持つ浅いネットワークを
エポック数60、学習率0.1、ミニバッチサイズ10、正規化なしの条件で実行してみます。

このソースではフレームワーク(Theano)を使い、外部のデータセット(mnist.pkl.gz)を呼んで実行してます。

ソースとデータのサンプル

src/network3.pyとdata/mnist.pkl.gzをディレクトリを作ってアップロードしておきます。

 

 

ディレクトリを移動

%cd /content/src

 

セルで以下を実行

 

Theanoが使う線形代数演算ライブラリ(BLAS)が見当たらないというメッセージがでるかも。

ただ実行は問題ないです。

ここをクリック

 

 

1EpochにつきColabで2秒くらい、Jetsonだと17秒くらいでした。

GPUの威力(2019/09/02 現在のGPUはNVIDIATesla k80 12GB)

 

 

最後に数字を分類するニューラルネットワークの実装をやってみる2-3のTrial-7

結果を改良する別の手法としての訓練データの拡張を行い

サイズの大きな全結合層を追加してみて

ドロップアウトを全結合層に適用してみる、訓練のエポック数 40、全結合層内のニューロン数 1,000

上と同様に、新規でNotebookを開いてGPUを適用

データとソースをアップロードしてデータの拡張を実行

python3 expand_mnist.py

 

セルで以下を実行

 

1EpochにつきColabで13分30秒くらい、Jetsonだと54分くらいでした。

面倒なので途中で切り上げましたが、40エポック実行するのに

Colabで9時間、Jetsonで36時間かな?

ちなみに、Colabの時間制限は連続使用で12時間です。

 


 

Be the first to comment

Leave a Reply

Your email address will not be published.


*