Tensorflow-gpu에서 GPU 안쓰고 돌리기

나는 두대의 컴퓨터가 있다.  한대는 2013년에 60만원을 주고 산, 오래된 데스크탑이고, 한대는 2017년에 산 150만원 대의 게이밍용 노트북이다. 게이밍용 노트북의 성능이 데톱보다는 훨씬 뛰어난 편이라 생각한다.   그런데 오늘 김성훈 교수님의 머신러닝 강의를 들으면서 Tensorflow를 돌렸더니 이게 웬걸 데톱이 게이밍 노트북보다 2배나 빠른 성능을 보이는 것이다.   무척이나 이상해서 여러번 시도해도 달라지지 않았다.  그 이유는 다름아닌, gpu를 사용 유무였다.  나는 gpu를 사용하는 것이 모든 조건에서 빠른 성능을 낼 줄로 예측을 했는데, 실제로는 테스트용 코드들은 gpu를 사용하지 않는 조건에서 더 빠른 연산을 할 수 있는 것으로 보인다.   데톱에는 그냥 tensorflow를 깔았고, 노트북에는 tensorflow-gpu를 깔았으니, 다시 돌리자니 시간이 아깝고, 앞으로 gpu를 필요로 할 텐데 굳이 그럴 필요있나 싶다. 이럴 때는 간단하게 gpu를 안쓰고 cpu 만으로 코드를 돌리도록 유도할 수 있다.  이런 식으로 session을 변형시켜주면 된다.  config = tf.ConfigProto( device_count = {'GPU': 0} ) sess = tf.Session(config=config) 출처: 준돌 블로그 이렇게 하면, tensorflow-gpu 환경에서도 쉽게 gpu를 제외하고 cpu 만으로 연산을 돌려 볼 수 있다. 

1. Anaconda를 이용하여 Tensorflow-gpu 작업환경 구축하기

이미지
Tensorflow-gpu의 작업환경을 구축해보자. Anaconda를 이용해서 환경을 구축하려고 한다. 추천하는 이유는 환경설정 등의 셋업이 간단하고 편리하기 때문이다.  1.  Anaconda 다운로드 링크  에 접속해서 사양에 맞는걸 다운로드하여 설치한다.  특별한 경우가 아니고서는 파이썬 3.x 버전으로 받는걸 추천한다. 설치과정은 그냥 따라가면 된다. 2. 설치가 끝나면, Tensorflow를 설치하기 위해 Anaconda3의 Anaconda Prompt로 들어간다. 3. conda install tensorflow-gpu 를 입력하고 proceed? 에서 y를 입력하면, 텐서플로우의 설치는 끝난다! 4. CUDA 8.0을 설치하기.  ** Tensorflow는 CUDA 8.0 (2018년 1월 9일 기준)만 지원하므로, 반드시 8.0을 깔아야한다. CUDA Toolkit 8.0 다운로드 링크 본인 사양에 맞는 걸 선택하여 설치한다. Base Installer만 설치해도 된다. 5. cuDNN을 다운로드 받는다. Deep Neural Network를 컴퓨팅을 지원하는 라이브러리를 다운로드 받는다. cuDNN 다운로드 링크 여기서 NVIDIA의 회원가입이 필요하다. 회원가입한다. 알집 파일을 다운로드 받는데, 알집 내부의 파일들을 모두 복사하여, 설치 폴더에 덮어쓴다. 6. 확인하기.  텐서플로우 코드를 구해서 돌려본다.  추천하기로는  김성훈 홍콩과기대 교수의 텐서플로우 튜토리얼 파일 을 구해서 돌려보면 확실할 거이다. github의 사용법은 잘 찾아보시길.

Tensorflow-gpu는 CUDA 8.0만 지원한다.

Tensorflow-gpu 까지 설치하고 이런 에러가 떴다.   이런 경우는 버전에 맞지않는 cuda 를 설치해 그런 것이다 . 나의 경우에는 최신버전에 제일 좋겠지 하면서 , CUDA 9.1 을 설치해서 에러를 만났다 . 주의해야 할 점은 Tensorflow-gpu 는 CUDA 8.0 만 지원한다는 점이다 . 따라서 이런 에러를 만나면 CUDA8.0으로 다시 깔자 < 에러메시지 전문 > runfile('C:/Users/user/Anaconda3/lib/site-packages/tensorflow/python/pywrap_tensorflow_internal.py', wdir='C:/Users/user/Anaconda3/lib/site-packages/tensorflow/python') Traceback (most recent call last):   File "<ipython-input-12-f12d08712632>", line 1, in <module>     runfile('C:/Users/user/Anaconda3/lib/site-packages/tensorflow/python/pywrap_tensorflow_internal.py', wdir='C:/Users/user/Anaconda3/lib/site-packages/tensorflow/python')   File "C:\Users\user\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 710, in runfile     execfile(filename, namespace)   File "C:\Users\user\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", li...

HTML 태그 레퍼런스들

HTML 문서를 작성할 때, 자주 사용하는 것들은 기억하고 있겠지만, 그 외 다양한 것들은 까먹을 것이라 생각한다. 그 때마다 찾아볼 수 있는 HTML 명령어 레퍼런스를 적어둔다. w3c의 표준 레퍼런스  : 그냥 진짜 표준 레퍼런스이다. 영어자료이며, 딱딱한게 흠이라면 흠이다. 생활코딩 리체님의 자료   :  솔직히 이 자료가 나중에 참고하기 딱좋은 레퍼런스라 생각한다. 친절한 한글자료이다. 

Matlab의 배열곱셈(.*)와 행렬 곱셈(*)의 차이점

다양한 매트랩 연산자 들이 존재한다. 그 중에 특별히 헷갈리는 것은 배열 곱과 행렬 곱의 차이이다.   배열 곱은 .*으로 표시된다. 이는 일반적으로 행렬연산에서 실수를 나누어 곱하거나 나누어 줄 때 많이 쓴다.  실제적인 의미는 기존 행렬의 구조를 바꾸지 않으면서 해당 요소마다 곱하거나 나누어 주라는 의미이다.  행렬 곱은 *으로 표시된다. 이는 행렬간의 곱을 하고자 할 때 많이 사용하게 된다. 일반적으로 우리가 고등학교에서 배우는 행렬간의 곱셈 연산이라고 생각하면 된다. 

블로그 추천: 케라스, 그 간결함에 빠지다.

블로그 추천:  케라스, 그 간결함에 빠지다. 친절한 케라스 강좌를 원한다면 추천하는 블로그! 저는 딥러닝과 머신러닝을 가스분석분야에 적용하고자 여러가지 머신러닝 및 딥러닝 툴을 둘러보는 중입니다. 최근에 둘러본 여러가지 툴들에 대한 저의 생각을 소개하자면, GNU Octave(or Matlab) : Coursera의 Stanford 강의인 Andrew Ng 교수의 Machine Learning 코스를 최근에 수강 중이라 자연스럽게 Octave를 사용하게 되었습니다. Andrew Ng 교수님의 지도경험상 Octave나 Matlab을 이용하는 것이 머신러닝 학습에 가장 효율적이었다고 합니다. Python: Python에는 정말로 다양한 머신러닝 혹은 딥러닝 툴들이 존재합니다. 대표적인 것으로 구글에서 개발한 TensorFlow가 있고, 가장 흔히 사용되는 Scikit-learn이 있으며, Theano와 같은 툴들도 존재합니다. 그러나 여러가지 방면에서 저 같은 초보가 접근하기 가장 쉬운 것은 Keras라는 정보를 입수하고 Keras를 적극적으로 배워보기로 마음먹었습니다. 케라스를 배우기로 마음먹고 검색한 결과 아주 멋지고 풍부한 정보, 그리고 친절한 설명이 곁들여진 블로그를 발견했습니다. 케라스, 그 간결함에 빠지다.  이 블로그는 제가 최근에 가입하여 활동하기 시작한  Keras 코리아 에서도 몇번 보았던 블로그라서 처음 보자마자 꽤 친근하게 다가왔습니다. 어쨌든 처음 딥러닝을 접하는 저에게도 쉽게 느껴질 정도로 친절한 설명을 해주고 있어서 아주 편하게 따라갈 수 있습니다.

Jekyll Theme을 이용한 github 블로그 만들기 추천 블로그

지킬 테마를 이용해서 매우 간편하게 github 블로그를 개설할 수 있다. github를 이용하여 간편하게 호스팅 할 수 있다는 사실을 이용하면 다양한 응용이 가능하다.   회복맨 블로그  에서 매우 친절하게 지킬 테마를 이용하여 github 블로그를 만들 수 있는 방법을 알려주고 있다. 정말로 그냥 따라가기만 하면 된다.