Keras
Keras
파이썬 기반의 쉽고 간결한 딥러닝 라이브러리
- 모듈화: 제공 모듈은 독립적이고, 설정 가능하며 제약이 적음
- 단순성: 간결하고 이해가 쉬우나 속도와 혁신성은 떨어질 수 있음
- 확장성: 새로운 클래스 및 함수로 모듈 추가 가능
구성
- 모델
- 가장 핵심적인 데이터 구조
- 순차적(Sequential) 모델로 레이어를 쉽게 쌓을 수 있음
- 다중 출력 등 복잡한 모델은 Keras 함수 API 사용
- 학습 과정
- 데이터 생성
- 모델 구성
- Sequentail()모델 또는 Keras 함수 API
- 모델 학습 과정 설정
- Compile() 함수 사용
- 모델 학습
- fit() 함수 사용
- 모델 평가
- evaluate() 함수 사용
- 모델 사용
- predict() 함수 사용
- Layers
- 신경망 계층 관련 클래스
- Dense, Activation, Dropout, …
- 각 클래스 객체의 주요 메소드 함수
- Layers.get_weights(), layer.set_weights(), …
- 신경망 계층 관련 클래스
- Processing
- 텍스트, 이미지 전처리 관련 클래스
- Datasets
- MNIST, CIFAR10, IMDB 등 데이터셋 관련 클래스
- Utils
- 데이터 정규화, 데이터 표현, 파일 처리, 다중 GPU 처리 등…
- 기타
- Losses, Callbacks, Optimizers, Activations, Visualizations, …
예제 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import tensorflow as tf
mnist = tf.keras.datasets.mnist # 28x28 images of hand-written digits 0-9
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = tf.keras.utils.normalize(x_train, axis=1)
x_test = tf.keras.utils.normalize(x_test, axis=1)
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Flatten(input_shape=x_train[0].shape))
model.add(tf.keras.layers.Dense(128, activation=tf.nn.relu))
model.add(tf.keras.layers.Dense(128, activation=tf.nn.relu))
model.add(tf.keras.layers.Dense(10, activation=tf.nn.softmax))
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(x_train, y_train, epochs=10, batch_size=100, validation_split=0.2)
predictions = model_reloaded.predict([x_test])