Корпус переключателя потока потока в размерности партии с Conv2d - PullRequest
1 голос
/ 10 февраля 2020

Предположим, у меня есть партия с формой [n, h, w, c], а также список из n индексов в диапазоне 0-9 и 10 Conv2D convs, которые я хочу применить к данным в зависимости от индекс в списке. Список индексов меняется с каждой партией.

Например. с вводом x, размером партии 4 и индексами l = [1,5,1,9] я бы хотел вычислить [convs[l[0]](x[0]), convs[l[1]](x[1]), convs[l[2]](x[2]), convs[l[3]](x[3])]

Наивным решением было бы вычисление каждой комбинации и сбор на основе l , Однако для этого требуется в 10 раз больше памяти. Есть ли лучшее решение этой проблемы?

1 Ответ

0 голосов
/ 11 февраля 2020

Одним из "хакерских" решений было бы расширить размер ввода с [n, h, w, c] до [1, n, h, w, c], а затем использовать Conv3D вместо формы ядра [1, x, y]

Если у вас определены веса отдельно (веса также могут быть получены с помощью layer.weights), вы также можете сложить их в 0-м измерении и использовать их через tf.nn.conv3d.

...