You can’t expect both training setups to return the same training result.
Let’s have a look at the extreme situation, where a) you feed the complete training dataset at once and b) you feed each sample separately.
In the first use case, the parameters will be updated only once with the gradient computed by the loss from the complete dataset (which will be the averaged loss using all samples), while the second case would compute the loss (and gradients) separately for each sample and update the model 3000 times.