Machine Learning

머신러닝 공부를 위해 여기 를 보고 공부했다. 김성 교수님의 동영상 강의이다.
사실 예전에 연구실에서 머신러닝 스터디를 통해서 어느정도 머신러닝에 대한 개념을 가지고 있지만 공부를 소홀히한지 꽤 시간이 되어서 다시 공부를 시작했다.
explicit programming의 경우에는 훌륭한 프로그램들이 많지만 한계가 분명한 것들이 있다. 예를 들면 스팸 필터나 자동주행과 같은 경우 너무나 많은 경우의수를 일일히 생각할 수 없기 때문이다. 따라서 이런경우에 머신 러닝을 통한 방식을 이용해서 더욱 좋은 programming app을 만들 수 있다.

supervised learning : data set을 이용해서 러닝을 한다. unsupervised learning :


Supervised Learning
data set 으로 러닝
traning data set 필요
ex) image labeling

알파고 또한 Superviesd Learning이라고 한다.


Types examples
Regression 점수 예측 같은 문제
Binary Classification pass/non-pass 의 문제
Multi-label Classification Letter grade(A,B,C,D and F) 같은 문제

What is TensorFlow??
머신 러닝 라이브러리중 가장 많이 쓰인거고 이걸 쓰는게 정신건강에 좋을 것이다. 데이터 플로우 그래프를 사용해서 numerical 한 계산을 해주는 library이다. 파이썬을 이용한다.
그러면 데이터 플로우 그래프란 무엇인가?
Node = 수학적인 operations
Edge: data arrays(tensor)

더 들어야되는데 일단 tensorflow 설치부터 시작한다.

젠장. 망했다. 밑에 있는게 안된다.!!!

여기 를 참고해서 다운을 받았으며 현재 CUDA 10.0 CUdnn 7.3.1 을 받아서 했다. 환경변수 등록도 완료했다.

$ tar xvfz cudnn-9.0-linux-x64-v7.1.tgz 
$ sudo cp -P cuda/include/cudnn.h /usr/local/cuda/include 
$ sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64 
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

여기서 chmod a+r은 위키를 찾아보면 무슨 의미인지 나오는데 간단히 얘기해서 libcudnn*모든 파일에 대한 퍼미션을 변경하는 거다. 여기서 a 는 모든 사람들에 대한다는 것이고, + 는 지정된 모드들을 지정된 클래스에 더한다는 뜻, 그리고 마지막 r 을 읽기 권한에 대해 허가한다는 뜻이다. 즉 모든 사람들이 이 cuDNN에 대한 r 권한을 가진다는 의미인것 같다.

$ sudo apt-get install libcupti-dev

추가적으로 필요한 package 다운

$ vi ~/.bashrc 
$ export PATH=/usr/local/cuda/bin:$PATH 
$ export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64" 
$ export CUDA_HOME=/usr/local/cuda

~/.bashrc파일에 환경변수를 등록한다. 여기는 개인용 환경설정이며 /etc/.bashrc는 전체용 환경설정이다.리눅스 부팅 시 미리 적용하여 구동할 때 적용되도록 설정해놓는건데(쉘을 실행할때마다 사용됨) 여기서는 export 라는 명령어를 통해서 CUDA_HOME,LD_LIBRARY_PATH,PATH를 지정하는거다.(echo는 변수를 출력하는 프린트함수) 이렇게 하면 환경 변수 설정까지 완료다.
근데 nvcc –version 확인 결과 nvidia-cuda-toolkit 을 받으라 해서 받아봤다.
실행결과는 다음과 같다.

luislee@luislee:~$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130

젠장. 망했다. 위에 있는게 안된다.!!!

다운 받으면서 linux kernel 명령어 같은것도 다 공부했는데 결론적으로 안된다. 안되는 이유는 처음에는 ubuntu 18.04 의 문제였다. 지금까지 안정된 버젼, 그리고 cuda toolkit 이 17.04 까지 정식으로 배포되고있는데 나는 버젼이 맞지 않아서 처음에 안됫다. 그래서 그 후에 여러 방법으로 도전했고 거의 5시간넘게 뻘짓을하다가 드디어 됬다!!!!!!!

내가 참고한 사이트는 여기 이다.
자신이 현재 18.04 버젼에 graphics 카드를 10xx 시리즈를 쓰고 있다면 여기를 참고해서 설치하는게 좋을 듯 하다.

두번째 TIL 은 여기까지…
오늘 원래 다른공부도 많이하고 블로그에 포스팅할려고했는데 역시나 사람일이 그렇듯… 예전에는 한번에 잘했던 tensorflow 세팅이 문제가 생겨서… 너무나도 오래걸렷다. 내일은 기필코 논문도 읽고 할일도 다 해야겟다…