컴퓨터 코딩을 다루다 보면 흔하게 접하는 용어로서 Front end 와 Back end 가 있다. 컴퓨터 코딩에서 Front end 란 코드를 작성 수정 빌드 업로딩 저장 및 라이브러리 설치를 지원하기 위한 편집 시스템을 뜻한다. 간단한 예로서는 아두이노 IDE를 들 수 있을 것이다. 마찬가지로 머신 러닝을 위한 코드 편집 작업을 위해서는 이미 잘 알려진 툴이 있다. 너무나 잘 알려진 아나콘다를 비롯하여 여러 가지 툴이 있을 수 있다. 특히 아나콘다에는 Spyder 편집기와 Jupyter Notebook 이 대표적이다. 반면에 Back end 는 일종의 Solver를 뜻한다. TensorFlow, Keras, PyTorch 와 같은 라이브러리들이 머신 러닝을 위해 Front end에 설치되는 대표적인 Back end 로서 머신 러닝 코드를 실행 시키는데 필수적으로 사용된다.
파이선 언어를 기반으로 하는 머신 러닝 편집 및 빌드 과정에서 다음과 같이 라이브러리 모듈을 불러들일 때
import tensorflow as tf
import torch
∙∙∙
이 Back end 라이브러리들이 설치되어 있지 많으면 항상 아래와 같은 에러 메시지를 받게 된다.
No module named ∙∙∙
사실 아주 간단한 에러 메시지이지만 파이선 머신 러닝을 처음 시작해 보려는 초보자가 이런 메시지를 받게 되면 좌절하게 되는 첫 번째 단계에 들어선 것이다. 사실 머신 러닝이 그다지 복잡한 이론이나 컴퓨터 코딩을 요하는 것은 아니지만 그래도 시작하려면 Front end 설치 과정에 관해서 세세히 알아야 할 필요가 있는 것이다. 필자도 이런 과정을 당연히 겪었고 그 결과 경험을 공유하기 위해 작업일지를 책으로 출간하기도 했다. 이 책의 1장이 아나콘다 스파이더와 쥬피터 노트북 설치이다. 머신 러닝을 깊게 연구해 볼 요량이라면 이 책의 첫 장을 겪어 보는 것이 지름길이라 할 것이다.
하지만 그 보다 더 준비가 안 된 초보자라면 지금 당장 코드를 돌려볼 수 있는 다른 대안이 없는 것은 아니다. 물론 초보자들에게 간단히 소개 드리지만 사실 그 대안은최근에 GPU 사용을 계기로 시작하게 된 Google NDRIVE에서 사용 가능한 Colab 편집 시스템이다. 사용해 보니 놀랍게도 Jupyter Notebook 과 아주 유사하였다.
국내에서는 이미 상당히 많은 안드로이드 폰 사용자가 있기 때문에 구글 이메일 및 크롬 계정은 다 있으리라 본다. 로그인해서 보면 아래와 같이 본인이 사용하는 앱들이 즐비하게 나타나 있다. 구글에 로그인 되어 있는 상태에서 구글의 NDRIVE 속으로 들어가 보자.
NDIRIVE 속은 잡다한 메뉴들이 잔뜩 들어 있는데 + 연결할 앱 더보기를 선택 클릭하자.
드라이브 앱 연결이 뜨는데 엄청 많으므로 검색을 이용하도록 하자. “colaboatory”를 입력 검색한다.
Colaboratory 앱 아이콘이 뜨면 연결 버튼을 누르자.
연결 버튼 누른 후 기본 앱 설정 요구가 나오면 예스로 통과 후 평가하기 창이 뜨는데 끈 후 다시 앞으로 돌아가서 Colaboratory가 메뉴에 등록되었는지 살펴보고 있으면 클릭해서 시작하자.
대박! 클라우드형 쥬피터 노트북 유사품이 뜨는데 바로 코딩해서 실행시키면 될 것 같다.
아나콘다에서 실행되던 코드를 하나 복사하여 아래와 같이 셀 하나에 집어넣고 수정해서 실행해 보자. 오늘 시작했더라도 단 1시간이면 여기까지 도달 가능하할 것이다.
한편 아나콘다에서는 텐서플로우와 PyTorch를 함께 불러 쓸 수 없지만 구글 Colab 에서는 그런 문제도 없어진 듯하다. 즉 torch에 이어 tensorflow를 불러도 아무런 문제가 없으며 NumPy 와 Matplotlib를 부를 수 있으면 웬만한 파이선 머신 러닝 코딩 작업은 무난하다. 그밖에 필요한 라이브러리가 있다면 그 라이브러리 이름을 import 하면 될 것이다.
첫번째 가장 간단한 예제로는 TensorFlow==1.15.0 버전을 사용한 MNIST 수기문자판독 예제로서 하나의 은닉층을 사용한 경우일 것이다.
현재 Colab 의 TensorFlow Default 버전은 2.9 를 넘어가고 있으므로 구 버전 사용을 위해서는 리눅스 명령
!pip install tensorflow==1.15.0 을 사용하여 현재의 2.9버전을 자동으로 uninstall 후 다시 설치할 필요가 있다.
구버전 TensorFlow 를 설치하여 MNIST 예제 문제를 다루어 보는 다음과 같은 이유들이 있음을 이해하자.
1. 사용법이 리눅스나 윈도우즈 상의 Jupyter 와 거의 동일하다.
2. 모든 컴퓨터 코드의 기본적인 구성은 보이지 않는 그래프(graph) 구조에 기반하므로 그래프 구조로 출발한
Tensorflow 1.15.0 버전을 사용해 볼 필요가 있다.
3. 하이퍼 파라메터 설정에 따라학습을 위한 컴퓨팅 부담이 커지는 경우 Colab 의 GPU 유형 설정을 통해 ~7배 정도의
연산 속도 향상을 기대 할 수 있다.
4. Tensor Board 지원으로 Cost 함수를 비롯한 내부 그래프 연산 결과를 가시화 해 볼 수 있다.
5. 최종적으로 최신 TensorFlow 버전으로 돌아가서 Keras에 의한 MNIST 처리 과정을 살펴보도롣 한다.
'머신러닝' 카테고리의 다른 글
NumPy 라이브러리에 의한 뉴럴 네트워크 코드의 머신 러닝 특성 (0) | 2019.06.28 |
---|---|
초보자를 위한 선형회귀법 예제 PyTorch 코딩 (0) | 2019.06.27 |
초보자를 위한 선형회귀문제 해설 (0) | 2019.06.26 |
초보자를 위한 Anaconda3 선형회귀문제 단순 파이선 코딩 연습문제 (0) | 2019.06.26 |
구글 Colabo에서 PyTorch CIFAR-10 이미지 머신 러닝 II (0) | 2019.06.23 |