Как реализовать сверточные фильтры для Tensorflow или Pytorch? - PullRequest
0 голосов
/ 02 октября 2018

Я хочу реализовать сверточный слой с различным сверточным фильтром для каждого выходного местоположения.В частности, подумайте о случае, когда выходное значение составляет 16 * 16 * 128 (Ш * В * С).Вместо фильтра 3 * 3 * 128 мы имеем фильтры 16 * 16;каждый размером 3 * 3 * 128.Это может привести к огромному количеству параметров, но может случиться так, что каждый из фильтров 3 * 3 * 128 может быть одинаковым, за исключением того, что масштабируется по другой константе, и константы могут быть изучены через боковую сеть.Таким образом, число параметров не будет слишком большим.

Аналогичная идея кратко изложена в Динамических фильтрах сетей , но я не могу найти реализацию специфичных для местоположения фильтров.Мой вопрос: если нам нужен сверточный фильтр для конкретного местоположения, как мне его реализовать в Tensorflow или Pytorch?Нужно ли писать свою собственную операцию или есть какой-то умный способ использовать предоставленные функции?Если мне нужно написать ОП, есть ли какой-нибудь трюк, который может легко реализовать эту идею?Любая помощь приветствуется!

1 Ответ

0 голосов
/ 03 октября 2018

Свертка, по определению, является , а не конкретной локацией - это то, что делает ее сверткой.Если вы хотите обобщить свертку, имейте в виду, что в конечном итоге свертка является частным случаем простой линейной операции.Следовательно, вы можете реализовать свою «специфическую для местоположения» свертку как полностью связанный слой (nn.Linear) с очень специфическими разреженными весами.

...