brunch

You can make anything
by writing

C.S.Lewis

by 유윤식 Sep 12. 2018

Python: m.l with Keras #1

# keras, # machine-learning

설정이 꽤나 어렵다.


운영환경은 Centos 7

GPU 는 Geforce 1080, 물론 회사꺼다.

Python 3.5

Jupyter Notebook 사용


Tensorflow 를 백엔드로 사용하고 있다.



[root@localhost tmp]# cat ~/.keras/keras.json 

{

    "floatx": "float32",

    "image_data_format": "channels_last",

    "epsilon": 1e-07,

    "backend": "tensorflow"

}



이건 확인하고 넘어가면 된다. 보통 저 위치에 있다. 없다면 그냥 다시 설치한다.


한창 할때에는 Model 계층까지 까보면서 머신러닝에 열을 올렸었다.

지금은 Spark 부분에 집중하며 데이터 가공에 힘을 싣고 있다.


다시 케라스 관련 글을 통해 정리하려는 부분은

기록도 기록이고, 케라스의 성장속도와 활용범위에 대한 부분에 놀라웠고

케라스에 접근하려는 사람들에게 공유해 볼 부분이 있을 것 같아서.


케라스는 백엔드레 여러 머신러닝 프레임워크들을 두고 그걸 통해서 머신러닝을 구현할 수 있다.

결국 머신러닝 플랫폼으로 통할 수 있다.

생산성도 매우 뛰어나다.

학습곡선은 말할 필요도 없다. 만약 텐서플로를 조금이라도 집중해서 해보았다면.


늘 머신러닝을 공부하면서 가장 중요하게 느낀 부분은

1. 목표하는 바를 명확히 할 것

2. 그에 맞는 데이터 가공 / 디멘션 처리

3. 양질의 데이터 생성 / 추출


솔직히 저렇게만 있으면 머신러닝은 껌이다. 코드는 내가 짜는게 아니라...

웃픈 이야기지만 :(

구글이 해준다.

고로,

나는 50분을 커피와 연습장 위에서 생각만 하고

나머지 10분을 열심히 복붙하고

나머지 일과시간에 코드를 정리하고 기록하면 된다.


대략 5개의 포스팅을 계획했다.

이번 포스팅은 간단한 소개와 내가 실습한 부분을 남기려고 한다.


머신러닝은 여러 알고리즘이 있고,

내가 목표하는 부분에 따라서 사용하는 알고리즘이 달라진다.


ANN, DNN, CNN, RNN...

더 있다.

GAN, A.E, LSTM, UNET 등등...

더 많다.


나는 네트워크 데이터를 통해서 각 IP별 내용을 통계, 분석, 학습, 예측 하는 부분에

머신러닝을 사용했다.


데이터의 특징은 분류 / 시계열 데이터 예측 에서 사용이 가능했다.

관련 도메인 지식만 도움을 받을 수 있다면

이 또한, 껌이다.


시계열 데이터의 특징은 시간순으로 들어오는 데이터를 뜻한다.

지금도 시간은 흐르고 어떠한 데이터는 생성된다.

당신의 호흡, 말, 생각의 흐름, 데이터의 이동 등이 모두 시계열 데이터의 범주에 속한다.


앞부분부터 차근차근 정리하고

개발과 관련된 세부사항을 공유해보려고 한다.


너무 많은 코드와 데이터들이 있어서

일단 이를 정리하는 작업 후에

브런치에 한 번 더 정리하겠다.


P.S.

혹시 GPU 를 통해서 성능을 높이고 싶다면!

https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=CentOS&target_version=7&target_type=rpmlocal

모든 RPM 을 받고(본인 OS 환경에 맞는)

일단 install, 그리고 apt-get 이건 yum 이건 cuda 를 install.


Cudnn 모듈도 설치해줘야 하는데...

예를 들어!

cudnn-9.2-linux-x64-v7.2.1.38.solitairetheme8

이런 파일을 하나 받을 수 있다.


Cuda 9 이상을 받고 그에 맞는 Cudnn을 설치해주면 된다.


위에 cudnn-* 파일은 tar로 풀어준다.

그럼 cuda 라는 폴더가 하나 튀어나온다.

그 자리에서

sudo cp cuda/include/cudnn.h /usr/local/cuda-9.0/include

sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64

sudo chmod a+r /usr/local/cuda-9.0/include/cudnn.h

sudo chmod a+r /usr/local/cuda-9.0/lib64/libcudnn*


참고로

cuda 를 설치하면 보통 /usr/local/cuda, /usr/local/cuda-9.0 이렇게 디렉토리가 구성된다.

Symlink 관계이므로 cuda-9.0 디렉토리에서 무언가를 바꿔주면 알아서 반영된다.


그리고는 tensorflow-gpu, keras 순서대로 설치하면



>>> import keras

Using TensorFlow backend.


이게 나와야 한다.

작가의 이전글 Python: Spark-Kafka-Jupyter
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari