papermill을 사용해 보았습니다.
5162 단어 Jupyter-notebook파이썬Papermill
소개
「Jupyter만으로 기계 학습을 실제 서비스 전개할 수 있는 기반」 을 읽고, 기초에 jupyter notebook를 직접 짜넣다니 할 수 있을까 매우 감탄했습니다. 기사 속에서 jupyter notebook을 외부에서 실행할 수 있는 'papermill'이라는 라이브러리가 등장했으므로, 이것을 사용해 보고 싶습니다.
참고
환경
절차
설치
pip install papermill
실행
폴더 구성은 다음과 같이 했습니다. input.ipynb
에서 실행하려는 노트북에서 실행 코드를 main.py
에 씁니다.
work/
├ main.py
└ input.ipynb
input.ipynb
의 내용은 매우 간단하게 아래와 같이 했습니다.
여기서 첫 번째 셀에는 parameters
라는 태그가 있습니다. 태그는 메뉴에서 View-Cell Toolbar - Tags
를 선택하면 셀 오른쪽 상단의 텍스트 상자가 표시되므로 여기에 parameters
를 입력하고 Add tag
를 클릭하여 추가합니다. papermill은 노트북에서 parameters
태그가 붙은 셀을 찾아 가서 셀의 변수를 다시 쓸 수 있습니다.
파이썬 API에서 실행하는 방법은 다음과 같습니다. 실행 후 노트북이 ./output.ipynb
로 출력됩니다.
main.pyimport papermill as pm
pm.execute_notebook(
'./input.ipynb',
'./output.ipynb',
parameters = dict(alpha=0.6, ratio=0.1)
)
python main.py
에서 실행합니다.
$ python main.py
Executing: 100%|████████████████████████████████| 3/3 [00:01<00:00, 1.80cell/s]
./output.ipynb
를 열면 다음과 같습니다. Injected-parameters
라는 태그가 있는 셀이 추가되었으며 매개 변수를 덮어씁니다.
CLI에서 실행하려면 다음을 수행합니다. boolean이나 수치는 papermill이 마음대로 판단해 줍니다.
$ papermill ./input.ipynb ./output.ipynb -p alpha 0.6 -p ratio 0.1
Input Notebook: ./input.ipynb
Output Notebook: ./output.ipynb
Executing: 100%|████████████████████████████████| 3/3 [00:01<00:00, 2.67cell/s]
매개변수는 yaml 파일에서도 지정할 수 있습니다.
work/
├ main.py
├ input.ipynb
└ parameters.yaml
CLI에서 다음과 같이 실행합니다.
papermill ./input.ipynb ./output.ipynb -f ./parameters.yaml
클라우드 스토리지에 저장할 수도 있습니다. 이 경우 옵션도 설치해야 합니다.
pip install papermill[all]
./output.ipynb
부분을 클라우드 대상으로 바꿉니다. 다음은 AWS S3의 예입니다. CLI에서 configure되어 있으면 실행할 수 있습니다.
papermill ./input.ipynb s3://xxxxxxxxxx/output.ipynb -f ./parameters.yaml
덤
출력처를 입력과 동일하게 하면 덮어쓰기가 됩니다.
papermill ./input.ipynb ./input.ipynb -f ./parameters.yaml
여러 번 반복해도 Injected-parameters
셀을 덮어 쓸 수 있기 때문에 제대로 매개 변수를 다시 씁니다.
결론
flask로 관리 화면을 만들어 학습이나 관리할 수 있으면 재미있을 것 같습니다.
Reference
이 문제에 관하여(papermill을 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ground0state/items/a23185df3f98e3d20cac
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
pip install papermill
work/
├ main.py
└ input.ipynb
import papermill as pm
pm.execute_notebook(
'./input.ipynb',
'./output.ipynb',
parameters = dict(alpha=0.6, ratio=0.1)
)
$ python main.py
Executing: 100%|████████████████████████████████| 3/3 [00:01<00:00, 1.80cell/s]
$ papermill ./input.ipynb ./output.ipynb -p alpha 0.6 -p ratio 0.1
Input Notebook: ./input.ipynb
Output Notebook: ./output.ipynb
Executing: 100%|████████████████████████████████| 3/3 [00:01<00:00, 2.67cell/s]
work/
├ main.py
├ input.ipynb
└ parameters.yaml
papermill ./input.ipynb ./output.ipynb -f ./parameters.yaml
pip install papermill[all]
papermill ./input.ipynb s3://xxxxxxxxxx/output.ipynb -f ./parameters.yaml
papermill ./input.ipynb ./input.ipynb -f ./parameters.yaml
flask로 관리 화면을 만들어 학습이나 관리할 수 있으면 재미있을 것 같습니다.
Reference
이 문제에 관하여(papermill을 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ground0state/items/a23185df3f98e3d20cac텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)