기계 학습의 핸즈온 한다면 Google Colaboratory입니다!



소개


  • 요전날, 기계 학습의 핸즈 온을 했습니다.
  • 이전부터 느꼈던 것이, 핸즈온은 상당히 힘들다.
  • 프레젠테이션 시간은 먹고, 환경 구축이라든지 힘들고, 전제 지식이 필요하거나, 비엔지니어가 있거나 상당히 장애물이 높다.
  • 기계 학습이라면 더, 그 문턱은 높은 생각이 듭니다.
  • 그렇지만, 모처럼이니까 듣고 있는 분 모두에게 기계 학습을 체험해 주었으면 한다.
    그래서, 생각한 것이 공동체 로 하는 방법입니다!

  • 공동체란?


  • Google이 제공하는 브라우저에서 파이썬을 실행할 수있는 도구입니다!
  • python을 하고 있는 분은 알고, jupyter notebook와 매우 유사한 환경을 Google 계정을 가지고 있으면, 이용할 수 있습니다!

  • 공동체가 해소하는 것



    1. 환경 구축 불필요


  • 일반적으로 머신 러닝 할 때 파이썬을 설치하고 pip에서. . .
  • 비 엔지니어에게 CUI를 사용하거나 논외입니다.

  • Colaboratory라면 Google 계정을 가지고 있다면 스프레드시트를 여는 것처럼 사용할 수 있습니다!

    2. 파일 공유


  • 이미지나 모델 등 파일을 공유한다고 되었을 때에 엔지니어라면 Git에서 clone하면 됩니다만, Git 사용한 적 없다고 하는 분도 있을 것.
  • Colaboratory를 사용하면 Google Drive에서 파일 공유할 수 있습니다. 배달하기 쉬운.

  • 3. 익숙한 인터페이스


  • 처음 사용하는 툴이라면, 움직이는 방법이 흠. 라고 헤매고 굉장히 다른 조작이라든가 해 버리기 십상입니다만,
    Colaboratory라면 Google의 다른 서비스에 가깝기 때문에 안심!

  • 실제로 해봤어


  • 사진으로부터 얼굴을 판정하는 핸즈 온을 실시했습니다!

  • 폴더 구성


    マイドライブ
     ┗ ml_hands-on
       ┣ face_detect.py
      ┣ data
      ┃    ┗ sample.jpg
      ┗ cascade
         ┗ haarcascade_frontalface_alt.xml
    

    Google Colab이 알아야 할 사용법 – Google Colaboratory의 장점과 단점

    Google 인증


  • Google 드라이브에 있는 파일을 로드하려면 인증해야 합니다.
  • 파이썬이 아닌 쉘로 작성되었습니다.

  •  face_detect.ipynb
    !apt-get install -y -qq software-properties-common python-software-properties module-init-tools
    !add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
    !apt-get update -qq 2>&1 > /dev/null
    !apt-get -y install -qq google-drive-ocamlfuse fuse
    from google.colab import auth
    auth.authenticate_user()
    from oauth2client.client import GoogleCredentials
    creds = GoogleCredentials.get_application_default()
    import getpass
    !google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
    vcode = getpass.getpass()
    !echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}
    

    파일을 검색할 수 있는지 확인



    face_detect.ipynb
    !mkdir -p drive
    !google-drive-ocamlfuse drive
    !ls drive/ml_hands-on/data
    

    얼굴 인식 처리


  • 이번은, 본제가 아니기 때문에, 여기의 설명은 생략하겠습니다.

  • face_detect.ipynb
    import cv2
    import matplotlib.pyplot as plt
    %matplotlib inline
    
    ml_dir=''
    
    # cascadeファイルの取得元
    # 
     https://github.com/opencv/opencv/blob/master/data/haarcascades/haarcascade_frontalface_alt.xml
    
    cascade_file = "drive/ml_hands-on/cascade/haarcascade_frontalface_alt.xml"
    cascade = cv2.CascadeClassifier(cascade_file)
    
    img1 = cv2.imread("drive/ml_hands-on/data/sample.jpg")
    
    def detect_face(img):
    
      img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    
      face_list = cascade.detectMultiScale(img_gray, minSize=(150, 150))
    
      if len(face_list) == 0:
          print("失敗")
          quit()
    
      # 判定した結果、顔だった場合、
      for(x, y, w, h) in  face_list:
          print("顔の座標=", x, y, w, h)
          red = (0, 0, 255)      
          cv2.rectangle(img, (x, y), (x+w, y+h), red, thickness=4)
    
      plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
    
      plt.show()
    
    if __name__ == '__main__':
      detect_face(img1)
    

    도전



    파일 공유 방법


  • 1. 파일 공유
  • 2. 파일 다운로드
  • 3. 파일 업로드
  • 4. 파일 열기


  • google drive 사양. 공유한 파일을 복사할 수 없습니다.
  • 즉, 파일을 공유하면 동시 편집이 되어 버립니다.
  • 각각 움직이고 싶기 때문에, 제 경우에는 다운로드 받고 다시 업로드 받았습니다. (좋지 않아...)

  • 요약


  • 엔지니어도 비엔지니어도 비교적 간단하게 사용할 수 있어, 머지 않고 LT를 진행할 수 있었습니다!
  • 핸즈온 뿐만이 아니라, 약간의 데이터를 표시하거나 도해하는 것도 편리하므로, 사용해 보세요!
  • 참고로 엑셀 등으로 복사한 내용을 표시할 수도 있습니다.

  • read_clipboard.py
    import pandas as pd
    pd.read_clipboard(header=None)
    

    좋은 웹페이지 즐겨찾기