Google Colaboratoryでh5ファイルを保存する方法

ゆうき( @BASEBALLY15 )です^^

Google ColaboratoryでGPU を使う方法は分かったけれど,学習データ(.h5)が保存できないです・・・

分かりました!
今回は, Google Colaboratoryで学習データ(.h5)を保存する方法をご紹介します.

よろしくお願いします・・・

『Google Colaboratory』でGPU を使う方法 (前回)

Google ColaboratoryでGPU を使う方法 は前回の投稿で紹介しているので,割愛させていただきますね^^

それでは,本題の Google Colaboratory で学習データ(.h5)を保存する方法について見ていきましょう⤵

『Google Colaboratory』でh5ファイルを保存する方法

学習データ(.h5)を保存するために,まずは深層学習を行っていきます.

学習で扱う画像データは,『CIFAR-10』です.

これは,動物や乗り物などの画像が約6万枚入っています.

今回は,この画像データを,『畳み込みニューラルネットワーク』で学習させます.

CIFAR-10

畳み込みニューラルネットワークの学習データを作ろう!(準備)

ライブラリ

import keras

from keras.datasets import cifar10

from tensorflow.python.keras.models import Sequential

from tensorflow.python.keras.layers import Dense, Dropout, Activation, Flatten

from tensorflow.python.keras.layers import Conv2D, MaxPooling2D 

import matplotlib.pyplot as plt

コード

まずは,『 CIFAR-10 』のデータを読み込みます.

そして,学習用とテスト用に分けます.

(x_train, y_train),(x_test, y_test) = cifar10.load_data()

次に,画像のラベルを用意して,サイズを決めます.

#ラベルを作る
labels = ["airplane", "automobile", "bird", "cat", "deer", "dog", "frog", "horse", "ship", "truck"]

#画像ラベルの長さ
labels_size = 10

#縦のサイズ
im_rows = 32

#横のサイズ
im_cols = 32

#RGB値を含む画像サイズ
im_size = (im_rows, im_cols, 3)

画像を畳み込みニューラルネットワークで学習させるためには,

データとラベルの形式を変えておく必要があります.

データ一次元配列に変えて,

ラベルOne-Hot形式に変えます.

#データを一次元配列に変換する
x_train = x_train.astype("float32") / 255

x_test = x_test.astype("float32") / 255

#ラベルデータをone-hot形式に変換する
y_train = keras.utils.to_categorical(y_train, labels_size)

y_test = keras.utils.to_categorical(y_test, labels_size)

そして,畳み込みニューラルネットワークで学習させます.

#-------------------------------------------

#畳み込みニューラルネットワークのモデルを定義する
model = Sequential()

model.add(Conv2D(32, (3, 3), 
                 padding="same", 
                 input_shape=im_size))

model.add(Activation("relu"))

model.add(Conv2D(32, (3, 3)))

model.add(Activation("relu"))

model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Dropout(0.25))


model.add(Conv2D(64, (3, 3), 
                padding="same"))

model.add(Activation("relu"))

model.add(Conv2D(64, (3, 3)))

model.add(Activation("relu"))

model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Dropout(0.25))


#平滑化
model.add(Flatten())

model.add(Dense(512))

model.add(Activation("relu"))

model.add(Dropout(0.5))

model.add(Dense(labels_size))

model.add(Activation("softmax"))

#-------------------------------------------

#モデルをコンパイルする
model.compile(loss="categorical_crossentropy", 
             optimizer="adam", 
             metrics=["accuracy"])


#学習を実行する
model.fit(x_train, y_train, 
                batch_size=32, 
                epochs=150, 
                verbose=1)

#モデルを評価する
eval = model.evaluate(x_test, y_test, verbose=1)

#表示
print("正解率=", eval[1], "ロス=", eval[0])

これで,学習データ(.h5)を保存する準備が出来ました.

それでは,保存する方法を見ていきましょう⤵

『Google Colaboratory』でh5ファイルを保存 しよう!(本題)

それでは,本題の学習データ(.h5)を保存する方法をご紹介します.

まずは,『save_weight()』を使って,学習データ(.h5)を保存します.

#モデルを保存する
model.save_weights("cifar10_model.h5")

通常なら,これで保存が完了するのですが,

Google Colaboratory の場合は,これだけでは自分のパソコンに保存されません.

そこで,以下のコードを追加します.

from google.colab import files

#ファイルを自分のパソコンに保存
files.download('cifar10_model.h5')

これで,無事に自分のパソコン内に学習データ(.h5)を保存することが出来ました!

『Google Colaboratory』でh5ファイルを保存する方法

終わりに

今回は, Google Colaboratory で深層学習の学習データ(.h5)を保存する方法についてご紹介しました.

せっかく,GPUで学習を高速化しても,学習データが保存することが出来なかったら,意味がないですよね^^

深層学習を使うときには,今回紹介した方法を試してみてください.

それでは・・・

Q &A

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA