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-слоя. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/compat/v1/layers/experimental/keras_style_scope