본문으로 건너뛰기
실습하기

쉽고 직관적인 신경망 라이브러리, Keras

Keras(케라스)는 딥러닝 모델을 쉽게 만들고 훈련할 수 있도록 도와주는 라이브러리로, 텐서플로우와 함께 사용되는 인기 라이브러리입니다.

간단하게 말하면 케라스는 텐서플로우를 보다 쉽게 사용할 수 있도록 만든 도구입니다.


Keras로 무엇을 할 수 있을까?

Keras를 사용하면 아래와 같이 다양한 AI 모델을 만들 수 있습니다.

  • 손글씨 숫자 인식 : 자동으로 숫자를 분류하는 모델

  • 이미지 분류 : 입력된 이미지에서 사람, 자동차, 고양이 등을 분류하는 모델

  • 자연어 처리 : 뉴스 기사가 긍정적인지 부정적인지를 판단하는 모델

  • GAN(생성적 적대 신경망) : 새로운 이미지를 생성하는 모델


Keras 기초 코드 예시

다음은 간단한 AI 모델을 생성하는 예제입니다.

Keras 기본 신경망 모델 생성 예시
from tensorflow import keras
from tensorflow.keras import layers

# 모델 생성
model = keras.Sequential([
layers.Dense(64, activation='relu', input_shape=(10,)),
layers.Dense(32, activation='relu'),
layers.Dense(1, activation='sigmoid')
])

# 모델 컴파일
model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy'])

# 모델 요약 출력
model.summary()

코드 설명

위 코드의 주요 의미는 다음과 같습니다.

아직 코드 내 relu, sigmoid, adam과 같은 전문 용어를 이해하실 필요는 없습니다. 각 전문용어에 대한 자세한 설명은 딥러닝 기초 챕터에서 다루도록 하겠습니다.


  • from tensorflow import keras: 텐서플로우 라이브러리에서 케라스 모듈을 불러옵니다.

  • from tensorflow.keras import layers: 케라스 모듈에서 레이어 모듈을 불러옵니다.

  • keras.Sequential() : 신경망 레이어를 순차적으로 쌓아 딥러닝 모델을 구축합니다.

  • Dense(64, activation='relu', input_shape=(10,)): 64개의 뉴런을 가진 층을 생성하고, 활성화 함수로 ReLU를 사용합니다. 입력 데이터의 형태는 10개의 특성을 가진 1차원 벡터입니다.

  • Dense(32, activation='relu'): 32개의 뉴런을 가진 층을 생성하고, 활성화 함수로 ReLU를 사용합니다.

  • Dense(1, activation='sigmoid'): 1개의 뉴런을 가진 출력층을 생성하고, 활성화 함수로 Sigmoid를 사용합니다. Sigmoid는 이진 분류 문제에서 출력값을 0과 1 사이의 확률로 변환하는 역할을 합니다.

  • model.compile(): 모델을 컴파일합니다. 여기서는 adam 옵티마이저, binary_crossentropy 손실 함수, accuracy 메트릭을 사용합니다.

  • model.summary(): 모델의 구조를 요약하여 출력합니다.


이와 같이 Keras는 간결한 코드로 복잡한 신경망을 쉽게 구현할 수 있는 유용한 라이브러리입니다.

다음 수업에서는 Keras를 활용하여 실제 데이터셋을 사용해 모델을 학습하는 방법에 대해 알아보겠습니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!