일공이의 IT노트

[Python] 딥 러닝 프레임워크:: Tensorflow, Keras, Scikit-learn, Gensim, NLTK 본문

Data Science/Deep Learning

[Python] 딥 러닝 프레임워크:: Tensorflow, Keras, Scikit-learn, Gensim, NLTK

일공ILGONG 2021. 1. 21. 23:01

 

파이썬을 설치하고 나서 딥 러닝에 바로 도입하고자 한다.

 

그렇다면 제일 먼저 해야 할 것은 딥 러닝 프레임워크를 구축하는 것이다.

 

아나콘다를 설치했다면 기본적으로 Numpy, Pandas, Jupyter notebook, scikit-learn, matplotlib, seaborn, nltk 등이 깔려 있을 것이다. 만약 아나콘다를 사용하지 않는다면, 파이썬 가상 환경 설치 포스팅을 참고하여 가상 환경을 만들고 그 위에 패키지들을 pip로 설치하면 된다.

 

 

 

 

텐서플로우(Tensor flow)


텐서플로우는 구글이 2015년에 공개한 머신 러닝 오픈소스 라이브러리이다. 머신 러닝과 딥 러닝을 직관적이고 손쉽게 할 수 있도록 설계되었다. 

 

텐서플로우를 사용하면 손쉽게 모델 빌드가 가능하고, 사용하는 언어에 상관없이 어디서든 강력한 ML 제작이 가능하다. 보통 이미지 분류 신경망, 생성적 적대 신경망(GAN), 어텐션을 사용한 인공신경망 기계 번역 모델에 많이 사용되고 있다.

 

 

아나콘다 프롬프트(Anaconda Prompt) 또는 명령 프롬프트에 아래 커맨드를 입력하여 텐서플로우를 설치한다.

> pip install tensorflow

 

설치가 끝났으면 ipython 쉘을 실행하여 텐서플로우가 정상 설치되었는지 확인하는 의미에서 텐서플로우를 임포트하고 버전을 확인한다.

> ipython
...
In [1]: import tensorflow as tf
In [2]: tf.__version__
Out[2]: '2.0.0'

 

텐서플로우 2.0이 설치되었음을 확인한다.  텐서플로우는 주로 tf라는 명칭으로 임포트 하는 것이 관례이다.

 

쉘을 나올 때는 exit라는 커맨드로 빠져나올 수 있다. 

 

 

 

 

케라스(Keras)


케라스(Keras)는 딥 러닝 프레임워크인 텐서플로우에 대한 추상화된 API를 제공한다. 케라스는 백엔드로 텐서플로우를 사용하며, 좀 더 쉽게 딥 러닝을 사용할 수 있게 한다. 

 

케라스의 특징은 다음과 같다.

 

  • 동일한 코드로 CPU와 GPU에서 실행할 수 있다.
  • 사용하기 쉬운 API를 가지고 있어 딥러닝 모델의 프로토타입을 빠르게 만들 수 있다.
  • (컴퓨터 비전을 위한) 합성곱 신경망, (시퀀스 처리를 위한) 순환 신경망을 지원하며 이 둘을 자유롭게 조합하여 사용할 수 있다. 
  • 다중 입력이나 다중 출력 모델, 층의 공유, 모델 공유 등 어떤 네트워크 구조도 만들 수 있다. 이 말은 절대적 생성 신경망(GAN)부터 뉴럴 튜링 머신(Neural Tuning Machine)까지 케라스는 기본적으로 어떤 딥러닝 모델에도 적합하다는 뜻이다.

 

텐서플로우와 마찬가지로 간단하게 케라스를 설치한다.

> pip install keras

 

사실 설치한 케라스를 사용할 수도 있지만, 텐서플로우에서 케라스를 사용할 수도 있다. 영어 커뮤니티에서는 순수 케라스를 keras라고 표기한다면, 텐서플로우에서 케라스 API를 사용하는 경우는 tf.keras라고 표기한다. 케라스 개발자인 프랑소와 숄레는 앞으로는 keras보다는 tf.keras를 사용할 것을 권장했다고 한다.

 

마찬가지 방법으로 버전을 확인한다.

> ipython
...
In [1]: import keras
In [2]: keras.__version__
Out[2]: '2.3.1'

 

 

 

 

사이킷런(Scikit-learn)


사이킷런(Scikit-learn)은 파이썬 머신러닝 라이브러리이다. 사이킷런을 통해 나이브 베이즈 분류, 서포트 벡터 머신 등 다양한 머신 러닝 모듈을 불러올 수 있다. 또한, 사이킷런에는 머신러닝을 연습하기 위한 아이리스 데이터, 당뇨병 데이터 등 자체 데이터 또한 제공하고 있다. 사이킷런은 아나콘다로 자동 설치되지만 아나콘다를 설치하지 않았다면 아래의 커맨드로 Scikit-learn을 별도 설치할 수 있다.

> pip install scikit-learn
> ipython
...
In [1]: import sklearn
In [2]: sklearn.__version__
Out[2]: '0.21.3'

 

 

 

젠심(Gensim)


젠심(Gensim)은 Numpy, Scipy 및 Cython으로 구현된 강력한 오픈 소스 벡터 모델링 및 토픽 모델링 툴킷업으로, 머신 러닝을 사용하여 토픽 모델링과 자연어 처리 등을 수행할 수 있게 해주는 라이브러리이다. 

 

 

설치

> pip install gensim

 

 

 

 

NLTK(Natural Language Toolkit)


NLTK는 Python으로 작성된 영어에 대한 기호 및 통계 자연어 처리(NLP)를 위한 라이브러리 및 프로그램 모음이다.  NLTK는 펜실베니아 대학 컴퓨터 정보학과의 스티븐 버드(Steven Bird)와 에드워드 로퍼(Edward Loper)에 의해 개발되었으며 그래픽 데모 및 샘플 데이터를 포함하고 있다.

 

설치

> pip install nltk
> ipython
...
In [1]: import nltk
In [2]: nltk.__version__
Out[2]: '3.4.5'

 

NLTK의 기능을 제대로 이해하기 위해서는 NLTK Data라는 여러 데이터를 추가적으로 설치해야 한다. 이를 위해서는 파이썬 코드 내에서 import nltk 이후에 nltk.download()라는 코드를 수행해서 설치한다. 

In [3]: nltk.download()

 

NLTK Data 설치에 대한 자세한 사항은 위키독스의 딥 러닝을 이용한 자연어 처리 입문을 참고하길 바란다.

 

 

 

 

 

Reference


wikidocs.net/25280

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

 

tensorflow.blog/

 

텐서 플로우 블로그 (Tensor ≈ Blog)

머신러닝(Machine Learning), 딥러닝(Deep Learning) 그리고 텐서(Tensor) 또 파이썬(Python)

tensorflow.blog

blog.naver.com/PostList.nhn?blogId=timtaeil&categoryNo=23

 

코드사기꾼 : 네이버 블로그

現 공공기관 정보보안 주임연구원 前 2019~2020 대통령직속기관 정보보안담당관 前 2018~2019 패스트캠퍼스 강사 前 2018 SSAFY 강사 SW개발보안경진대회 우수 국방해킹방어대회 최우수

blog.naver.com