Colaboratory에서 10초로 시작할 수 있는 Chainer의 GitHub 리포지토리를 만들어 보았다.

TL;DR



  • Google 드라이브에 Colaboratory에서 즉시 실행할 수있는 Chainer 핸즈온을 준비했습니다.
  • GitHub의 리포지토리 chainer-community/chainer-colab-notebook에서 버전을 관리하고 master에 병합되면 travis가 자동으로 Google 드라이브에 반영됩니다 (@ 이케야스 님이 해 주셨습니다!).
  • Contribution Welcome ;)

  • 공동체란?


  • Google에서 만든 기계 학습 도구.
  • Jupyter Notebook을 웹 서비스화한 것과 같은 것.
  • Google 드라이브에 저장할 수 있으며 다른 데이터와 마찬가지로 공유할 수 있습니다.
  • 물론 무료인데, 최근에는 GPU까지 잡을 수 있도록.

  • 자세한 정보는 이 기사 등이 상세합니다.
    【초속으로 무료 GPU 사용】 심층 학습 실천 Tips on Colaboratory

    Colaboratory에서 Chainer를 이동하려면



  • kmaehashi/chainer-colab
    !apt -y install libcusparse8.0 libnvrtc8.0 libnvtoolsext1
    !ln -snf /usr/lib/x86_64-linux-gnu/libnvrtc-builtins.so.8.0 /usr/lib/x86_64-linux-gnu/libnvrtc-builtins.so
    !pip install 'cupy-cuda80==4.0.0b4' 'chainer==4.0.0b4'
    

    참고로, chainer-jp라는 Slack이 있습니다만, 거기서 아래와 같이 부탁하면 @ k Haehashi씨가 하루에 만들어 주었습니다. 여러분도 Chainer로 곤란하면 물어 보면 좋을지도!


    Chainer의 핸즈온을 Colaboratory에서 만들어 보았다


  • 우선, 기존의 핸즈온이나 튜토리얼을 Colaboratory에서 움직이도록 변경해, Google 드라이브 에 모았습니다.
  • 작업 내용은 다음과 같이 매우 간단했습니다.
  • Jupyter Notebook 가져오기

  • kmaehashi/chainer-colab을 사용하여 GPU 지원
  • 가동 시간, 데이터 배치 등을 고려하여 미세 수정


  • Colaboratory에서 움직이게 된 것은 좋지만 ...



    위에서 언급했듯이 Colaboratory 용 핸즈온을 쉽게 준비 할 수 있었지만 몇 가지 문제가 발생했습니다.
  • 버전 관리 등의 메인터넌스를 어떻게 하면 좋은 것일까? GitHub 같은 느낌으로 PR라든지 보내 주도록 하고 싶지만, 관리가 Google Drive라고 그렇게 할 수 없을 것 같다.
  • GitHub로 관리하려고 해도, Google Drive로부터 download한 ipynb 형식의 파일로부터 개행이 사라지고 있어, 매우는 아니지만 버전 관리할 수 있는 파일 형식이 아니다.

  • 과제 1: 버전 관리를 어떻게 할 것인가



    Colaboratory는 Google Drive에서 ipynb 형식의 파일을 열기 때문에 약간의 파이썬 코드를 작성하거나 공유하는 것이 좋습니다. 다만, 버전 관리, 특히 복수인으로 변경을 더해, 적절하게 리뷰 병합을 반복하는 복잡한 버전 관리를 하려고 하면 어려울 것입니다. 그래서 GitHub에 리포지토리 chainer-community/chainer-colab-notebook을 만들고 관리하기로 결정했습니다.

    문제 2: Google 드라이브에서 다운로드한 ipynb 형식의 파일에서 줄바꿈이 사라짐



    Google Drive상의 ipynb 형식의 파일을 Download하면 아래와 같이 개행이 사라져 버립니다.


    다만, 이 문제의 해결은 간단하고 아래와 같이 Colaboratory에서 열어, 「.ipynb 다운로드」를 사용하면 괜찮았습니다.


    결국 어떻게 되었습니까?


  • 여러가지 과제는 있었지만, 버전 관리도 하고 싶고, Contiribution도 자유롭게 하고 싶기 때문에, GitHub로 내용을 관리하도록.
  • 게다가 @ 이케야스 님의 PR

  • 마지막으로


  • 모처럼 이러한 구조를 만들었으므로, 자랑의 핸즈온 튜토리얼이 있으면 PR를 보내 주실 수 있으면(자) 생각하고 있습니다!
  • chainer-jp의 Slack에 #colaboratory라는 채널이 있으므로, 흥미가 있는 분은 참가해 주시면 고맙습니다.
  • 좋은 웹페이지 즐겨찾기