It sounds like a data related problem.
I don’t really understand the following statement

PS: I used the trained model to evaluate the training, test, and vald of ADvsMCI, the accuracy is not 1.0.

Did you check the training, validation and test errors on ADvsMCI after the shuffling described in the paragraph before?
Can you load the dataset completely into RAM?
If so, it is a bit tedious, but you could check for re-occurences of training instances in the validation and test set.