У меня есть входной тензор shape (C,H,W)
, где H=W
и C=W^2
. Этот тензор содержит нелинейно преобразованную информацию для изображения shape (1,H,W)
, сжатого до (H,W)
. Точная форма преобразования не важна (плюс, для нее все равно нет выражения в замкнутой форме). Я хотел бы разработать CNN
для оценки изображений из таких тензоров. Я понимаю, что мне придется экспериментировать с CNN architectures
(поскольку у меня нет точной формы преобразования), но я не совсем уверен, как действовать дальше.
Входной тензор имеет как положительные, так и отрицательные значения, которые важны для восстановления изображения, поэтому ReLU layer
, вероятно, не следует реализовывать в начале CNN
. Я не думаю, что объединение слоев было бы полезно, по крайней мере, в измерениях H
и W
. Ясно, что мне нужно свернуть измерение C, чтобы получить изображение, но я не думаю, что это должно быть сделано сразу, e.g., torch.nn.Conv2d( C, 1, kernel_size )
, вероятно, не очень хорошая идея.
Кажется, мне, что я должен сначала использовать Conv2D layer
, который производит тот же тензор размера, что и входной тензор (чтобы частично расшифровать нелинейное преобразование), но если размер ядра на больше , чем один, то H
и размеры W
будут уменьшены в размере, чего я не хочу (если только это не будет решено позже в CNN
). С другой стороны, если размер ядра равен единице, форма останется такой же , но я не думаю, что в этом случае что-то случится с тензором. Кроме того, мне, вероятно, придется включить линейные слои, но я не уверен, как использовать их с 3D
тензорами.
Любые предложения приветствуются.