반응형

머신러닝&딥러닝/Tensorflow&keras 3

Tensorflow&Keras - LSTM 개념 및 사용법 정리

LSTM 은 Long Short Term Memory의 줄임말로 주로 시계열 처리나 자연어 처리(현재는 잘 사용 안 하지만)를 사용하는 데 사용한다. LSTM을 처음 배울 때 헷갈렸던 것은 데이터의 '순환'에 대한 개념이었다. 흔히 아래와 같은 그림으로 LSTM을 나타낸다. Input으로 x가 들어가면 여러번의 순환을 거쳐 output인 y가 나오는 구조이다. 이때 h는 그 중간다리 역할을 하는데 hidden state라고 한다. 위의 구조를 펼쳐서 보면 아래와 같다. Input 데이터인 x는 Sequence를 가지는 데이터가 되는데 위의 경우는 길이가 6인 데이터이기 때문에 총 6번의 input이 들어가게 된다.(예를 들면 단어가 6개인 문장) RNN 사이에 있는 화살표는 hidden state의 전달..

Tensorflow - 다중 클래스 학습 평가 이론 및 구현

Classification을 할 때 평가에 Precision이나 Recall 등이 필요할 때가 있다. Binary는 바로 지원이 되어 사용하면 되지만 Multi class의 경우는 따로 구현이 필요하다. 그에대한 Custom 함수를 김태영님의 블로그를 참고하여 Tensorflow 2.2 version으로 만들어 보았다. 모든 구현은 Label이 One-hot 형태가 아닌 int형 데이터일 때를 가정하였다. One-hot인 경우는 추가적으로 argmax를 해주는 과정이 필요하다. 위와 같은 Binary + Imbalanced Data 가 있을 때 , 모델이 예측치로 모두 파란색 공을 뽑아내면 제대로 학습이 되지 않았음에도 정확도가 80%가 나오게 된다. 따라서 Recall이나 Precision의 평가방법이..

VScode 에서 keras intellicode가 잘 안될 때

Visual Studio Code를 사용할 때, 자동완성 기능의 편리함을 많이 느낍니다. Python의 경우도 VScode의 확장팩인 Visual Studio IntelliCode를 사용하여 코딩을 하면 굉장히 편합니다. 그런데, tensorflow의 keras를 이용하려고 하는데 intellicode가 아래의 사진처럼 잘 안되는 걸 느꼈습니다. 제가 pylint를 사용해서 python interactive창이 뜨게 되는데 거기서는 또 잘 되더라구요. 그래서 가끔 함수 이름을 까먹을 때 그렇게 했는데 항상 하기는 불편해서 방법을 알아봤습니다. 그렇게 해서 발견한 방법을 공유합니다. 위와같이 tensor flow_core.python.keras.api로부터 keras를 불러와서 사용을 하게 되면 자동완성이..

반응형