CNTK_106A_LSTM_Timeseries_with_Simulated_Data の改造

CNTK_106A_LSTM_Timeseries_with_Simulated_Data を勉強を兼ねて改造してみました。

改造の目的は、最後の学習済みモデルを使った確認方法を変えてみます。
新しく取り入れる確認方法は、
『詳解ディープラーニング TensorFlow・Kerasによる時系列データ処理』 巣籠悠輔 著 
第5章リカレントニューラルネットワーク -> 5.1.4.2 TensorFlow による実装
に出ている方法を取り入れてみます。

違いは、オリジナルは、確認のために使う入力のサイン波データを、全てトレーニング用の元データを使いますが、後者の方は、入力の最初の数ステップ(N+M-1)は、元のオリジナルのサイン波形を使いますが、その後は、全て、モデルからの予測データを入力にフィードバックさせて、サイン波を生成している点です。

 

改造の大雑把な手順。

1.プログラムを、学習&モデルの保存 と モデルのロード&評価 の2つに分割します。

2.学習部分の変更は、 下記点だけ
N=5 -> 25,M=5 ->18
#X, Y = generate_data(np.sin, np.linspace(0, 100, 10000, dtype=np.float32), N, M)
X, Y = generate_data(np.sin, np.linspace(0, 100, 1200, dtype=np.float32), N, M)
10000 -> 1200 に変更
注) M >= 1 です。M: 予測未来ステップ

3. 後者の評価部分は、
1) 入力の波形の最初の N+M ステップ を取り出し、
2) その中からNステップを用いてモデルの入力形式に (N,1) 変換して、モデルの判定を行います。
3) 出てきた判定値を、1)の N+M ステップ の後ろに追加して、さらに、N+M ステップ の先頭を1ステップ削除して。再度 2)モデルの判定 を繰り返します。

それでは、前半の学習&モデルの保存のコードは、こちらです。

後半のモデルのロード&評価確認のコードは、こちらです。

このブログ記事について

このページは、おんちゃんが2018年6月 8日 11:38に書いたブログ記事です。

ひとつ前のブログ記事は「CNTK_201B_CIFAR-10_ImageHandsOn の改造」です。

次のブログ記事は「TensorFlow Object Detection API の USBカメラ、Mjpg-streamer での利用」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

カテゴリ

ウェブページ

サイトナビ