Я пытаюсь реализовать PI-модель для обучения под наблюдением, представленную в [1].
Чтобы вычислить функцию потерь, необходимы два прямых прохода по сети с одинаковыми данными, посредством чего впри каждом прямом проходе данные модифицируются с использованием стохастического увеличения.Кроме того, используется отсев, и на каждом из двух проходов должен выпадать различный набор нейронов.
Я не совсем уверен, как реализовать требуемый механизм отсева.
Когда яобъединить два различных дополнения пакета в качестве входных данных в мою сеть, так что один пакет теперь содержит два разных дополнения данных.Может быть, есть способ добавить два «параллельных» tf.nn.dropout
слоя, где требуется выпадающий слой, и каким-то образом определить, что для первой половины пакета должна использоваться первая, а для второй - вторая?Повторное разделение выходных данных сети должно затем дать результат двух «отдельных» прогонов.
Альтернативой может быть использование двух отдельных вызовов session.run
, с двумя различными дополнениями данных.Однако я не совсем уверен, каким образом я мог бы тогда правильно выполнить обновление градиента.
[1] https://arxiv.org/abs/1610.02242