2019년 5월 18일 토요일

구글 코랩(Colab)으로 쉽게 딥러닝 해 보기

딥러닝할때 많은 사람들이 환경 설정으로 애를 먹는다(환경 설정이 50%). 딥러닝 환경을 구축은 여러가지 방법이 있다.

1. 우분투 기반
2. 아나콘다 기반
3. 도커 이미지 기반
4. 아마존 웹 서비스 기반 (링크 참고)

물론, 아래로 갈수록 설치할 필요가 없고 쉬워진다. 다만, 정해진 용량 이상 사용하면 과금이 발생한다. 물론, 직접 딥러닝 서버와 데이터센터를 구축하고 싶은 사람들은 1, 2 옵션을 좋아할 것이다.

본인이 진행한 핸즈온은 도커로 미리 준비된 keras-full 로 진행한 것이었는 데, 회사 공식 컴퓨터 실임에도 불구하고 사내 방화벽, 열악한 인터넷 환경이 문제를 일으켰다. 도커부터 이미지 설치까지 미리 공지했었으나, 열정만 갖고 오신 분들도 계셔서 직접 체험하지 못한 분들이 있었다(이분들에게 본의아니게 시켜 좌절 경험시켜 드려 마음 한켠 짐이 생겨 버림. 이런 말도 안되는 환경에서 설치한다는 것은 네트워크 전문가 십만명이 와도 불가능한 것이다).

잠깐 머리에 스쳐간 4번 카드는 제일 편하지만, 개인적으로 AWS 옵션이 켜져 몇 달동안 계속 돌아가는 바람에 계정에 락이 걸려 버렸다(아마존 나쁘다).

그래서, 구글신에게 물어보기로 함.

공짜로 딥러닝 라이브러리 설치 않하고 사용할 수 있는 방법은 없나요?

구글신이 말씀하시길 코랩이 공짜고 AWS보다 좋다 하여, 당장 시작해보았다.

코랩은 colaboratory의 약자로 구글에서 제공하는 클라우드 기반 개발 도구이다. 쥬피터 노트북과 매우 비슷하다. 아래 링크를 클릭하면 바로 경험해 볼 수 있다.


여기서 나타나는 창의 메뉴 중 새 PYTHON 3 노트 메뉴를 클릭해 소스파일을 하나 생성해 본다.

모든 라이브러리가 설치되어 있지 않겠지 싶어, 그리 기대하지 않고 LSTM 코드(링크) 입력하고 돌렸음. 너무 과했나 싶었는 데, 어~ 잘 돌아가네.
아무 문제 없이 돌아간 LSTM

구글 드라이브와 연동되는 코랩

게다가 구글 드라이브와 연동되어 소스코드도 자동 저장해 준다. 클라우드 서버 랩 12기가, 디스크 50기가도 공짜다 (감동의 물결 T.T~).

물론, 이 공간도 다 차면 AWS처럼 돈 달라 하겠지만, 일단 딥러닝 핸즈온 강의할 때 환경 설정 개고생 안해도 된다. 참고로, 코랩은 미리 만들어 놓은 개발 튜토리얼과 영상을 제공한다(정말 인자하시다).

여기서 제공하는 튜토링얼 중에 CNN 모델 기본 예제인 MNIST 를 실행해 보았다(링크). 아래와 같이 98.5%의 정확도로 학습된다.
이 모델에서 잘 못 예측한 사례를 보면 다음과 같다(사람도 헤깔리는 글씨체).

오픈된 이미지 데이터인 CIFAR10으로 테스트해보았다.

CNN모델은 Google에서 제공해 주는 것을 활용했다(여기 클릭). 큰 문제 없이 학습이 된다.

데이터셋 각 세대별 CNN 모델 훈련 모습

VGG 모델도 실행해 보자(여기 링크). 이 링크 예제를 실행하기 전에 COLAB 클라우드 저장소에 아래 코드로 door1.jpg 이름의 3차원 건축 모델을 업로드해야 한다.
from google.colab import files
uploaded = files.upload()
코드를 COLAB으로 붙여넣기하고, 실행하면 다음과 같이 건축 객체를 인식하는 것을 확인할 수 있다.

참고로, 이 예제를 실행할 때, 미리 딥러닝 환경과 패키지를 설치하는 개노다가는 전혀 하지 않았다.

사람이란 간사하다. 얼마전까지 내 PC에서 딥러닝 환경 만들어야 그것들(G사, A사 포함)에 종속되지 않는다고 떠들어 댔건만.. 구글신 고마워요.

참고 - 아마존 클라우드 EC2 Deep Learning Instance 사용하기
아마존 클라우드에서 Deep Learning 사용은 매우 쉽다. AWS 콘솔에 로긴한 후 EC2 클라우드 서비스를 실행하고, 미리 만들어 놓은 Deep Learning 이미지 인스턴스를 실행하면 된다. 인스턴스는 도커 같은 컨테이너에서 실행된다. 이미지는 기본적으로 keras, tensorflow 등 많이 사용되는 패키지를 설치해 놓았으며, NVIDIA, CUDA등 설치가 번거로운 드라이버들을 미리 설정해 놓았기 때문에 그냥 사용만 하면 된다. 보안 등 기본적인 서버 관리는 아마존이 해 준다.
다만, 인스턴스 리소스(네트워크, CPU사용시간, 저장소 사용용량 등)에 따라 기본용량을 넘거가면 과금된다.

자세한 내용은 AWS Deep Learning Instance 사용 링크를 참고하길 바란다.

레퍼런스
  1. 강태욱, 2017, 텐서플로우 MNIST 딥러닝 및 텐서보드 그래프 가시화
  2. 강태욱, 2018, 케라스 기반 이미지 인식 딥러닝 모델 구현
  3. Sebastian Norena, 2018, How to get Images from ImageNet with Python in Google Colaboratory
  4. Google, MNIST handwritten digits classification with CNNs
  5. Google, Cifar10 Keras with Colab
  6. Ricardo's Place, 2019, Direct access to your webcam and microphone inside Google Colab notebook
  7. DLology, 2018, How to run Object Detection and Segmentation on a Video Fast for Free
  8. Chibuk, Tutorial to Build a Convolutional Neural Network for Images with keras+google drive and google colaboratory (exploring Google's colab tool)
  9. Google Colab (Jupyter) notebook to retrain Object Detection Tensorflow model with custom dataset.
  10. Object Detection in Google Colab with Custom Dataset
  11. Train a model in tf.keras with Colab, and run it in the browser with TensorFlow.js
  12. Mask R-CNN with OpenCV
  13. Autonomous driving - Car detection
  14. CNN Part 1: Understanding the working of Convolutional Neural Network





댓글 없음:

댓글 쓰기