Легкого пути нет. Бэкэнд тенора потока Keras просто вызывает tf.nn.dropout
, который работает, генерируя случайную матрицу размера его входных данных и устанавливает значения на входе в ноль, если соответствующее значение в случайной матрице меньше порогового значения.
Вот ключевой шаг, расположенный в https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/ops/nn_ops.py:
# Sample a uniform distribution on [0.0, 1.0) and select values larger than
# rate.
random_tensor = random_ops.random_uniform(
noise_shape, seed=seed, dtype=x.dtype)
keep_prob = 1 - rate
ret = (1 / keep_prob) * math_ops.cast(keep_prob >= random_tensor,
x.dtype) * x
Вы не можете получить эти результаты напрямую через керасы, так как случайное умножение применяется немедленно, а не сохраняется. Однако вы можете попытаться изменить исходный код, чтобы распечатать или сохранить результат math_ops.cast(keep_prob >= random_tensor,x.dtype)
, в котором указано, какие веса использовались при использовании исключения.