[Python / Jupyter] Jupyter Lab/Notebook에서 python script를 반복문으로 실행하는 방법
Development/Python 2022. 3. 17. 23:05반응형
Jupyter Notebook/Lab 에서 파이썬 스크립트를 반복문으로 실행하는 방법
필자처럼 ML쪽 업무를 하는 사람이라면, Jupyter Notebook 혹은 Jupyter Lab을 매우매우 자주 활용하게 된다.
실시간으로 Line by Line 실행 결과를 확인하면서 디버그 하기도 용이하고, ML 모델이 잘 학습되고 있는지 로그 찍어보기도 편리하기 때문이다.
하지만 때로는 주피터 노트북 형태의 커널이 아니라, 일종의 서버 인터페이스용으로 주피터를 사용하며 파이썬 스크립트를 주피터 상에서 돌리는 경우도 있다.
이 때, 항상 아쉬웠던 점이 특정 인자를 바꿔가면서 다양한 실험을 해보고 싶을 때 !와 함께 사용하는 스크립트 실행으로는 모든 Argument를 하나하나 입력하는 방식으로 작성해놔야 한다는 점이었다. 단순히 반복문과 함께 ! 기능을 사용하여 실행시킬 수도 있지만, 이럴 경우 파이썬 스크립트가 에러가 나서 종료되었을 때, 에러 메시지를 뱉지 않고 다음 스크립트로 넘어가는 현상이 종종 있다.
다음과 같은 형태로 에러 걱정 없이 순차적으로 명령어를 수행시킬 수 있다.
아래 예시는 glob을 통해 추출한 다양한 checkpoint 파일에 대해서 inference를 수행하는 예시이다.
from glob import glob
from subprocess import check_all
model_list = glob('outputs/models/*.pth')
for m in model_list:
run_name = m.split('/')[-1][:-4]
check_call(["python", "evaluate.py", "--checkpoint", "{m}", "--run_name", "{run_name}"])
'''
아래와 같이 실행되는 효과를 지닌다.
python evaluate.py --checkpoint outputs/models/model1.pth --run_name model1
python evaluate.py --checkpoint outputs/models/model2.pth --run_name model2
python evaluate.py --checkpoint outputs/models/model3.pth --run_name model3
'''
반응형
'Development > Python' 카테고리의 다른 글
[에러노트 / PANDAS] AttributeError: Can't get attribute '_unpickle_block' on <module 'pandas._libs.internals' from ' /internals.cpython-38-x86_64-linux-gnu.so'> (0) | 2022.04.01 |
---|---|
[Python / JSON] Python JSON 파일 한글 깨짐 해결법 (0) | 2022.03.20 |
[Python / Linux] Python으로 파일 복사 하기 (0) | 2022.03.17 |
[Python] N까지의 소수 구하기 최적화 방법 (0) | 2021.12.18 |
[Python] 피보나치(Fibonacci) 수열 구하기 (0) | 2021.12.18 |