Q) AzureML에서 Tensorflow를 연동하는 방법을 아시는 분이 계신가요-제가 아는 범위에선 Theano 연동하는 정도만이네요 ㅠㅠ
A) 답변입니다.
안녕하세요. Data Platform MVP 인 김훈동입니다. 네 Azure 상에서
Tensorflow 를 쓰는 몇가지 방법이 있습니다. 질문에서 AzureML 이라고 언급 주셨는데, Azure ML Studio 등에서의
사용이 아닌 Azure 상에서의 Tensorflow 구동
이라고 질문을 이해했습니다. Azure ML Studio 에서는
Tensorflow 를 Azure 에 구축한 별도
Instance 에 원격 실행 컴멘드를 날려서 Training 을 시키고, Tensorflow의 Serving Layer 를 이용하여, Input 에 대한 Output 을 Restful 하게 받아 Azure ML Studio 에서 연동하는 방법이 있을 것입니다.
아래부터는 Azure 에 Tensorflow Cluster(GPU 포함)를 구축하는
방법론입니다.
(1)
가장쉽게
A.
Azure Instance Gallery 에서
Deep Learning Toolkit for DSVM 이미지 VM을
사용하는 방법
i.
OS 가
Windows 2012 RC2 입니다.
ii.
GPU 사용이 가능합니다.(Region을 east US 등으로 하면 N-Series가 보입니다.)
iii.
CNTK, Keras, Tensorflow, mxnet 가
모두 기본 세팅되어 있고, MS R, Jupyter Notebook, Python Anaconda등이
설치되어 있으며, Visual Studio 의 Data Science
툴들과 Spyder IDE 등이 세팅되어 있고, 요즘
도전적인 Data Scientist 들에게 Hot한 Julia Lang 개발환경까지 세팅되어 있습니다.
iv.
Jupyter Notebook 을 열면 Tensorflow, CNTK 등의 Example 이 담긴 Notebook 들이 폴더 별로 정리되어 구동됩니다.
v.
Ubuntu 에서 쓰시다가 Windows 위에서 사용하는 경우 호환문제를 걱정하시는 분들이 간혹 계시는데,
UTF8 한글 부분과 일부 Old 스타일 CSV 핸들링
패키지를 제외하고, 문제가 되는 경우는 별로 없습니다.
(2)
Ubuntu 가 편하다면
A.
Ubuntu Instance 에 기본 Tensorflow 가 세팅된 인스턴스는 아직 존재하지 않는 것으로 보입니다. 제가
하나 만들어서 올릴까봐요. ^^
B.
하지만, Tensorflow 설치가 그리 어렵지
않으므로, Ubuntu VM 에 직접 설치하셔도 됩니다.
C.
동남아시아나 eastUS 등에 가셔서 N-Series 를 선택하시면, GPU Ubuntu VM 을 만드실
수 있습니다. 여기서 주의할점은 이상하게 Ubuntu VM은
디스크 Type 을 SDD가 아닌 HDD 를 선택해야 N-Series 가 보인다는 점 입니다. 그런데, 최종 만들어진
Information 을 보면 SSD 가 포함되어 있습니다.
(3)
Windows10 Instance 에 설치하여
사용하는 방법.
A.
Tensorflow 1.X 가 정식으로 릴리즈
되면서, Windows 10 에도 꽤 쉽게 설치가 가능합니다.
B.
단, 현재
Windows 는 64비트만 지원합니다.
C.
Anaconda 64비트 설치 후 설치하면 더
쉽습니다.
D.
특히 CUDA 나 cuDNN 은 Windows 가 Linux보다
훨씬 설치가 간단합니다.
i.
CUDA 와
cuDNN 설치 후 내컴퓨터->우클릭->속성->환경변수 가서 path 만 잡아 주면 끝…
E.
Pip 로
GPU 버전 설치할 때, 2월
말까지만 해도, whl 파일 경로가 win_x86_64.whl 요런식으로
되어 있었고, 해당 파일은 오류가 있었는데, 현재 win_amd64.whl 로 바뀌어 있구요. 그 파일이 원래 Windows 에서 오류없이 깔리는 것으로 Blog 등에서 공유되었던
파일입니다. 현재는 공식 install guide 문서가
수정되어 있습니다. (최근에 수정되었네요…2017년 3월 현재.)
(4)
Docker 사용방법
A.
영재MVP님께서 말씀해 주신 것 처럼 Docker를 이용할 수도 있습니다. Docker 가 VM보다 유리한 점들이 분명 있죠. 장단점이 있는 것 같습니다.
(5)
좀더 고급스럽게 사용하는 방법
A.
요즘 제가 열심히 실험하고 있는 방법입니다. 실무
시나리오 사용성 검증이 끝나면 블로그 하고 공유 드리도록 하겠습니다.
B.
HDInsight 와 Spark Cluster 가 필요합니다.
i.
HDinsight 에 Spark Cluster 가 기 세팅되어 있는 Instance 를
구동합니다.
ii.
추가로 Tensorflow 와 Keras 를 설치합니다.
iii.
오픈소스인 elephas 를 설치합니다.
iv.
실험해보고 있는데요. 위 조합에서는 Tensorflow 와 Spark 의 강점을 조합할 수 있고, 추가로, Tensorflow Model에 대하여 아래와 같은 것들이
가능합니다.
답이 잘 되었으면 좋겠네요. ^^