<p>I think you underestimate the size of YOLO. This is the size of one segment of yolo tiny according to the darknet .cfg file:</p>

<pre><code>Convolutional Neural Network structure:
416x416x3                Input image
416x416x16               Convolutional layer: 3x3x16, stride = 1, padding = 1
208x208x16               Max pooling layer: 2x2, stride = 2
208x208x32               Convolutional layer: 3x3x32, stride = 1, padding = 1
104x104x32               Max pooling layer: 2x2, stride = 2
104x104x64               Convolutional layer: 3x3x64, stride = 1, padding = 1
52x52x64                 Max pooling layer: 2x2, stride = 2
52x52x128                Convolutional layer: 3x3x128, stride = 1, padding = 1
26x26x128                Max pooling layer: 2x2, stride = 2
26x26x256                Convolutional layer: 3x3x256, stride = 1, padding = 1
13x13x256                Max pooling layer: 2x2, stride = 2
13x13x512                Convolutional layer: 3x3x512, stride = 1, padding = 1
12x12x512                Max pooling layer: 2x2, stride = 1
12x12x1024               Convolutional layer: 3x3x1024, stride = 1, padding = 1
</code></pre>

<p>.cfg file found here: <a href="https://github.com/pjreddie/darknet/blob/master/cfg/yolov3-tiny.cfg" rel="nofollow noreferrer">https://github.com/pjreddie/darknet/blob/master/cfg/yolov3-tiny.cfg</a></p>

<p>EDIT: These networks generally aren't specifically designed to train fast, they're designed to run fast at test time, where it matters</p>

CC BY-SA 4.0
2020-02-28T11:08:14.240Z
yeah, that tiny network is still huge
Dan D.
CC BY-SA 4.0
2020-02-28T05:21:09.443Z
2020-02-28T05:21:09.443Z
Recessive
<p>It depends upon the factors such as 
1. Batch size (GPU memory capacity)
2. CPU speed and number of cores(multi-threading to load the images)</p>

<p>Number of classes increase the number of convolution filters only in the prediction layers of YOLO. It influences only less than 1% speed of the detector to train the model.</p>

CC BY-SA 4.0
2020-02-28T11:08:55.520Z
u said it right, i train now on gpu and it's 10x to 100x faster
Dan D.
CC BY-SA 4.0
2020-02-28T06:08:50.547Z
2020-02-28T06:08:50.547Z
Sudhakar17
<p>I'm testing out YOLOv3 using the 'darknet' binary, and custom config. It trains rather slow.</p>

<p>My testing out is only with 1 image, 1 class, and using YOLOv3-tiny instead of YOLOv3 full, but the training of yolov3-tiny isn't fast as expected for 1 class/1 image.</p>

<p>The accuracy reached near 100% after like 3000 or 4000 batches, in similarly 3 to 4 hours. </p>

<p><strong>Why is it slow with just 1 class/1 image?</strong></p>

<training><computer-vision><object-detection><yolo><darknet>
What are the reasons behind slow YOLO training?
Dan D.
# What are the reasons behind slow YOLO training?

(Asked by: username_0 on 2020-02-28)

I'm testing out YOLOv3 using the 'darknet' binary, and custom config. It trains rather slow.

My testing out is only with 1 image, 1 class, and using YOLOv3-tiny instead of YOLOv3 full, but the training of yolov3-tiny isn't fast as expected for 1 class/1 image.

The accuracy reached near 100% after like 3000 or 4000 batches, in similarly 3 to 4 hours.

**Why is it slow with just 1 class/1 image?**

**Tags:** training, computer-vision, object-detection, yolo, darknet


---

## 2 answers

### Answer by username_1 on 2020-02-28. Score: 2 | Accepted answer

I think you underestimate the size of YOLO. This is the size of one segment of yolo tiny according to the darknet .cfg file:
Convolutional Neural Network structure:
416x416x3                Input image
416x416x16               Convolutional layer: 3x3x16, stride = 1, padding = 1
208x208x16               Max pooling layer: 2x2, stride = 2
208x208x32               Convolutional layer: 3x3x32, stride = 1, padding = 1
104x104x32               Max pooling layer: 2x2, stride = 2
104x104x64               Convolutional layer: 3x3x64, stride = 1, padding = 1
52x52x64                 Max pooling layer: 2x2, stride = 2
52x52x128                Convolutional layer: 3x3x128, stride = 1, padding = 1
26x26x128                Max pooling layer: 2x2, stride = 2
26x26x256                Convolutional layer: 3x3x256, stride = 1, padding = 1
13x13x256                Max pooling layer: 2x2, stride = 2
13x13x512                Convolutional layer: 3x3x512, stride = 1, padding = 1
12x12x512                Max pooling layer: 2x2, stride = 1
12x12x1024               Convolutional layer: 3x3x1024, stride = 1, padding = 1

.cfg file found here: https://github.com/pjreddie/darknet/blob/master/cfg/yolov3-tiny.cfg
EDIT: These networks generally aren't specifically designed to train fast, they're designed to run fast at test time, where it matters

> **Comments:**
> **username_0**: yeah, that tiny network is still huge  

---

### Answer by username_2 on 2020-02-28. Score: 1

It depends upon the factors such as
1. Batch size (GPU memory capacity)
2. CPU speed and number of cores(multi-threading to load the images)

Number of classes increase the number of convolution filters only in the prediction layers of YOLO. It influences only less than 1% speed of the detector to train the model.

> **Comments:**
> **username_0**: u said it right, i train now on gpu and it's 10x to 100x faster  

---

