I have a question that my single deep neural network model gives above 90% accuracy for one data set and the same model gives an accuracy between 70-80% for the other data set. I want to know why this variation in accuracy happens in spite of the fact that i am using the same deep neural network model.
I can think of one reason. Because you're using different data sets, the properties of your data set are likely to be different. So obviously what the model will learn will be different. And maybe the architecture of your network suits one data set more than the other. But also if you try training the model on your other data set(with less accuracy) for more epochs, it's possible that the accuracy will improve. Your model could be just be slow to understand this data set.
It's like when you see a human you can easily recognize a face. But when you see a software code, it's not always easy to find the bug. But if you're trained well enough you'll eventually be faster and better in recognizing the bugs.
I hope it makes sense to you.
I'm assuming you're taking a certain neural net (NN) architecture and doing a train/test/validate cycle on dataset A to get 90% accuracy, then you reset your parameters and train/test/validate on dataset B to get 70% accuracy
To expand what @mohit-motwani says:
There does not exist a machine learning model that will approximate all functions to any desired degree. By corollary, there is no single neural net architecture that will best fit any given data.
Try tweaking various hyperparameters and see if that helps. Activation functions, convolution size, padding, pooling, even a few more/less hidden layers can drastically change your results.
NNs have been getting a lot of praise lately as "automated learning machines" but in reality, you still have to know the theory behind them, and what's under the hood to fully appreciate how they work. You'll get better with experience, but don't think any one NN architecture is "best"