Изменить коэффициент отсева во время тренировки в тензорном потоке - возможно ли это? - PullRequest
0 голосов
/ 30 июня 2018

Я подумал, что иногда хорошей идеей может быть изменение коэффициента отсева во время обучения нейронной сети (в частности: общей состязательной сети), начиная с высоких показателей отсева и линейно уменьшая коэффициент отсева до нуля. Как вы думаете, это может иметь смысл, и если да, есть ли возможность реализовать это в тензорном потоке?

1 Ответ

0 голосов
/ 30 июня 2018

Вы можете передать заполнитель аргументу keep_prob, равному tf.nn.dropout , чтобы можно было передавать произвольные показатели отсева во время выполнения:

# array of ones
data=np.ones((3,4), dtype=np.float32)

keep_prob = tf.placeholder(tf.float32)
drop = tf.nn.dropout(data, keep_prob=keep_prob)

sess = tf. InteractiveSession()

print(sess.run(drop, feed_dict={keep_prob: 0.5}))
# >>> [[0. 2. 0. 2.]
#      [0. 2. 0. 0.]
#      [2. 2. 2. 2.]]

print(sess.run(drop, feed_dict={keep_prob: 1.0}))
# >>> [[1. 1. 1. 1.]
#      [1. 1. 1. 1.]
#      [1. 1. 1. 1.]]

Что касается того, имеет ли это смысл или нет, то лучший способ убедиться в этом - провести серию экспериментов со статическими и различными показателями отсева, а затем сравнить результаты.

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