Google Colaboratory で TPU 実行してみる
TL;DR
ローカルで作成したTensorflow.kerasで CNN を実装し、
Google Colaboratory でモデル作成したら、自分のPCで実行するよりも早くできた
忘れないようにするためのメモがてら情報を残します
はじめに
Deep Learning したいデータ と tensorflow.kerasを利用したpython ファイルを
Google Drive に置いて、Google Colaboratory で、TPU を利用して、 model(VGG8) を作成しました。
Google Colaboratory で TPU を使うときのコード
TPUを使うときのおまじない。
tpu_grpc_url = "grpc://"+os.environ["COLAB_TPU_ADDR"]
tpu_cluster_resolver = tf.contrib.cluster_resolver.TPUClusterResolver(
tpu_grpc_url)
tf.contrib.distribute.initialize_tpu_system(tpu_cluster_resolver)
strategy = tf.contrib.distribute.TPUStrategy(
tpu_cluster_resolver, steps_per_run=100)
with strategy.scope():
model = モデル作成
model.compile(xxx)
model.fit(xxx)
result = model.evaluate(xxx)
注意点
strategy.scope() の中で model を作成すること
実際に作成したコードは 最後のリンク に置いています。
Google Drive へデータを保存する
1. ブラウザ上で、Googleアカウントでログイン後、以下の画像の順番でアクセスすると、Google Drive のページへ飛ぶ
2. pythonを実行したい階層に、Deep Learning したいデータ、および、コードをドラッグ&ドロップして、ファイルをコピーする(今回コピーしたのは、カッコで括った部分)
Google Colaboratory で TPU を有効にする
- Google にて、"Google Colaboratory" で検索すると、上位に検索結果が出てくる。"Colaboratory - Google"を選択する
- ポップアップが表示されるので、右下の"PYTHON 3 の新しいノートブック" を選択する
- 新しいノートブックが表示されるので、上部のタブ"ランタイム" -> "ランタイムのタイプを変更"を選択する
- ポップアップが表示されるので、ハードウェアアクセラレータの項目を "None" から "TPU" へ変更し、保存を選択する
Google Colaboratory で CNN を実行
- Google Colaboratory で Google Drive をマウントするために、左上の"メニューアイコン" -> "フォルダアイコン" -> "ドライブをマウント"を選択すると、右側にコマンドが出てくるので、"再生アイコン"を選択。選択後、リンクが表示されるので、そこから、Google Driveの利用許可画面が出てくるので、認証を実施し、認証コードを取得し、"Enter your authorization code"にペーストする
- "cd /content/drive/My\ Drive/" で実行ファイルが置いてあるディレクトリまで移動する
- "!python xxx.py" と入力後、"再生アイコン" を選択することで python を実行する
- Google Colaboratory で Google Drive をマウントするために、左上の"メニューアイコン" -> "フォルダアイコン" -> "ドライブをマウント"を選択すると、右側にコマンドが出てくるので、"再生アイコン"を選択。選択後、リンクが表示されるので、そこから、Google Driveの利用許可画面が出てくるので、認証を実施し、認証コードを取得し、"Enter your authorization code"にペーストする
- "cd /content/drive/My\ Drive/" で実行ファイルが置いてあるディレクトリまで移動する
- "!python xxx.py" と入力後、"再生アイコン" を選択することで python を実行する
注意
Google Colaboratory では RAM 12.72GB 利用できるようだが、
Deep larning 実施時に、上記 RAM をオーバーすると、処理が停止する。
そのため、画像サイズやCNNのモデルのパラメータサイズについては細心の注意が必要です。
CNN の model を Google Drive から取得
- 上記実行時に、Outputディレクトリにmodel を保存しているのであれば、Google Drive からドラッグ&ドロップで取得可能。作成したコードでは、以下の2つのファイルを作成する。
さいごに
CNN を手軽に実装できる Google Drive と Google Colaboratory の組み合わせはPCでdeep larningを行うよりも高速に実施できるのでおすすめです。
ただし、画像サイズが大きかったり、モデルが大きすぎるとpythonが途中で止まるため、そのときにはPCやクラウドサービスの利用に置き換える必要です。
今回の作成したコードでは、256x256の画像で、全部で2700枚の教師データであれば、問題なく動作しました。
ぜひ、tensorflow.keras を実装試してみたい人は是非実施ください。
参考URL
Author And Source
この問題について(Google Colaboratory で TPU 実行してみる), 我々は、より多くの情報をここで見つけました https://qiita.com/na59ri/items/02639898e8da334ab8bf著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .