The output from Darknet when training a neural network has never been fully documented. And the output has changed quite a bit over the years. In this post, I'll go over the output of the most recent Darknet v5.1 which was released in December 2025.
When training a neural network, a line is output at every iteration. Typically, an iteration consists of 64 images. The following image shows the output of 10 consecutive iterations:
In Darknet v5.1, there are 11 fields per line:
I'll use the highlighted line from iteration #680 to show the meaning behind all 11 fields:
| field | name | description |
|---|---|---|
| 680 | iteration | At the very left of each line is the iteration number. Training starts at iteration #1 and goes up to max_batches which must be defined in the [net] section at the top of the .cfg file. |
| loss=0.273 | current loss | The loss calculated for this training iteration. The lower the number, the better the results. When training first starts, this will be in the thousands. |
| avg loss=0.221 | average loss | Similar to the previous field. The average loss. The lower the number, the better the results. |
| last=68.62% | recent mAP | The most recent mAP (mean average precision) value. The higher the number, the better the results. This requires the -map flag to be specified when training. |
| best=73.10% | best mAP | The best mAP (mean average precision) value seen so far during training. This requires the -map flag to be specified when training. |
| mAP=700 | next mAP | The iteration number when the next mAP calculation is scheduled to take place. This requires the -map flag to be specified when training. |
| rate=0.00261000 | learning rate | The learning rate. This is reduced automatically as training progresses, based on learning_rate=, steps=, and scales= in the .cfg file. |
| load 64=20.2 milliseconds | load images | The time it took to load 64 images for this iteration. The "64" is based on the size of a batch as defined in the [net] section of the .cfg file. The thread that controls the image loading threads verifies results every 5 milliseconds, so you'll typically see values like 15, 20, 25, ... in increments of 5 milliseconds. |
| train=49.2 milliseconds | train network | The time it took to train with all images loaded for this iteration. Typically, training should take longer than loading, otherwise Darknet will log a message warning you that loading the images is taking longer than expected. In the background, Darknet is always busy loading the next batch of images while training the current batch. |
| 43520 images | total images | The number of images loaded so far to train the neural network. Since this example is from iteration #680, and there are 64 images per batch, this amounts to 43520 total images (680 * 64 = 43520). |
| time remaining=2.3 minutes | time remaining | An estimate as to how much time remains for training to finish. Training is finished when the iteration reaches max_batches. |
There is additional output generated if you pass the -verbose or -trace flags when training. That output is mostly for debug purposes.