# If a neural network performs very well on training data, does that mean it is overfitting?

In a (including convolutional) neural network, suppose I get a fair accuracy (say, $\approx 80\%-90\%$) on my validation/test data, but extremely good accuracy ($\approx 100\%$) if I run it back on my training data.

Does this necessarily mean that my network is overfitting, and I should apply some techniques (get more data, regularize, etc.) to handle it? In other words, can I conclude that my network is overfitting, or very highly likely overfitting? Are there other reasons why this can happen?

The training error is always going to be somewhat smaller than the validation error (because you're actively trying to minimize the training error) - that in itself is not a sign of overfitting. Overfitting means you decreased the training error at the expense of a higher validation ($\approx$ generalization) error. For iterative optimization procedures, you can diagnose this by plotting the training and validation error/performance over time (i.e. over successive iterations of the optimization algorithm). If, at some point, the validation error stops decreasing or even starts increasing while the training error still decreases, that is a pretty sure sign of overfitting.