機械学習をやり初めのときに疑問だったことは、
Colaboratoryなり、Anacondaなり使って、モデルを作ることが出来るんだけども、
どうやって、アプリケーションするのか?ということでした。
結論から言ってしまうと、modelデータを保存→ダウンロードして、他のアプリケーションに組み込むです。modelはmodelの形式や、重み・バイアスが、バイナリーデータとして格納されています。
他のアプリケーションで利用する際には、学習時に成形した入力形式が定まっているので、入力する際には注意が必要かと思います。
■Colaboratoryで、機械学習済みのModelを使う
それでは、簡単ではありますが、実際に使ってみます。
色々とやり方はあるかと思いますが、
今回は機械学習済みModelの、重み・バイアスを抽出して、予測値を算出していきます。
大まかな流れとしては、
・学習済みModelをUpload(ディレクトリへ格納)
・モデルの定義
・重み、バイアスのロード
・予測を実行
まずは、学習したModelをUploadします。
/content/model_data/ ディレクトリ配下に modelDone.hdf5 というファイル名にてUploadする。
Modelを定義します。
これは、機械学習をした際と同じModelを定義します。
Kerasを活用するとします。(Libraryはimport済み)
#modelの定義 model = tf.keras.models.Sequential() model.add(Flatten(input_shape=(28, 28))) model.add(Dense(128, activation='relu')) model.add(Dropout(0.2)) model.add(Dense(10, activation='softmax'))
Modelに対して、重み・バイアスを読み込ませます。
model.load_weights('/content/model_data/modelDone.hdf5')
これで、学習した状態と同じ状態になります。
予測値を算出するには、学習したときと同じ入力形式で、データを入力し、予測を実行させて上げればよいのです。
predicted = model.predict(入力データ) #変数 predicted に予測値が出力される。