also are you doing binary classification or multilabel??
if binary your last layer should be linear layer for 128 X 64 mapping to 64 X 1
if multi class :
loss_function = CrossEntropyLoss
remove the layer which is doing max(self.final)
and make sure tht y  contains  encoded label according to target and dtype of y to be as torch.Long