__________________________________________________________________________________________________________________________Commercial
파이선 코딩을 배우는 초보자도 머신 러닝에 한번 도전해 보자. 머신 러닝을 배우려는 초보자들이 가지게
될 의문점들을 쪽집게로 찾아내어 실제 내용과 결과를 확인해볼 수 있도록 완전히 뒷문으로 들어가
시작하는 머신 러닝! 우선 아래 url 을 방문하여 url 로 구성된 본 서의 목차 파일을 무료로 다운로드 받아
펼쳐서 살펴보시기 바랍니다. 파이선 코딩 초보자를 위한 톈서플로우∙OpenCV 머신러닝 머리말과 url
목차 파일 다운로드
https://steemit.com/kr/@codingart/pryx1-opencv
450페이지 19900원 교모문고 퍼플에서 도서주문판매로만 판매중입니다.
_____________________________________________________________________________________________________
PyTorch
하면 Facebook 에 인공지능 또는 머신 러닝 분야 기술고문으로 MNIST 머신 러닝으로 큰 업적을 남긴 LeCUN이 이끌고 있다는 사실을 잘 알고 있을 것이다. 아울러 이들이 발표한 PyTorch에 대해서도 잘 알고 있을 것이다. 아니 TensorFlow 도 잘 돌아가는데 또 PyTorch 로 뻘 짓 하는 것 아닌가 의아해 하는 분도 계실 것이다. 필자도 약간 그런 의구심을 가지고 있는 것이 사실이다.
TensorFlow를 사용하여 그렇게 MNIST 라는 주제로 연구의 대미를 장식할 정도로 했으면 되었지 또 새로운 머신 러닝 언어 PyTorch는 뭐하는 뻘 짓인가? 하긴 그 정도 MNIST를 대상으로 CNN 까지 완성할 정도로 했는데 그러고 더 이상 아무것도 안하고 있다면 그것은 전혀 LeCUN 답지 않아 보인다. 즉 MNIST를 넘어 새로운 뻘 짓에 도전해야 LeCUN 다워 보이는 듯하다.
이놈의 PyTorch는 아니콘다에서 TensorFlow 와 바인딩 되면 안되므로 별도의 쥬피터 노트북을 설치해야 한다. 이미 몇 달 전 겨울에 PyTorch 개미와 벌 예제를 건드려 보았으나 쥬피터 노트북에서 한번 실행 시키는데 30분 이상 걸려 애초에 질려 버렸다.
그런데 이번에 구글 Colabo 의 GPU 가 무료라는 얘기를 듣고 귀가 번쩍 뜨였다. 그놈의 PyTorch 예제인 개미와 벌을 다시 건들여 볼까? 그런데 문제가 Colabo 의 정체를 제대로 모르니 만약 된다고 해도 한 달 이상 걸릴 것이라고 예상이 되었으며 아울러 실패할지도 모른다는 생각도 들었다.
특히 이 주제에 대한 관심은 크기가 방대하다고 알려진 ImageNet 머신 러닝을 다뤄는 봐야겠는데 내가 사용하는 삼성컴퓨터로는 한숨만 나올 정도 수준이란 것을 잘 안다. 네트워크 여기 저기 뒤져 보면 Transfer Learning(전이 학습1) 예제랍시고 몇 개가 튀어 나오는데 해보면 잘 되질 않는다는 사실이다. 낭비한 시간 모아보면 제법 될 것이다. 그래도 지난 겨울에 막걸리 파티 가기 전에 쥬피터 노트북으로 한 번 돌려 보았는데 순수 실행 시간만 40분 정도 걸렸던 것으로 끔찍한 기억이 난다.
아시다시피 Colabo 자료라고 찾아 봐야 거의 쓰레기 수준의 자료뿐 건질 것이 전혀 없는 상태에서 주말을 보냈다. 이때에 부딪혔던 가장 큰 문제는 도대체 몇 개의 library를 설치해야 되는가 하는 문제와 굉장히 낮선 디렉토리 구조인 듯하다.
라이브러리 설치 문제는 해결은 다 되었지만 아직도 미스테리로 남아 있다. 아나콘다 설치 시에 바인딩 문제로 인해 가상환경을 설정하고 여기에다 Python3, TensorFlow, Pandas, NumPy, Matplotlib, Keras, pyqt5, spider를 기본적으로 설치해야 한다. 그런데 Colabo 사용한지 3일째지만 pip install ∙∙∙ 로 얘네들을 설치한 기억은 없다. 그런데 괘씸한 구글 이놈이 내가 주로 사용하는 라이브러리 종류들이 무엇인지 정확히 다 알고 있는 듯하다. 항상 하는 검색 작업이지만 검색하다가 유튜브에 들어가면 언제 알았는지 검색 주제 관련 영상들이 자주 뜨는 것을 목격했는데 여기서도 그런 데자뷰가 있는 듯하다. 나쁠 것은 없는 듯하다.
한편 PyTorch 예제를 실행시키려면 코드와 아울러 데이터 폴더가 준비되어야 하는데 Colabo 이놈 구조가 어떻게 생겨먹었는지 당체 알 수 가 없다. 이러한 상황에서 이어지는 작업들이 수행되었으며 기쁘게도 한 방에 성공적인 소기의 성과를 거둘 수 있었다.
바탕화면 사용자 폴더에 위치하고 있는 data 폴더는 PyTorch Transfer Learning 예제에서 사용하는 데이터를 포함하고 있다. PyTorch Tutorial 사이트에 가면 here 라고 되어 있는 부분에서 ZIP 파일을 다운로드 받을 수 있다.
이 데이티 파일을 비롯한 폴더들을 다음과 같이 쥬피터 노트북을 열어 data 폴더를 관찰해 보자. 왜냐하면 Colabo 사용 3일째 되는 날이기에 아무래도 Colabo 가 쥬피터 노트북과 짝퉁이지 않나 하는 생각이 들었기 때문이다.
한편 쥬피터 노트북 내에서 ls 명령에 의해 폴더 구조를 살펴보자.
그렇다면 문제는 쥬피터 노트북이나 아나콘다 스파이더에서 사용하던 파이선 코드들을 Colabo에 가져다 사용하려면 Colabo가 요구하는 데이터 경로를 정확하게 설정해 주어야 할 것이다. 물론 Colabo 는 쥬피터 노트북과 아주 비슷한 구조로 보이지마는 NDRIVE 속에서 작동하는 시스템이므로 폴더 구조가 사용자 PC 디렉토리 구조와는 상관이 없는 가상환경인 듯하다.
따라서 사용자가 업로드 기능을 사용하여 폴더 구조를 채워 나가야 할 것이다.
아래와 같이 ls 명령과 cd.. 명령을 사용하여 /폴더까지 조사해 보도록 하자.
sample_data 에 들어있는 파일들은 필자가 가져다 두지 않았는데 Colabo 설치 시에 묻어 온 파일들인 듯하다.
업로드 기능을 사용하여 윈도우즈 파일 탐색기로부터 필요한 파일을 업로드 해 보자. 여기서는 hymenoptera_data.zip 이 그 대상이다.
Colabo에서 unzip 명령이 안 먹힘으로 파이선 명령으로 압축을 풀도록 한다. 압축을 풀고 나면 왼쪽의 폴더 구조에서 압축이 해제되어 hymenoptera_data 폴더가 생성되어 있음을 알 수 있다. 마지막으로 디렉토리 구조를 리스팅 해보면 content 밑에 hymenoptera_data 폴더가 들어 있음을 확인할 수 있다.
그러면 PyTorch 예제를 실행할 준비가 거의 다 된 듯하다. 셀별로 예제를 복사해다 붙여 실행하기 전에 반드시 GPU를 세팅해 두도록 한다.
이어서 두 번째 셀에서 데이터 transfoem 작업을 준비하는데 이때에 준비해둔 데이터 폴더를 위 그림에서처럼 정확하게 지정해 주어야 한다. 즉 ‘data/∙∙∙’ 대신에 ‘/content/∙∙∙’로 수정한다. ‘/content’ 가 default 로 Colabo 에 들어 있는 듯하다.
그 나머지를 복사해다 붙인 후 실행하면 결과를 볼 수 있다. GPU 컴퓨팅의 백미가 25회에 달하는 epoch 처리과정이 있는데 거의 수 초 만에 한 번씩 처리됨을 목격할 수 있다. 복사과정을 제외하면 수 분만에 개미와 벌 판정 결과를 볼 수 있다.
코드 실행은 가능하지만 Transfer Learning 알고리듬에 관해서는 앞으로 검토가 있을 예정이다.
'머신러닝' 카테고리의 다른 글
PCA처리한 Wine 데이터 Logistic Regression 및 정밀도 (0) | 2019.06.10 |
---|---|
Wine 데이터와 PCA(Principal Component Analysis) 처리 (0) | 2019.06.09 |
MNIST Deep Learning GPU vs CPU 머신러닝 컴퓨팅 시간 비교 (0) | 2019.06.02 |
Anaconda3 PyTorch CIFAR-10 이미지 인식 Jupyter Notebook 예제 (0) | 2019.06.02 |
5G 시대의 개막: 구글 Colaboratory에 의한 GPU 머신 러닝 (0) | 2019.06.01 |