Я хочу провести количественную оценку неопределенности в моей модели глубокого обучения тензорных потоков. Я сделал это, установив для обучения Dropout Layer значение True.
tf.keras.layers.Dropout(p)(X, training=True)
Я делаю прогноз по непрерывному числу (регрессионная задача вместо классификации). Я замечаю, что при установке этого исключения на True мои MSE и MAE увеличиваются, что означает, что моя модель хуже по сравнению с тем, что я просто делаю "нормальную" тренировку (не устанавливая тренировку для исключения на True). Кто-нибудь знает почему? Вот мой код:
def dropout(X, p=0.5, mc=False):
if mc:
return tf.keras.layers.Dropout(p)(X, training=True)
else:
return tf.keras.layers.Dropout(p)(X)
maxlen = X.shape[1]
embedding_dim = X.shape[2]
inputs = tf.keras.layers.Input(shape=(maxlen,embedding_dim))
model = tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(100,return_sequences=True))(inputs)
model = tf.keras.layers.Dense(50, activation='relu')(model)
model = dropout(model, p=0.5, mc=mc)
model = tf.keras.layers.Flatten()(model)
model = tf.keras.layers.Dense(1)(model)
model = tf.keras.Model(inputs=inputs,outputs=model)
Спасибо!