Keras автоматически устанавливает learning_phase в False при выполнении проверки.Нет ничего лишнего, что вам нужно сделать.
Отбрасывающие узлы автоматически проверяют, находятся ли они в режиме обучения.
https://github.com/keras-team/keras/blob/master/keras/layers/core.py#L126
Если вы хотите убедиться, что Keras автоматическиизменяет флаг режима обучения, вы можете выполнить код ниже.Он добавляет лямбда-слой, который добавляет тензор печати к графику, который выводит разные сообщения в каждом случае.
from tensorflow import keras
from tensorflow.keras.layers import *
from tensorflow.keras.models import Model
from tensorflow.keras import backend as K
def inspect(x):
xp = K.in_train_phase(K.print_tensor(x, message='train x:'),
K.print_tensor(x, message='test x:'))
return xp
def make_model():
inp = Input(shape=(4,))
h1 = Dense(2)(inp)
h1p = Lambda(inspect)(h1)
out = Dense(1)(h1p)
model = Model(inp, out)
model.compile('adam', 'mse')
return model
model = make_model()
model.summary()
import numpy as np
X_train = np.random.rand(1, 4)
Y_train = np.random.rand(1, 1)
X_test = np.random.rand(1, 4)
Y_test = np.random.rand(1, 1)
model.fit(X_train, Y_train, validation_data=(X_test, Y_test))