Есть ли способ сделать местоположения выходных пикселей CNN? - PullRequest
1 голос
/ 16 июня 2020

Я хочу обучить CNN, который принимает в качестве входных данных массив numpy формы (1600, 800, 1), который будет содержать все нули, за исключением нескольких пикселей, где я могу иметь значения от 10 до 3100 (Это numpy массив не является изображением), а результат должен иметь размер 310, где каждый элемент представляет собой пару, содержащую координаты (x, y) позиций точек на входе, которые имеют ненулевые значения.

Есть ли любой способ сделать это? Мы очень ценим любое понимание этого. Заранее спасибо!

1 Ответ

1 голос
/ 16 июня 2020

Обычный CNN обычно неспособен вывести такую ​​пространственную информацию без дополнительной помощи. Было много попыток исправить это, одна из которых - CoordConv . Tl; dr заключается в том, что в случаях, когда вы хотите регрессировать позиции в массиве, как в вашей задаче, полезно предоставить сети тензор / матрицу / вектор / все, что содержит (обычно нормализованные) координаты. Это можно сделать либо на входе, либо на разных уровнях. Например, в вашем случае ваш ввод может быть изменен так:

#Tensor of size 1x1x2x3100 
[0, ..., non_zero_val, 0, other_non_zero_val, 0, 0]
[0,  1 , ...                                  3099]/3099 #element-wise division just to normalise
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...