2021年9月1日(水)

ついにおファイザー製の mRNA ワクチンを体に撃ち込んだ。

これで新人類の仲間入りを果たした。

 

連日のように Keras Functional API モデルの話をしているが、ついにうまく行かない原因を突き止めた。

結果から言えば、Training Dataset を作る時に repeat() をつけていたのが原因だった。

 

何かのサイトか書籍を参考にしたときは、Keras Sequential モデルの学習データに repeat() 処理をしていた。

Sequential モデルはそれで上手くいっていたから Functional モデルでも同じようにデータセットを作っていた。

 

repeat() 処理によって Epoch 毎の学習に用いるデータ数が膨大になった事で学習が全く進んでいなかった。

repeat() 処理を消したらちゃんと学習が進むようになった。

 

ここでの疑問は、Sequential モデルでは repeat() 処理が問題なかったのに、なぜ Functional モデルではこれだけ時間が掛かったのか。

ひとつの仮説は、Sequential モデルの fit() 内部の計算が最適化されていて c 言語などの比較的早い言語で書かれているのではないか。

 

何につけてもここ数日悩まされていた原因が分かった。

これからは擬似的にバッチサイズをあげた学習をさせるコードを書く。

 

お注射したところは動かさなければとくに痛みなどはない。

1回目でかつ3時間しか経っていないからだと思うが、倦怠感や頭痛などはまだ無い。

f:id:s486_17_059:20210901220740j:image