Я хочу найти одномерную корреляцию между двумя матрицами. Эти две матрицы являются результатом операции свертки двух разных изображений. Назовем первую матрицу как matrix A
, а другую как matrix B
. Обе эти матрицы имеют форму 100 x 100 x 64
(скажем).
Я следил за исследовательской работой, которая в основном вычисляет одномерную корреляцию между этими двумя матрицами (матрица A и матрица B) на одном из шагов, и результатом операции корреляции также является матрица формы 100 x 100 x 64
. Ссылку на статью можно найти здесь. Сеть можно найти на странице 4. Корреляционная часть находится в нижней части сети. Об этом было сказано парой строк во 2-м абзаце раздела 3.3 (на той же странице, ниже сети).
Я не совсем уверен, что они имеют в виду под одномерной корреляцией и, тем более, как это реализовать в Python. Я также смущен тем, как форма вывода остается такой же, как и ввод после применения корреляции. Я использую библиотеку PyTorch для реализации этой сети.
Любая помощь будет оценена. Спасибо.
В чем вопрос. Добро пожаловать в СО. Пожалуйста, возьмите тур и найдите время, чтобы прочитать Как спросить и другие ссылки, найденные на этой странице.
Таким образом, у них в основном есть 1 исходное изображение, которое они рассматривают как вид слева для алгоритма восприятия глубины, но поскольку вам нужно стереозрение для вычисления глубины в неподвижном изображении, они используют нейронную структуру для синтеза вида справа.
1 Dimensional Correlation берет 2 последовательности и вычисляет корреляцию в каждой точке, что дает вам еще одну 1D-последовательность той же длины, что и 2 входа. Поэтому, если вы примените эту корреляцию вдоль определенной оси тензора, результирующий тензор не изменит форму.
Интуитивно они думали, что имеет смысл сопоставлять изображения по горизонтальным осям, что-то вроде чтения изображений, как чтения книги, но в данном случае это должно иметь эффект, похожий на определение того, что предметы, которые находятся дальше, также кажутся точками, которые ближе друг к другу на видах слева и справа. Корреляция, вероятно, выше для левой и правой точек данных, которые находятся дальше, и это значительно упрощает классификацию глубины для нейронной сети.
Спасибо за ответ! Если возможно, не могли бы вы продемонстрировать это с помощью примера кода? Или, может быть, добавить ссылку на какую-то функцию в Python или PyTorch (предпочтительнее), которая может это сделать?
Я не собираюсь реализовывать для вас 1D корреляцию с нуля в pytorch, но вот гитхаб проект с классом correlation1d
Я подозреваю, что вы получите легкую пощечину за то, что задали здесь неконкретный вопрос :); а что касается 1D корреляции - как-то так? plot.ly/python/1d-корреляция