더북(TheBook)

코드 4-26 K-겹 검증하기25

k = 4
num_val_samples = len(train_data) // k
num_epochs = 100
all_scores = []
for i in range(k):
    print(f"#{i}번째 폴드 처리중")
    val_data = train_data[i * num_val_samples: (i + 1) * num_val_samples]
    val_targets = train_targets[i * num_val_samples: (i + 1) * num_val_samples] ➊
    partial_train_data = np.concatenate( ➋ 
        [train_data[:i * num_val_samples],
         train_data[(i + 1) * num_val_samples:]],
        axis=0)
    partial_train_targets = np.concatenate(
        [train_targets[:i * num_val_samples],
         train_targets[(i + 1) * num_val_samples:]],
        axis=0)
    model = build_model() ➌ 
    model.fit(partial_train_data, partial_train_targets, ➍
              epochs=num_epochs, batch_size=16, verbose=0)
    val_mse, val_mae = model.evaluate(val_data, val_targets, verbose=0) ➎
    all_scores.append(val_mae)

➊ 검증 데이터 준비: k번째 분할

➋ 훈련 데이터 준비: 다른 분할 전체

➌ 케라스 모델 구성(컴파일 포함)

➍ 모델 훈련(verbose=0이므로 훈련 과정이 출력되지 않습니다)

➎ 검증 세트로 모델 평가