mvoelk/ssd_detectors

[Question] Meaning of log

Closed this issue · 4 comments

Hello Sir. @mvoelk
Thank you for your great work

What is the meaning of log

{"neg_seg_conf_loss": 0.3863193988800049, "link_fmeasure": 0.0, "num_neg_seg": 5007.0, "seg_recall": 0.0, "pos_seg_conf_loss": 1.3579927682876587, "link_recall": 0.0, "link_conf_loss": 0.7612245082855225, "seg_fmeasure": 0.0, "pos_link_conf_loss": 1.7857060432434082, "epoch": 0, "lr": 0.0010000000474974513, "seg_accuracy": 0.304583340883255, "seg_precision": 0.0, "seg_conf_loss": 0.629237711429596, "num_pos_seg": 1669.0, "link_precision": 0.0, "link_accuracy": 0.0, "seg_loc_loss": 3.570629596710205, "loss": 4.961091995239258, "iteration": 33, "batch": 33, "time": 213.97210311889648, "neg_link_conf_loss": 0.41973066329956055}

{"neg_seg_conf_loss": 0.24363349378108978, "link_fmeasure": 0.5489721298217773, "num_neg_seg": 5835.0, "seg_recall": 0.35218510031700134, "pos_seg_conf_loss": 1.1648257970809937, "link_recall": 0.38869863748550415, "link_conf_loss": 0.5120393633842468, "seg_fmeasure": 0.48598790168762207, "pos_link_conf_loss": 1.263663411140442, "epoch": 3, "lr": 0.0010000000474974513, "seg_accuracy": 0.39625000953674316, "seg_precision": 0.7837528586387634, "seg_conf_loss": 0.47393155097961426, "num_pos_seg": 1945.0, "link_precision": 0.9341563582420349, "link_accuracy": 0.37833333015441895, "seg_loc_loss": 2.074434757232666, "loss": 3.060405731201172, "iteration": 99318, "batch": 2709, "time": 275985.530739069, "neg_link_conf_loss": 0.26149797439575195}

How can i tell that my model have good accuracy or converge ?

Thank you

During the training process, the values of the metrics are written out in a json file. Each line corresponds to one iteration. Its functionality is similar to that of TensorBoard.

To plot the metrics, proceed similar as in plot_loss.ipynb.

I also plan to clean up the files a bit as soon as I have time.

@mvoelk
Thank you for your answer.
i will plot the loss and accuracy.
But actually my question is: "what is the meaning of the following value inside log? ".

"neg_seg_conf_loss": 0.24363349378108978,
"link_fmeasure": 0.5489721298217773,
"num_neg_seg": 5835.0, 
"seg_recall": 0.35218510031700134,
"pos_seg_conf_loss": 1.1648257970809937,
"link_recall": 0.38869863748550415,
"link_conf_loss": 0.5120393633842468,
"seg_fmeasure": 0.48598790168762207,
"pos_link_conf_loss": 1.263663411140442,
"seg_accuracy": 0.39625000953674316,
"seg_precision": 0.7837528586387634,
"seg_conf_loss": 0.47393155097961426,
"num_pos_seg": 1945.0,
"link_precision": 0.9341563582420349,
"link_accuracy": 0.37833333015441895,
"seg_loc_loss": 2.074434757232666,
"loss": 3.060405731201172,
"neg_link_conf_loss": 0.26149797439575195

By the way, training on SynthText dataset gave us the following result. The precision is more than 80% so can we consider that this is a good result ?

seg_precision

seg_recall

link_precision

F-measure is actually the harmonic mean between precision and recall, that is calculated for the segments and links. The rest are the components of the multi-task loss as described in the paper and the number of positive and negative segments used for hard-negative mining. For the exact definition of precision, recall and f-measure, please see the thesis or use a search engine. Issue #2 could also be relevant...

For the SegLink models, it is typical that the precision is higher than the recall. In your case, however, the recall seems quite low.

You can also compare your log and code with that provided with the models I have trained.