Je suis nouveau sur python. Quand j'étudiais le code pour yolov3, lambda, map, list étaient écrits sur une seule ligne, ce qui me faisait mal à la tête. Je veux le garder comme mon propre mémo, alors je vais l'écrire.
C'est le code autour de 85 lignes dans yolo.py de keras-yolov3.
1_yolo_code_around_85.py
self.colors = list(map(lambda x: colorsys.hsv_to_rgb(*x), hsv_tuples))
Éléments difficiles et explications à leur sujet ・ (* X): argument de longueur variable ・ Agneau: fonction anonyme ・ Carte: fonction intégrée ・ Liste: Liste
hsv_to_rgb nécessite trois arguments correspondant à hsv. Par conséquent, il peut être modifié comme suit.
2_yolo_code_around_85.py
self.colors = list(map(lambda x: colorsys.hsv_to_rgb(x[0],x[1],x[2]), hsv_tuples))
Il est plus facile d'imaginer si la liste x est faite comme ci-dessus. Définir une fonction en utilisant la liste x par lambda Attribuez la valeur de hsv_tuples à la fonction. Utilisez la carte pour faire de même pour tous les éléments Liste.
Recommended Posts