LoginSignup
17
23

More than 5 years have passed since last update.

Google Colaboratoryでmodelをsaveしてローカルに持ってくる方法(+アップロード方法)

Last updated at Posted at 2018-04-21

TensorFlowの勉強とか小規模なCNNの構築に便利なGoogle Colaboratory。
構築したmodelをローカル環境や別のサーバで利用するためにはmodelを取り出す必要があります。
ColaboratoryにはGoogleDriveとかGCSに直接書き出す方法も用意されていますが、
直接ローカルに落として使用したい場合もあると思います。
そんなときは、files.downloadを使うと簡単にダウンロードできます。
例えば、
sessionのsaveは

saver = tf.train.Saver()
save_path = saver.save(session, "./session.ckpt")
print('done saving at',save_path)

sessionをsaveすると、

session.ckpt.meta
checkpoint
session.ckpt.data-00000-of-00001
session.ckpt.index

の4つのファイルができるので

from google.colab import files
files.download( "./session.ckpt.meta" ) 

としてそれぞれダウンロードします。

学習したmodelは

model.save('ファイル名.h5')

とすればsaveできます。

ダウンロードしたmodelは、

from keras.models import load_model
model = load_model('ファイル名.h5')

とすれば使用できます。

構築したmodelを実際に学習させるときにはデータセットを使用します。
その際にはデータをアップロードする必要があります。
ColaboratoryではGoogleDriveやGCS(Google Cloud Storage)から引っ張ってくることもできますが、ローカルにあるファイルをアップロードして使用したい場合もあると思います。
そのときは下記のようにすれば簡単にファイルをアップロードすることができます。

from google.colab import files

uploaded = files.upload()

for fn in uploaded.keys():
  print('User uploaded file "{name}" with length {length} bytes'.format(
      name=fn, length=len(uploaded[fn])))

上記を実行すると、ローカルのファイルを選択してアップロードすることができるようになります。
スクリーンショット 2018-04-25 11.04.25.png

Google Colaboratoryは無料で使える上に、GPU環境でTensorFlowが使えます。
ただ、ヘルプに

コードはどこで実行されるのですか?実行中にブラウザ ウィンドウを閉じたらどうなりますか?

コードは、各アカウント専用の仮想マシンで実行されます。仮想マシンには強制的に適用される最大存続期間があり、一定期間アイドル状態にある仮想マシンは再利用されます。

とあるので一定時間経過するとリセットされてしまうようです。(おそらく12時間...)
リセットされるとアップロードしたファイルや保存したmodelはなくなってしまうので注意してください。

17
23
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
17
23