Hi Felix!



 Felix_Labelle:

Changing that activation function to LeakyReLU helped, the loss now goes down to 0.05 after 100 epochs over 2 samples.


In the most common usage, you would have no activation between
your last Linear layer and your BCEWithLogitsLoss loss criterion,
neither a Sigmoid nor a LeakyReLU.
Also, on further inspection, I see that you do not have a nonlinear
activation between your Conv1D and your Linear layer.  Again,
in the most common usage, you would.  (ReLU,, Sigmoid, and
LeakyReLU could all be reasonable choices.)


The network’s input is a tensor of image features representing panoramic views along a path (36 views separated by 30 degrees, with 12 views looking up, 12 looking forward, 12 looking down). NUM_IMAGES is the length of the path.


Just thinking out loud here …
It seems to me that there is something inherently “sequential” about
the 12 views in each of the three horizontal “slices”  that make up your
panoramic “images” – hence a convolution could make sense – but
that the 36 views together don’t make up a clean “sequence.”  Perhaps
the “up,” “forward,” and “down” views should be “channels,” and not
convolved over.  Or perhaps a vertical up-forward-down “slice” counts
as a sequence, so maybe a Conv2d would make sense.
In a similar vein, if the 6 points in your paths are “close enough”
together, perhaps they should be treated as a sequence, and
convolved over.
So perhaps you should have a three-channel (up-forward-down)
Conv2d that convolves over the six points in your paths and the
twelve views in your horizontal panorama slices.  Or perhaps even
a full Conv3d over all three.
Best.
K. Frank