I am currently using a hybrid model using pytorch by hybrid I mean Autoencoder and CNN and here is my model :
convnet(
(fc_encoder): Sequential(
(0): Linear(in_features=9950, out_features=200, bias=True)
)
(decoder): Sequential(
(0): Linear(in_features=200, out_features=9950, bias=True)
)
(con1): Conv1d(1, 2, kernel_size=(5,), stride=(1,))
(max1): MaxPool1d(kernel_size=4, stride=4, padding=0, dilation=1, ceil_mode=False)
(con2): Conv1d(2, 4, kernel_size=(5,), stride=(1,))
(max2): MaxPool1d(kernel_size=4, stride=4, padding=0, dilation=1, ceil_mode=False)
(l1): Linear(in_features=2480, out_features=1024, bias=True)
(drop): Dropout(p=0.5, inplace=False)
(l2): Linear(in_features=1024, out_features=512, bias=True)
(l3): Linear(in_features=512, out_features=128, bias=True)
(l4): Linear(in_features=128, out_features=32, bias=True)
(l5): Linear(in_features=32, out_features=1, bias=True)
)
I have some doubts regarding:


I am using one loss function to evaluate my model which is BCELoss. I want to know if hybrid model is implemented do I need to use 2 loss functions? What will happen if I evaluate my model just on one loss function?


The second question is if I am changing my learning rate I have a big difference in the ROC curve why this is happening?


Any clarification needed for the shape of the input I can provide.
Thanks in advance