Построение слоя minpool в тензорном потоке 1.15 - PullRequest
1 голос
/ 16 января 2020

Меня попросили кодировать min слой пула в тензорном потоке 1 (1.15, чтобы быть определенным c). Я просмотрел много ресурсов в Интернете, но, честно говоря, я несколько растерялся. Я имею в виду, я видел реализацию означает слой пула здесь:

Пользовательское медианное объединение в тензор потока

но я действительно не понимаю что там происходит. Я прочитал документы для tf.extract_image_patches и не мог понять, что там происходит, а остальные ответы также не ясны.

Я знаю, как реализовать этот слой с numpy, поэтому, если есть простой способ взять tf-тензор, пропустите его через функцию numpy и вернитесь обратно как тензор - и интегрируйте его функционировать как слой внутри моей CNN - это будет здорово.

1 Ответ

0 голосов
/ 16 января 2020

Почему бы не что-то вроде этого (псевдокод):

neg_input = -1*input
max_of_neg = max_pool(neg_input)
min_pooled = -1*max_pool

Идея в том, что максимум -x является (отрицательным) минимумом x. Таким образом, мы берем отрицательный результат, делаем максимальный пул на этом, а затем снова принимаем отрицательный.
Никаких пользовательских операций объединения не требуется - на самом деле создание настраиваемого пула, такого же производительного, как и встроенного, вероятно, довольно сложно, если вы комфортно работать с C ++ / CUDA.

...