tf.compat.v1.keras.utils.get_or_create_layer
Используйте этот метод для отслеживания вложенных моделей Keras в методе, украшенном обёрткой.
tf.compat.v1.keras.utils.get_or_create_layer(
name, create_layer_method
)
Этот метод можно использовать в методах tf.keras.Layer, украшенных обёрткой track_tf1_style_variables, для дополнительного отслеживания внутренних объектов модели Keras, созданных в этом же методе. Переменные и потери внутренней модели будут доступны через атрибуты внешней модели variables и losses.
Это позволяет отслеживать внутренние модели Keras, используя поведение TF2, с минимальными изменениями в существующем коде стиля TF1.
Пример:
class NestedLayer(tf.keras.layers.Layer):
def __init__(self, units, *args, **kwargs):
super().__init__(*args, **kwargs)
self.units = units
def build_model(self):
inp = tf.keras.Input(shape=(5, 5))
dense_layer = tf.keras.layers.Dense(
10, name="dense", kernel_regularizer="l2",
kernel_initializer=tf.compat.v1.ones_initializer())
model = tf.keras.Model(inputs=inp, outputs=dense_layer(inp))
return model
@tf.compat.v1.keras.utils.track_tf1_style_variables
def call(self, inputs):
model = tf.compat.v1.keras.utils.get_or_create_layer(
"dense_model", self.build_model)
return model(inputs)
Создание внутренней модели должно быть ограничено своей собственной функцией без аргументов, которая должна быть передана в этот метод. В TF1 этот метод немедленно создаст и вернёт нужную модель без какого-либо отслеживания.
| Аргументы | |
|---|---|
name | Имя для отслеживания вложенного слоя. |
create_layer_method | Функция без аргументов, возвращающая вложенный слой. |
| Возвращаемое значение | |
|---|---|
| Созданный слой. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/compat/v1/keras/utils/get_or_create_layer