0

애니메이션 캐릭터 감정 분류

AI 허브

AI실전연구프로젝트2 솔루션 Report(인공지능학과_2023310159_최민호)

최민호
2023.12.20 00:34
91

성능 개선 제안

  1. 데이터 전처리: 이미지 데이터의 정규화나 증강을 통해 모델 성능 향상 가능
  2. 모델 구조 변경: Convolutional Neural Network (CNN) 레이어 추가로 특징 추출 강화
  3. 하이퍼파라미터 튜닝: 배치 크기, 학습률, 에포크 수 등 조정
  4. 드롭아웃(Dropout) 적용: 과적합 방지
  5. 보다 정교한 최적화 기법 사용: 예를 들어 RMSprop 또는 SGD

성능 개선 코드

##################################################
import numpy as np
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten, Conv2D, MaxPooling2D, Dropout
from tensorflow.keras.utils import to_categorical
from tensorflow.keras.models import load_model

# 데이터 로드 및 전처리
x_train = np.load('.x_train.npy') / 255.0  # 정규화
y_train = np.load('.y_train.npy')

# 모델 구조 변경
model = Sequential([
   Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 3)),
   MaxPooling2D(2, 2),
   Conv2D(64, (3, 3), activation='relu'),
   MaxPooling2D(2, 2),
   Flatten(),
   Dense(128, activation='relu'),
   Dropout(0.5),
   Dense(6, activation='softmax')
])

# 하이퍼파라미터 및 최적화기 변경
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(x_train, y_train, epochs=10, batch_size=64)  # 에포크 및 배치 크기 변경

# 모델 저장 및 예측
model.save('./model_improved.h5')

# 테스트 데이터에 대한 예측
model = load_model('./model_improved.h5')
x_test = np.load('./anime/anime_data/x_test.npy') / 255.0
y_pred = model.predict(x_test)
y_pred_labels = np.argmax(y_pred, axis=1)
y_pred_onehot = to_categorical(y_pred_labels)

np.save('./y_pred.npy', y_pred_onehot)
 

모델 구조 변경

  1. CNN 추가: Convolutional Neural Network 레이어를 추가하여 이미지 내 특징 추출 능력 강화
  2. MaxPooling 적용: MaxPooling을 통해 데이터의 차원을 줄여 계산 효율성을 높임
  3. Dropout 적용: 과적합을 방지하기 위해 Dropout 레이어를 추가
  4. 하이퍼파라미터 조정
  5. 에포크 수 증가: 모델의 학습 기간을 늘려서 더 많은 데이터로 학습할 수 있도록 조정
  6. 배치 크기 조정: 배치 크기를 늘려 학습 시간을 단축하고, 더 많은 데이터를 활용한 경사 하강 진행
0
0개의 댓글
로그인 후 이용해주세요!