ultralytics / yolov3

YOLOv3 in PyTorch > ONNX > CoreML > TFLite
https://docs.ultralytics.com
GNU Affero General Public License v3.0
10.21k stars 3.45k forks source link

Questions about train.py output #481

Closed emmbertelen closed 5 years ago

emmbertelen commented 5 years ago

I have three questions. @glenn-jocher I was experimenting with the "Train Single Image" example with the picture you used in the example, so I ran python3 train.py --data data/coco_1img.data --epochs=5 ran1 1.) I right that "target" means the number of objects that the yolo located in the picture in the given epoch? Or do I misunderstand something? 2.) Why do I get three lines of every epochs' results? 3.) ran2 Maybe it is a dumb question, but is there any way to set the lenght of the output lines in the code? If I change the window size of the default ubuntu terminal, the output falls apart like this, and I would like to see the output the way it appears in jupyter.

Many thanks for help in advance.

glenn-jocher commented 5 years ago

@emmbertelen your terminal window is too small, output is wrapping. Resize it before starting the commands, and then leave it alone.

targets are the labelled objects in the batch.

emmbertelen commented 5 years ago

Thank you, Im still confused a bit about targets. ran3 In this case, my batch stands out of only a single picture. So does target mean in the first set of metrics the number of objects that the yolo located in the batch in this epoch (in this case on this single picture), and target in the second set of metrics means the total number targets that are labelled in the training data?

glenn-jocher commented 5 years ago

@emmbertelen targets are the labelled objects.

glenn-jocher commented 5 years ago

@emmbertelen the first row indicates that there are 4 objects in the last training batch, and the in the mAP calculation there are 1 images containing 6 objects. You can visualize all this by looking at your train_batch0.jpg and test_batch0.jpg images.

emmbertelen commented 5 years ago

@glenn-jocher Im running train.py on the coco_500val.data set: kép And at the evaluation metrics I get zero for P, R, and mAP, any idea why? Tried it on the exact copy on your repo. Tried it before in the coco_1img set, got the same zero for the evaluation metrics too.

glenn-jocher commented 5 years ago

@emmbertelen oh, training will work must faster on a GPU. You can use a Google Colab K80 if you need one.

If you want to use less memory simply reduce your --batch-size. To maintain similar training results at reduced batch sizes you can increase '--accumulate', which is the number of batches that are gradient accumulated before an optimizer update. i.e. try python3 train.py --batch-size 8 --accumulate 8

emmbertelen commented 5 years ago

Thank you, I have succesfully solved this problem, but meanwhile I have an other, which I have ni idea for. kép I get zero for P, R, and mAP at evaluation. I use the exact copy of your repo. Do you have any idea, why?

glenn-jocher commented 5 years ago

@emmbertelen you need to train longer, for several hundred epochs.

emmbertelen commented 5 years ago

@glenn-jocher I have just realised, that forgot the "transfer" flag, so basically, I was training it from scartch, am I right?

glenn-jocher commented 5 years ago

@emmbertelen ah yes. If you want to transfer learn then do something like: python3 train.py --cfg cfg/yolov3-spp.cfg --transfer --weights weights/yolov3-spp.weights

or to start training from a backbone you could do: python3 train.py --cfg cfg/yolov3-spp.cfg --weights weights/darketn53.conv.74