pjreddie / darknet

Convolutional Neural Networks
http://pjreddie.com/darknet/
Other
25.82k stars 21.33k forks source link

Self Trained weights different from the official downloaded weights in size. #103

Open zinkcious opened 7 years ago

zinkcious commented 7 years ago

I try train tiny-yolo-voc.cfg using the VOC dataset and get "tiny-yolo-voc_100.weights" whose file size is 63471560 bytes. And when I look at the file size of tiny-yolo-voc.weights download from the official website, it's file size is 63471556 bytes, with 6 bytes different from the weights I trained. I wonder why is it?

Although there is no difference if I use the darknet framework all the time, I have problem converting my weights to tensorflow required format using darkflow. I can successfully convert the official downloaded weights using darkflow, but I can't convert the weights I trained using darkflow because of the different file size.

The error reported when converting the weights using darkflow can be seen here: https://github.com/thtrieu/darkflow/issues/325

imaami commented 7 years ago

Sounds a lot like issue #78. Actually I'm 100 % sure it's that. The weights file you generated is 4 bytes larger than the downloadable file, which to me indicates that a single header byte is 8 bytes (64 bits) in your file but 4 bytes (32 bits) in the downloadable file. This is precisely what is going to happen if a program relies of stuff like sizeof(size_t) when calculating a binary format's internal structure.

@pjreddie, yo.