본문 바로가기
프로그래밍 언어 기본 문법/파이썬

딥러닝 라이브러리 모음

by tryotto 2020. 2. 15.

# imdb


- 데이터 불러오기

    - 긍정/부정 분류기 (binary 분류)





# random 


- 랜덤한 인덱스 값 얻어내기 위함 (randint 함수 사용)





# tensorflow.keras : 자연어 처리 용도


- 데이터 셋 : 

     - 로이터 뉴스 데이터 가져오기 (multiclass 분류)

     - MNIST 데이터 가져오기


- 전처리 : 

     - pad_sequence : 패딩 연산 하기

     - to_categorical : 원핫 인코딩 처리


- 토큰 처리 : 

     - Tokenizer() : Corpus 를 토큰화 시켜서 데이터를 사용 가능하도록 변형한다

    - fit_on_texts 연산 : 각각의 문자들에 대해서 정수 인덱스를 부여한다

   ex) { 'apple : 1' , 'banana : 2' }

> 반환값이 없으며, 해당 Tokenizer 에 fitting 이 된 상태를 만들어주기만 한다ㅏ

    - texts_to_sequences 연산 : fit_on_texts 연산을 통해 부여된 인덱스를 이용해서, texts 를 직접 sequence 값으로 바꿔서 반환한다

   ex) "apple banana" -> [1, 2]

> 주로 fit_on_text 연산과 세트로 같이 적용해준다


- 모델 (이미 존재하는 모델 활용시) :

     - SimpleRNN : 레이어 추가


     - Dense : 

    - 입력값 :

 1) units=? : 출력층의 벡터가 몇 차원인지 설정 (주로 원핫벡터를 이용. 원핫벡터의 차원을 기입해줌)

 2) activation='sigmoid', 'softmax' 등 : 활성화 함수의 종류를 설정해줌

 3) input_shape = (batch_size, input_onehot_dimension) 이 주로 사용되는 형태 (2차원 텐서)

> 이런 input 을 받을 경우엔, 2차원 텐서 (batch_size, onehot_dimension) 를 반환


    - 출력값 : 2차원 텐서 (batch_size, onehot_dimension) 

  


     - LSTM :

    - 입력값 :

 1) units=? : hidden layer 의 벡터 차원 수

ex) units=4 : hidden layer 의 벡터 차원 수 = 4*1


 2) input_shape = ( time sequence, embedding vector dimension )

ex) input_shape=(10,35) : LSTM 셀의 갯수가 10이며 (=time sequence 가 10), 임베딩 레이어의 벡터 차원 수가 10*1 이다


 3) return_sequences=True/False : 

> True 일 경우, N:N 모델이 되며, 출력층이 3차원으로 변한다 : 출력층 = (batch_size, time_sequence, units)      <-  3차원

> False 일 경우, N:1 모델이 되며, 출력층이 2차원으로 변한다 : 출력층 = (batch_size, units)                           <-  2차원


    - 결괏값 : return_sequences 의 T/F 여부에 따라 다른 결괏값을 낸다

> N:N 모델의 경우, 3차원 텐서 반환 : (batch_size, time_sequence, units)

> N:1 모델의 경우, 2차원 텐서 반환 : (batch_size, units)   


*** 여러 개의 LSTM 층이 겹쳐져 있을 경우?        ex) model.add(LSTM(256)), model.add(LSTM(128))

> 특별히 새로운 argument 를 입력하지 않는 이상,

    이전 LSTM 층의 time_sequence 값을 똑같이 사용한다


ex) 

# 입력층 : (None, 2, 3), 출력층 : (None, 2, 5)
model.add(LSTM(units=5, input_shape=(time_seq, char_size), return_sequences=True))  

# 입력층 : (None, 2, 5), 출력층 : (None, 2, 7)
model.add(LSTM(units=7, return_sequences=True))





# tensorflow 라이브러리 (자연어처리 X)

  : 모델을 직접 설계시 사용


- 모델 :

     - tf. placeholder : 데이터 값을 받을 수 있는 객체 생성기

     - tf. Variables : 매개변수로 구성된 객체 생성기


- 활성화 함수 :

     - tf. nn. relu,  tf. nn. sigmoid 등


- 손실함수 (=비용함수)

     - tf. reduce_mean,  tf. reduce_sum 함수 활용해서 cost 구하기


- 최적화 함수 

     - tf. train. Optimizer. minimize(~) 활용


- Session() 라이브러리 : 구상 완료한 





# Pandas


- 데이터 가져오기 : 

     구글 Colab 에 데이터가 있는 경우에, 데이터 가져오기 위해 사용