В Керасе, к какому весу применяется отсев? - PullRequest
0 голосов
/ 18 января 2019

В настоящее время я пытаюсь найти способ узнать, какие веса «игнорируются» для данного слоя (особенно, когда я использую флаг «обучение», чтобы использовать выпадение во время фазы тестирования). Есть ли простой способ найти его, или я обязан создать собственный выпадающий слой?

1 Ответ

0 голосов
/ 18 января 2019

Легкого пути нет. Бэкэнд тенора потока 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), в котором указано, какие веса использовались при использовании исключения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...