AI

Keras 개요 및 개념 잡기 (딥러닝 라이브러리 )

Trillion Binary 2023. 2. 3. 09:19
SMALL

2019. 12. 13. 16:00 에 작성했던 글입니다. 

케라스란?
케라스(Keras)는 파이썬으로 작성된 오픈 소스 신경망 라이브러리이며, CPU와 GPU에서 실행할 수 있습니다.
내부적으로는 TensorFlow, Theano, CNTK 등의 딥러닝 전용 엔진이 구동되지만 케라스 사용자는 복잡한 내부 엔진을 알 필요는 없습니다. 케라스는 직관적인 API를 제공하고 있어, 딥러닝 모델의 프로토타입을 빠르게 만들 수 있습니다.
기본산식
이공식만 이해 할 수 있는 수학 실력자라면 누구나 딥러닝을 할 수 있다 - 김성훈 교수-
딥러닝 프레임워크 주요 특징 
딥러닝 프레임워크 트랜드 (구글검색 트랜드)
딥러닝 모델 작성 순서
1) 데이터셋 생성하기
  • 원본 데이터를 불러오거나 시뮬레이션을 통해 데이터를 생성.
  • 훈련셋, 검증셋, 시험셋을 생성.
  • 딥러닝 모델의 학습 및 평가를 할 수 있도록 포맷 변환.
2) 모델 구성하기
  • 시퀀스 모델을 생성한 뒤 필요한 레이어 구성.​​
3) 모델 학습과정 설정하기
  • 학습에 대한 설정을 수행.
  • 손실 함수 및 최적화 방법을 정의.
  • compile() 함수를 사용.
4) 모델 학습시키기
  • 훈련셋을 이용하여 구성한 모델로 학습.
  • fit() 함수를 사용.
5) 학습과정 살펴보기
  • 모델 학습 시 훈련셋, 검증셋의 손실 및 정확도를 측정.(반복횟수 조정)
6) 모델 평가하기
  • 준비된 시험셋으로 학습한 모델을 평가.
  • 케라스에서는 evaluate() 함수를 사용.
7) 모델 사용하기
  • 임의의 입력으로 모델의 출력을 얻습니다.
  • predict() 함수를 사용.
예제
# 0. 사용할 패키지 불러오기
from keras.utils import np_utils
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Activation
# 1. 데이터셋 생성하기
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train.reshape(60000, 784).astype('float32') / 255.0
x_test = x_test.reshape(10000, 784).astype('float32') / 255.0
y_train = np_utils.to_categorical(y_train)
y_test = np_utils.to_categorical(y_test)
# 2. 모델 구성하기
model = Sequential()
model.add(Dense(units=64, input_dim=28*28, activation='relu'))
model.add(Dense(units=10, activation='softmax'))
# 3. 모델 학습과정 설정하기
model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])
# 4. 모델 학습시키기
hist = model.fit(x_train, y_train, epochs=5, batch_size=32)
# 5. 학습과정 살펴보기
print('## training loss and acc ##')
print(hist.history['loss'])
print(hist.history['acc'])
# 6. 모델 평가하기
loss_and_metrics = model.evaluate(x_test, y_test, batch_size=32)
print('## evaluation loss and_metrics ##')
print(loss_and_metrics)
# 7. 모델 사용하기
xhat = x_test[0:1]
yhat = model.predict(xhat)
print('## yhat ##')
print(yhat)
데이터만 있으면 모델은 자동 생성?
autokeras는 신경망의 하이퍼패러미터를 신경망 개발자가 디자인하는 것이 아니라, 데이터만 주입하면, 알아서 신경망을 만들어주는 라이브러리.
* 동영상 강의 정리 노트 
 
 
 

모델을 저장하는 방법에 대한 링크입니다. https://3months.tistory.com/150

 

Keras - 모델 저장하고 불러오기

Keras 모델 저장하고 불러오기 /* by 3months. 2017.7.19 */ keras를 통해 MLP, CNN 등의 딥러닝 모델을 만들고, 이를 학습시켜서 모델의 weights를 생성하고 나면 이를 저장하고 싶을 때가 있습니다. 특히 weights

3months.tistory.com

 

BIG