텐서플로우를 사용하기 전에 일단 실습 환경부터 구축해보겠습니다. 텐서플로우는 기본적으로 오픈소스이기 때문에 무료로 사용할 수 있지만, 텐서플로우를 돌리는 하드웨어 자원은 무료가 아닙니다. 오프라인으로 돌린다면 pc 사양이 어느 정도는 되어야 할테고, 온라인으로 굴린다면 제한적인 자원을 무료로 사용하거나 비용을 추가해서 서버 자원 사용에 대한 비용을 지불하고 사용할 수 있습니다.
1. Anaconda 설치하기
Anaconda는 데이터 분석을 위한 툴들이 내장되어있는 패키지인데, 텐서플로우를 설치할 수 있는 가장 널리 알려진 방법입니다. 저는 개인적으로 아나콘다 윈도우 버전을 설치했다가 여러번 데였던 경험이 있습니다. 진짜 며칠동안 이거 설치하느라고 끙끙대다 포기했습니다. 그런데 어느날 OS 재설치하고 생각나서 설치해뒀는데 생각보다 잘 돼서 그냥 설치는 해놨습니다. 일단 이걸로 설치를 시도해보고 안되면 빠르게 아래 서술할 다른 방법을 찾는 걸 추천합니다. 아무리 설치가 잘 되는 사람이 많아도 안되는 사람은 분명 있을테고 그게 또 하필 나라면 굉장히 화가 날테니까요.
2. Ubuntu 가상머신을 돌려서 Anaconda 설치하기
Windows를 쓰다가 리눅스를 접하려면 되게 낯설겠지만 이런 프로그램들은 리눅스를 기준으로 하는 경우가 많기때문에 오류가 안나니 편안 합니다 그렇지만 Ubuntu 가상머신을 돌리는 건 PC 자원을 훨씬 더 낭비하는 거기 때문에 좋은 선택일지는 잘 모르겠습니다. 저는 Ubuntu 환경에서 Docker를 사용하기 위해 가상머신을 돌리긴 했습니다.
3. Docker 사용하기
edwith의 <Tensorflow를 활용한 딥러닝 기초>에서는 도커 이미지를 실습환경으로 제공합니다. 이 강의를 들으시려는 분들은 그냥 도커 이미지 만들고 git fork만해주면 편하게 공부하실수 있기때문에 괜찮은 선택지로 보입니다.
윈도우 native환경에서는 크게 Docker toolbox, Docker Windows 두 가지 방법으로 Docker를 사용할 수 있습니다.
Docker toolbox - Virtualbox기반으로 보이며, 이제 더이상 지원 안합니다. 다운로드가 가능하긴한데 링크찾기 어렵습니다. 게다가 이제 관련 문서가 많이 안 남아있어서 도움받을 자료가 별로 없습니다.
Docker Windows - 윈도우에서 자체 제공하는 Hyper-V 서비스를 기반으로 합니다. 최소 메모리는 4GB를 권장하지만, 4GB 상태에서는 메모리부족으로 실행이 안됩니다. 이것도 이런저런 방법 찾다가 다 안되서 체념하고 8GB로 증설하니 그때서야 됐습니다. 혹시라도 4GB환경을 아직 쓰고있다면 램을 늘리는 것도 꽤 괜찮은 업그레이드같습니다. 병목현상 줄어들고 전반적인 컨디션이 좋아집니다. Docker Windows 의 가장 큰 문제는 Hyper-V 기반이기 때문에 VT-x와 동시에 사용할 수 없습니다. 다시말해 VirtualBox나 이를 기반으로 하는 앱플레이어 등을 사용할 수 없다는 뜻입니다.
4. Google Colab 사용하기
colab.research.google.com에 접속해서 사용할 수 있고, 구글드라이브와 연동되며, Jupyter Notebooks 기반인지라 가장 추천하고 싶은 방법입니다. 웹으로 굴러가는지라 pc사양에 의존하지 않습니다. 이게 중요합니다. 진짜 순수하게 웹 기반인지라 안드로이드에서도 문제 없이 잘 돌아갑니다..!(근데 왜 사지방에서는 안돌아갈까요...?) 안드로이드 태블릿으로도 텐서플로우를 굴릴 수 있다는 소리입니다. 거기에 좀 더 충격적인 것은 구글에서 제공하는 Tesla K80를 제한적이나마 사용할 수 있다는 겁니다. 거기다 구글 계정만 있으면 되니까 편리하기도 하구요.
5. Microsoft Notebooks Azure
notebooks.azure.com로 접속 가능하며 Google Colab와 비슷한 형태의 서비스인듯 합니다. 마찬가지로 Jupyter Notebooks를 사용할 수 있습니다. Microsoft Notebooks Azure가 제게 정말 매력적이었던 것은, 사지방에서도 별 이상없이 잘 접속이 된다는 데 있었습니다. 물론 조금은 더 알아가야 하는 단계지만 일단 현재까지 확인해본 결과 간단한 Regression까지는 크게 문제 없는데 신경망 학습에 들어가면 단순히 2-layer부터 시간이 꽤 걸리고 fashion MNIST 분류 모델 만들 때는 학습하는데 4분 가량 걸립니다.. 일단은 온라인으로 텐서플로우를 사용할 수 있다는 데 의의를 두겠습니다.
텐서플로우를 사용하는 몇 가지 방법을 알아봤는데, 각자 사용환경에 따라 최적의 방법을 찾아 학습 시작하는 게 좋은 것 같습니다. 제 경우는 Microsoft Notebooks Azure가 성능은 잘 모르겠는데 일단 사지방에서 무료로 사용할 수 있는 유일한 방법인지라 우선 사용중에 있습니다. PC의 성능이 어느정도 뒷받침 되어주고 Anaconda 설치에 어려움만 안겪는다면 눈 한번 딱 감고 설치해서 사용하는 게 추후 Tensorboard라든지를 사용할 때의 확장성을 고려한다면 최선의 방법이 되겠습니다.