LoginSignup
1
1

More than 3 years have passed since last update.

Kerasでとりあえず動かしてみるディープラーニング#4

Last updated at Posted at 2019-04-20

はじめに

GPUが載ってないPCでディープラーニングをやってみたい、という人向けです。
通常ならGPUが必須な画像の判定等もGoogle Colabolatoryを使えば可能なようなので、試してみます。

事前準備

Googleのアカウントが必要です。もし無い場合は作成が必要です。
Colaboratoryだと一時的にしかデータの保存ができないので、Googleドライブも併せて使用します。

ログイン~新規ノートブック作成まで

「ファイル」→「Python3の新しいノートブック」で新規のjupyterノートブックを作成します。
image.png

以下のように新規のノートブックが作成されます。
左上のファイル名をクリックすると、ファイル名を変更できます。ノートブックはGoogleドライブに自動で保存されるようです。
image.png

サインカーブのサンプルを動かしてみる。

「Kerasでとりあえず動かしてみるディープラーニング#1」で作成したプログラムを貼り付けて動かしてみます。
https://qiita.com/norikawamura/items/f748b9bbf597a5953235

ローカルで動かした時と同様の結果が表示されます。
image.png

CSVデータをアップロードしてみる

画面左上の「>」のボタンをクリックし、さらに「ファイル」のタブを選択すると、以下のような画面が表示されます。
先ほどのサインカーブのサンプル実行で作成された「keras_reg_sin.h5」が表示されています。右クリックで表示されるメニューでダウンロードができます。
image.png

左上の「アップロード」をクリックすると、ファイル選択ダイアログが表示され、ファイルをアップロードできます。
「Kerasでとりあえず動かしてみるディープラーニング#2」で使用した「abalone.data」をアップロードしてみます。
image.png
上図のように追加されます。「/content/abalone.data」というパスでアクセスできます。
「~#2」で作成したプログラムのファイル名指定部分を「filename = '/content/abalone.data'」と変更して実行します。
image.png
上図のように、これもローカルと同様に実行できます。

Googleドライブを使用する

「アップロード」ボタンからでは、あまり大きなサイズのファイルをアップロードできないようです。
その場合は一旦Googleドライブにアップロードして、そのファイルを使用すればよいようです。

以下のコマンドを実行すると、リンクとテキストボックスが表示されます。
リンクをクリックして表示された文字列をテキストボックスにコピーしてエンター入力でGoogleドライブがマウントされます。

from google.colab import drive
drive.mount('/content/gdrive')

image.png

image.png

GPUを使ってみる

「ランタイム」メニューから「ランタイムのタイプを変更」を選択する。
image.png

ハードウェアアクセラレータに「GPU」を選択することで、GPUが使用できるようです。
※保存されたファイルやGoogleドライブのマウント等含めて環境がリセットされます。
image.png

GPUを選択した場合も特にプログラム変更無しに実行できるようです。
(TPUを使う場合はプログラムの改変が必要なようです)
image.png

ZIPファイルを展開する

「現場で使える!TensorFlow開発入門 Kerasによる深層学習モデル構築手法」の第2部のサンプルを何とか動かそうと、Colaboratoryで試してみました。

事前にサンプルの画像データをZIPファイルにしてGoogleドライブにアップロードしておきます。
Colaboratoryでは「!~」でLinuxのコマンドを実行できるので以下のようにColaboratoryにファイルをコピーします。
(「My Drive」はスペースが入ってるので「My\ Drive」とエスケープしています)

!cp /content/gdrive/My\ Drive/colorize.zip /content

以下のようにファイルがコピーされます。
image.png

unzipコマンドでZIPファイルを展開します。

!unzip -q /content/colorize.zip

以下のようにフォルダが作成されて展開されます。
image.png

サンプルを動かしてみる

「TensorFlow開発入門」の「第9章」の「自動着色」を試してみます。
この書籍のサンプルもjupyter-notebookの形式なので、基本的にはノートブックをアップロードして、
「データの読み込み」のパスだけ「'/content/colorize'」に変更するだけで動かせます。
ただし、実際のところGPUでも結構時間がかかるので(多分7時間弱)、途中で止まってしまうと学習にかけた時間が無駄になるので、10エポック毎に学習済みモデルを保存するように改変してみます。
「~.fitgenerator()」のパラメータにinitial_epochの指定を追加することで、
学習済みモデルに対して、学習を再開することができます。

以下のような感じで、最初の実行時には「for i in range(0,21):」にして実行し、
途中で止まったあとの再実行時に「savefile=~」のファイル名指定とループのrangeの開始を変更して実行します。

gdriveroot = '/content/gdrive/My Drive/'

savefile=gdriveroot +  "chap9_190418_epoch140.h5"
for i in range(14,21):
  if i != 0:
    autoencoder = keras.models.load_model(savefile)  
  epoch_step = 10
  initial_epoch = i * epoch_step 
  epochs= initial_epoch + epoch_step

  autoencoder.fit_generator(
      generator=train_gen,
      steps_per_epoch=train_steps,
      initial_epoch=initial_epoch,
      epochs=epochs,
      validation_data=val_gen,
      validation_steps=val_steps,
      # callbacks=callbacks, # コールバックを使用する場合はコメントアウトを外す
  )
  savefile=gdriveroot + "chap9_190418_epoch" + str(epochs) + ".h5"
  autoencoder.save(savefile)

次回

 数字画像の判定をやってみます。
 https://qiita.com/norikawamura/items/a5c3844e7555202c35a4

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1