Ich bin neu in Python. Als ich den Code für yolov3 studierte, wurden Lambda, Karte und Liste in eine Zeile geschrieben, was meinen Kopf schmerzte. Ich möchte es als mein eigenes Memo behalten, also werde ich es aufschreiben.
Dies ist der Code für 85 Zeilen in yolo.py von keras-yolov3.
1_yolo_code_around_85.py
self.colors = list(map(lambda x: colorsys.hsv_to_rgb(*x), hsv_tuples))
Schwierige Elemente und Erklärungen dazu ・ (* X): Argument variabler Länge ・ Lamm: Anonyme Funktion ・ Karte: Eingebaute Funktion ・ Liste: Liste
hsv_to_rgb erfordert drei Argumente, die hsv entsprechen. Daher kann es wie folgt geändert werden.
2_yolo_code_around_85.py
self.colors = list(map(lambda x: colorsys.hsv_to_rgb(x[0],x[1],x[2]), hsv_tuples))
Es ist leichter vorstellbar, ob die Liste x wie oben erstellt wird. Definieren Sie eine Funktion mit der Liste x nach Lambda Weisen Sie der Funktion den Wert von hsv_tuples zu. Verwenden Sie map, um für alle Elemente dasselbe zu tun Aufführen.
Recommended Posts