@@ -783,7 +783,7 @@ def strip_optimizer(f='best.pt', s=''): # from utils.general import *; strip_op
783
783
LOGGER .info (f"Optimizer stripped from { f } ,{ (' saved as %s,' % s ) if s else '' } { mb :.1f} MB" )
784
784
785
785
786
- def print_mutation (results , hyp , save_dir , bucket ):
786
+ def print_mutation (results , hyp , save_dir , bucket , prefix = colorstr ( 'evolve: ' ) ):
787
787
evolve_csv = save_dir / 'evolve.csv'
788
788
evolve_yaml = save_dir / 'hyp_evolve.yaml'
789
789
keys = ('metrics/precision' , 'metrics/recall' , 'metrics/mAP_0.5' , 'metrics/mAP_0.5:0.95' ,
@@ -803,21 +803,23 @@ def print_mutation(results, hyp, save_dir, bucket):
803
803
with open (evolve_csv , 'a' ) as f :
804
804
f .write (s + ('%20.5g,' * n % vals ).rstrip (',' ) + '\n ' )
805
805
806
- # Print to screen
807
- LOGGER .info (colorstr ('evolve: ' ) + ', ' .join (f'{ x .strip ():>20s} ' for x in keys ))
808
- LOGGER .info (colorstr ('evolve: ' ) + ', ' .join (f'{ x :20.5g} ' for x in vals ) + '\n \n ' )
809
-
810
806
# Save yaml
811
807
with open (evolve_yaml , 'w' ) as f :
812
808
data = pd .read_csv (evolve_csv )
813
809
data = data .rename (columns = lambda x : x .strip ()) # strip keys
814
- i = np .argmax (fitness (data .values [:, :7 ])) #
810
+ i = np .argmax (fitness (data .values [:, :4 ])) #
811
+ generations = len (data )
815
812
f .write ('# YOLOv5 Hyperparameter Evolution Results\n ' +
816
813
f'# Best generation: { i } \n ' +
817
- f'# Last generation: { len ( data ) - 1 } \n ' +
814
+ f'# Last generation: { generations - 1 } \n ' +
818
815
'# ' + ', ' .join (f'{ x .strip ():>20s} ' for x in keys [:7 ]) + '\n ' +
819
816
'# ' + ', ' .join (f'{ x :>20.5g} ' for x in data .values [i , :7 ]) + '\n \n ' )
820
- yaml .safe_dump (hyp , f , sort_keys = False )
817
+ yaml .safe_dump (data .loc [i ][7 :].to_dict (), f , sort_keys = False )
818
+
819
+ # Print to screen
820
+ LOGGER .info (prefix + f'{ generations } generations finished, current result:\n ' +
821
+ prefix + ', ' .join (f'{ x .strip ():>20s} ' for x in keys ) + '\n ' +
822
+ prefix + ', ' .join (f'{ x :20.5g} ' for x in vals ) + '\n \n ' )
821
823
822
824
if bucket :
823
825
os .system (f'gsutil cp { evolve_csv } { evolve_yaml } gs://{ bucket } ' ) # upload
0 commit comments