Should I be changing the weights/biases on every single sample before moving on to the next sample,
You can do this, it is called stochastic gradient descent (SGD) and typically you will shuffle the dataset before working through it each time.
or should I first calculate the desired changes for the entire lot of 1,000 samples, and only then start ...
First of all, it's completely normal that you are confused because nobody really explains this well and accurately enough. Here's my partial attempt to do that. So, this answer doesn't completely answer the original question. In fact, I leave some unanswered questions at the end (that I will eventually answer).
The gradient is a linear ...
Is back-propagation applied immediately after getting the output for each input or after getting the output for all inputs in a batch?
You can perform back-propagation using (or after) only one training input (also known as data point, example, sample or observation) or multiple ones (a batch). However, the loss function to train the neural ...
Well, some time ago I also faced the same issue in the semantic segmentation task. Batch normalization is expected to improve convergence, because the normalization of activations prevents the explosion of the gradients magnitude and leads to more steady convergence.
Adam is an adaptive optimizer with momentum and division by the weighted sum of gradients on ...
do I have to:
calculate all gradients
...repeatedly over all samples in the batch, and then average all gradients and apply the weight change?
Yes, that is correct. You can save a bit of memory by summing gradients as you go. Once you have calculated the gradients for one example for the weights of one layer, then you ...