Python에서 args 직접 기입하는 대신에 간단히 SimpleNamespace 라이브러리 사용하기
기타2020. 10. 15. 23:09
728x90
반응형
흔히 깃허브(GitHub)에 올라와 있는 다양한 프로젝트에서는 별도의 main.py 소스코드를 정의한 뒤에 인자(argument)를 넘겨 주어서 프로그램을 실행하는 방식을 많이 사용합니다. 이것이 가장 전통적인 방법이기도 하며, 실제로 코드를 이용하는 사람 입장에서는 소스코드를 다운로드 한 뒤에 인자 값과 함께 코드를 실행해야 합니다. 예를 들어 StarGAN의 공식 GitHub에 적혀 있는 내용을 가져오면 다음과 같습니다.
main.py 코드를 실행하기 위해 매우 많은 인자(argument) 값을 넘겨주어야 오류 없이 실행됩니다.
다만 Google Colab과 같이 주피터(Jupyter) 환경에서 직접 main.py의 코드를 수정하면서 실행해보고 싶은 사람은 어떻게 할 수 있을까요? 이럴 때 효과적으로 사용할 수 있는 라이브러리가 SimpleNamespace입니다. SimpleNamespace는 Python 3.3 버전에서 새롭게 표준 라이브러리로 추가되었습니다.
대략 다음과 같이 사용하면 됩니다.
# args와 동일한 형태의 데이터 인자를 넘기기 위한 테크닉
from types import SimpleNamespace
args = SimpleNamespace()
args.dataset = "CelebA"
args.selected_attrs = ["Black_Hair", "Blond_Hair", "Brown_Hair", "Male", "Young"]
args.model_save_dir = "stargan_celeba_256/models"
args.num_workers = 1
args.mode = "test"
print("데이터셋:", args.dataset)
print("전체 인자 값:", args)
실행 결과는 다음과 같습니다.
728x90
반응형
'기타' 카테고리의 다른 글
Raspberry Pi Zero W 소개, 구매 방법, 환경 설정 방법 총 정리 (+ Wi-Fi 연결까지) (1) | 2020.10.23 |
---|---|
USB 케이블 잘라서 데이터(Data-only) 케이블로 만들기 (2) | 2020.10.19 |
라즈베리파이(Raspberry Pi) Zero W 커널(Kernel) 컴파일 및 빌드 해보기 (1) | 2020.10.15 |
이미지넷(ImageNet) 데이터셋 소개 및 다운로드하는 방법 (0) | 2020.10.15 |
Xmanager "인증되지 않은 클라이언트로부터 연결 요청을 받았습니다." 해결 방법 (0) | 2020.10.15 |