Hi, I am wondering if there is anything wrong with my training as it achieves very high accuracy from the starting itself? The logs for training on CIFAR10 looks like this as below-
Files already downloaded and verified
Files already downloaded and verified

Epoch 000:
Training Loss: 64.2905438385933 | Training Accuracy: 91.71
Total Test Loss: 2.600952295586467 | Test Accuracy: 99.82
Saving...

Epoch 001:
Training Loss: 1.0865276760887355 | Training Accuracy: 99.81
Total Test Loss: 3.7665871270000935 | Test Accuracy: 99.92

Epoch 002:
Training Loss: 0.18417388796842715 | Training Accuracy: 99.986
Total Test Loss: 1.7079168632626534 | Test Accuracy: 99.96

Epoch 003:
Training Loss: 0.09753012470901012 | Training Accuracy: 99.994
Total Test Loss: 1.410150108858943 | Test Accuracy: 99.96

The good part is, after downloading the model and testing on examples it still gives the same accuracy. Still, I suspect if there is anything basic that I might be missing and all this accuracy is because of an error.
The model is stacked model of an autoencoder and a classifier and involves a custom loss for autoencoder including MSE loss and Cross-Entropy loss for Classifier.
I am looking for any suggestions or checks you may have to advise to understand the correctness of my pipeline.
Training Pipeline:
    for epoch in range(EPOCH+1):
        global best_train_acc
        running_loss, train_loss, correct, total = 0.0, 0, 0, 0
        autoencoder.train()
        for i, (inputs, labels) in enumerate(trainloader):
            inputs, labels = inputs.to(device), labels.to(device)
            encoded, decoded, _, _, _ = autoencoder(inputs, labels)
            loss_ae = custom_loss_fn()

            output_classifier = classifier(encoded)
            loss_classifier = ce(output_classifier, labels) # classifier loss
            
            optimizer.zero_grad()
            optimizer_classifier.zero_grad()
            
            loss_ae.backward(retain_graph=True)
            loss_classifier.backward()
            optimizer.step()
            optimizer_classifier.step()

            train_loss += loss_classifier.item()
            _, predicted = output_classifier.max(1)
            total += labels.size(0)
            correct += predicted.eq(labels).sum().item()

and testing in the same way just I add;
autoencoder.eval() and with torch.no_grad()