Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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はなくなってしまうので注意してください。

tkinjo1
スーパーマリオブラザーズと同い年 ぷろぐらみんぐおべんきょうちう
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした