Я пытаюсь использовать отсев, чтобы получить оценки ошибок для нейронной сети. Это включает в себя выполнение нескольких прямых проходов моей сети не только во время обучения, но и во время тестирования с активированным отсевом. Слои Dropout активируются только во время обучения, но не во время тестирования. Можно ли это сделать в Tensorflow, просто вызвав некоторые функции или изменив некоторые параметры?
Прямой проход Tensorflow с отсевом
Ответы (1)
Да, проще всего использовать tf.layers.dropout
с аргументом training
. , который может быть тензором, который вы можете определить с помощью true
или false
в любом конкретном сеансе:
mode = tf.placeholder(tf.string, name='mode')
training = tf.equal(mode, 'train')
...
layer = tf.layers.dropout(layer, rate=0.5, training=training)
...
with tf.Session() as sess:
sess.run(..., feed_dict={mode: 'train'}) # This turns on the dropout
sess.run(..., feed_dict={mode: 'test'}) # This turns off the dropout
person
Maxim
schedule
06.02.2018