tf.compat.v1.layers.experimental.keras_style_scope
Использование управления переменными в стиле Keras.
@tf_contextlib.contextmanager tf.compat.v1.layers.experimental.keras_style_scope()
Все tf.layers и tf RNN ячейки, созданные в этом объёме, используют управление переменными в стиле Keras. Создание таких слоёв с аргументом scope= запрещено, а reuse=True также запрещено.
Цель этого объёма — позволить пользователям существующих слоёв постепенно переходить к API слоёв Keras без нарушения существующей функциональности.
Один из примеров — использование классов RNN TensorFlow с моделями или сетями Keras. Поскольку модели Keras не правильно устанавливают области переменных, пользователи RNN могут случайно совмещать области между двумя разными моделями или получать ошибки о переменных, которые уже существуют.
Пример:
class RNNModel(tf.keras.Model):
def __init__(self, name):
super(RNNModel, self).__init__(name=name)
self.rnn = tf.compat.v1.nn.rnn_cell.MultiRNNCell(
[tf.compat.v1.nn.rnn_cell.LSTMCell(64) for _ in range(2)])
def call(self, input, state):
return self.rnn(input, state)
model_1 = RNNModel("model_1")
model_2 = RNNModel("model_2")
# OK
output_1, next_state_1 = model_1(input, state)
# Raises an error about trying to create an already existing variable.
output_2, next_state_2 = model_2(input, state)
Решение заключается в обертывании построения и выполнения модели в объём в стиле Keras:
with keras_style_scope():
model_1 = RNNModel("model_1")
model_2 = RNNModel("model_2")
# model_1 and model_2 are guaranteed to create their own variables.
output_1, next_state_1 = model_1(input, state)
output_2, next_state_2 = model_2(input, state)
assert len(model_1.weights) > 0
assert len(model_2.weights) > 0
assert(model_1.weights != model_2.weights)
| Возвращаемое значение | |
|---|---|
| Область стиля слоя Keras. |
© 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/layers/experimental/keras_style_scope