Keras V3 Automatic Speech Recognition with Transformer を試す。
前回の、Ubuntu 22.04 Tensorflow GPU Install. で、Tensorflow 2.16 GPU版環境ができたので、
今回は、Keras V3 の AudioData のサンプルの、Automatic Speech Recognition with Transformer を試してみた。
プログラム自体は、Keras V2 版とまるっきり同じみたいぞね。
ソースサンプルは、
transformer_asr.py
先頭に下記、追加を入れれば、動きます。
2. 学習を途中で中断できるように、weight.h5 を保存できるように、手を加える。
これが、従来の方法でやると、なかなかできなかった。
結論を先に述べると、
keras.layers.Layer を継承した Custom Layer を組み込む場合、
Making new layers and models via subclassing の、
"You can optionally enable serialization on your layers" の欄の様に、
build() と get_config() の2メソッドを自分で追加しないといけないみたいぞね。
従来は、 def __init__() ですべて済ませたいた部分を、
def __init__() で、保存したいクラス変数を、self.xxx=xxx ですべて保存して、
実際の割当を、def build() で行う様に分けるみたい。
def get_config() は、model.keras や weight.h5 を保存するときに、保存するクラス変数を返す。
class TokenEmbedding(layers.Layer): の変更例。
やれやれぞね!!