티스토리 뷰

ultralytics 사의 yolov3, yolov5 그리고 yolov8 모델이 구현되어있는 ultralytics/ultralytics 프로젝트 까지 모두 기여하는데 성공했다. 요새 yolov8 코드를 보는데 모델, 손실함수 부분도 중요하지만 여기서 활용되는 python 기교들을 파악하는데도 집중하고있다.

 

https://developer0hye.tistory.com/entry/Python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%81%B4%EB%9E%98%EC%8A%A4%EC%9D%98-%ED%95%B4%EA%B4%B4%ED%95%9C-%EB%A9%A4%EB%B2%84%EB%B3%80%EC%88%98-%EC%A0%95%EC%9D%98-%EB%B0%A9%EB%B2%95%EA%B3%BC-%EC%8B%A4%EC%A0%9C-%EC%82%AC%EC%9A%A9-%EC%98%88

 

[Python] 파이썬 클래스의 해괴한 멤버변수 정의 방법과 실제 사용 예

class Foo: def __init__(self): pass def getx(self): return self.x foo = Foo() foo.x = 1 print(foo.getx()) C++ 로 위와 같이 코드를 작성했으면 foo.x = 1 라인에서 아래와 같은 오류가 출력됐을것이다. error: ‘class Foo’ has no

developer0hye.tistory.com

https://developer0hye.tistory.com/entry/Python-eval%EA%B3%BC-%EC%8B%A4%EC%A0%9C-%EC%82%AC%EC%9A%A9-%EC%98%88ultralyticsultralytics-YOLOv8-Project

 

[Python] eval과 실제 사용 예(ultralytics/ultralytics YOLOv8 Project)

python의 Built-in Functions 중 eval 이라는 함수가 있다. eval 은 문자열을 입력으로 받는다. eval 의 출력은 입력받은 문자열이 Python interpreter로 해독가능하다면 그 문자열을 "코드"로 보고 실행한다. 그

developer0hye.tistory.com

 

https://github.com/ultralytics/ultralytics/pull/844

 

change datatype of variable ch of parse_model function by developer0hye · Pull Request #844 · ultralytics/ultralytics

Changed a datatype of ch to int and converted datatype to list in parse_model(...). ch is considered int instead of list as a function argument. I think that ch means input channel, so it should be...

github.com

 

모델 파싱하는 함수인 parse_model 함수는 함수인자로 ch 를 갖는다. ch 는 input channel 인데 사용자로 하여금 이는 int 형 변수를 넣는게 아닌가? 라는 생각이 자연스럽게 든다. 다른 클래스의 생성자에서도 ch는 int형 값으로 초기화돼있다.

 

그런데 parse_model 은 이 ch를 list로 받는다. 기능적으로 문제는 없지만 그냥 내가 보기엔 다른데서 쓰인 ch와의 통일성이 없게 느껴져서 함수 인자는 int로 받게 하고  list로 변환하는 작업은 parse_model 내부에서 되도록 변경했다.

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함