ここの例では、クラス tf.keras.Model を次のようにサブクラス化できると述べています。
class MyModel(tf.keras.Model):
def __init__(self):
super(MyModel, self).__init__()
self.dense1 = tf.keras.layers.Dense(4, activation=tf.nn.relu)
self.dense2 = tf.keras.layers.Dense(5, activation=tf.nn.softmax)
ただし、可変数のレイヤーと可変タイプのレイヤーが必要な場合はどうなりますか? レイヤ オブジェクトをクラス オブジェクトに格納するにはどうすればよいですか?
上記の例で属性(dense1、dense2)に付けた名前は、チェックポイントなどに保存するときにこれらのレイヤーとその変数を参照するために使用されるため、重要です。あれは正しいですか?
私の質問は基本的に次のとおりです。使用可能なレイヤーの数がわからない場合、レイヤーを tf.keras.Model サブクラスに保存するにはどうすればよいですか? そして、これらのレイヤーのウェイトを保存して復元するにはどうすればよいでしょうか?
私が最初に考えたのは、レイヤー オブジェクトのリストを作成することでしたが、それらのレイヤー ウェイトが個別の属性名に対応していないため、それらのレイヤー ウェイトがどのように保存および復元されるかは明らかではありません。