Позвольте мне объяснить мою установку. Я использую TensorFlow 2.1, версию Keras, поставляемую с TF, и вероятность TensorFlow 0,9.
У меня есть функция get_model, которая создает (с помощью функционального API) и возвращает модель с использованием Keras и пользовательских слоев.  В методе __init__ этих пользовательских слоев A я вызываю метод A.m, который выполняет оператор print(tf.executing_eagerly()), но возвращает False.  Почему?
Если быть точнее, это примерно моя установка
def get_model():
    inp = Input(...)
    x = A(...)(inp) 
    x = A(...)(x)
    ...
    model = Model(inp, out)
    model.compile(...)
    return model
class A(tfp.layers.DenseFlipout): # TensorFlow Probability
    def __init__(...):
        self.m()
    def m(self): 
        print(tf.executing_eagerly()) # Prints False
В документации tf.executing_eagerly говорится
Стремительное выполнение включено по умолчанию, и этот API возвращает True в большинстве случаев. Однако этот API может возвращать значение False в следующих случаях использования.
- Выполнение внутри
tf.function, если ранее не вызывалось подtf.init_scopeилиtf.config.experimental_run_functions_eagerly(True).- Выполнение внутри функции преобразования для
tf.dataset.
tf.compat.v1.disable_eager_execution()называется.
Но это не мой случай, поэтому tf.executing_eagerly() в моем случае должно вернуть True, но нет.  Почему?
Вот простой полный пример (в TF 2.1), иллюстрирующий проблему.
import tensorflow as tf
class MyLayer(tf.keras.layers.Layer):
    def call(self, inputs):
        tf.print("tf.executing_eagerly() =", tf.executing_eagerly())
        return inputs
def get_model():
    inp = tf.keras.layers.Input(shape=(1,))
    out = MyLayer(8)(inp)
    model = tf.keras.Model(inputs=inp, outputs=out)
    model.summary()
    return model
def train():
    model = get_model()
    model.compile(optimizer="adam", loss="mae")
    x_train = [2, 3, 4, 1, 2, 6]
    y_train = [1, 0, 1, 0, 1, 1]
    model.fit(x_train, y_train)
if __name__ == '__main__':
    train()
В этом примере печатается tf.executing_eagerly() = False.
 
                                                                     
                                                                    