Kaggle 사이트에서 Kernel (Python 프로그램)을 실행하는 방법

소개



Kaggle 사이트에서 GPU (NVIDIA Tesla K80)를 사용하여 Kernel을 실행할 수 있다는 것을 알았으므로 방법을 설명합니다.
Kaggle 계정을 만들고 대회에 참여하는 방법을 모르는 분은 Kaggle 일 시작에서 알기 쉽게 설명되어 있으므로 참조하십시오.

커널 만들기



Kernel을 작성하는 방법은 새로 작성하는 방법과 이미 있는 Kernel을 Fork(복사)하는 것으로 작성할 수 있습니다. 다른 사람이 공개하고있는 Kernel에서도 Fork 할 수 있기 때문에 편리합니다.

Kernel을 새로 작성하는 방법



대회 사이트에서 Kernel을 선택하고 New Kernel을 눌러 생성할 수 있습니다. 만들 수 있는 Kernel 유형은 Scrip(py) 또는 Notebook 형식(.ipynb)


이미 있는 Kernel을 Fork(복사)하는 방법



다른 사람이 공개하는 커널도 포크 할 수 있습니다. 방법은 Kernel을 볼 때 오른쪽 상단에 나오는 Fork 버튼을 누르는 것입니다. 다음은 Titanic: Machine Learning from Disaster의 초보자용 해설 Kernel인 Titanic Data Science Solutions을 Fork하여 실행해 보겠습니다.



커널 조작



Jupyter Notebook과 마찬가지로 셀을 선택하고 재생 버튼을 누르거나 Shift+Enter를 눌러 프로그램을 실행할 수 있습니다. 주의점과 내가 이해하고 있는 조작의 방법을 기재해 둡니다.

주의점



・DataFrame.to_csv()등으로 파일을 하는 경우에는 이하의 ⑤Commit 버튼으로 프로그램을 실행할 필요가 있어 ①∼③의 버튼에서는 파일이 작성되지 않는다.
·Kernel을 Fork했을 경우에는, input file 의 path가 다르거나, scikit-learn의 모듈명이 변경되어 에러가 나오는 경우가 많다.

조작 방법



①선택한 셀 실행(Shift+Enter에서도 동일)
②①과 같이 선택하고 있는 셀의 실행, 이 버튼은 실행시에는 정지 버튼이 된다.
③페이지의 맨 위에서 아래까지 모두 실행된다(실행 전에 초기화는 되지 않는다)
④Kernel의 초기화. 모든 개체가 삭제됩니다.
⑤ Commit 버튼. Kernel의 모든 프로그램이 실행되고 파일도 작성된다.
⑥Kernel 다운로드 및 업로드. 다운로드한 Kernel은 Jupyter Notebook에서 실행할 수 있다.
⑦ 파일 추가. 학습된 신경망의 가중치 등을 업로드하면 Kernel에서 사용 가능
⑧GPU의 ON/OFF 버튼. GPU를 ON으로 하면 사용할 수 있는 RAM이나 Disk 용량이 조금 작아지고, 커스텀 패키지도 사용할 수 있게 되지만 Keras+Tensorflow로 신경망의 가중치를 학습한다면 ON으로 하는 것이 단연 빠르다.
⑨Kernel의 제목. 여기서 타이틀을 편집할 수 있다.



Kernel에서 직접 submit하는 방법



Titanic Data Science Solutions 은 Fork 했을 경우는, 그대로 Commit 하면 submission 파일이 작성되지 않기 때문에, 「submission.to_csv('submission.csv', index=False)」를 추가하고 나서 summit 해 주세요.
submission = pd.DataFrame({
        "PassengerId": test_df["PassengerId"],
        "Survived": Y_pred
    })

#submission.to_csv('../output/submission.csv', index=False)
submission.to_csv('submission.csv', index=False)

Submission이 끝난 Kernel을 열고 Output, 예측 결과(이 경우는 submission.csv)의 선택, Submit to Competition을 누르면 Kernel 위에서 직접 Submit할 수 있습니다.


결론



본격적으로 Kaggle의 대회에 참가하게 되면 RAM이나 Disk의 용량이 부족해진다고는 생각합니다만. 초보자 중에는 Kaggle 사이트에서 Kernel을 실행하면서 공부해 나가는 것이 좋지 않을까 생각합니다.
덧붙여서, NVIDIA Tesla K80은 아마존에서 가격을 보면 약 14만엔으로, Keras+Tensorflow로 컨벌루션 뉴럴 네트워크의 학습을 GPU ON/OFF로 시험해 보았습니다만, 10배 정도의 속도차이가 있었습니다.

좋은 웹페이지 즐겨찾기