더북(TheBook)

코드 3-24 validation_data 매개변수 사용하기

model = keras.Sequential([keras.layers.Dense(1)])
model.compile(optimizer=keras.optimizers.RMSprop(learning_rate=0.1),
              loss=keras.losses.MeanSquaredError(),
              metrics=[keras.metrics.BinaryAccuracy()])  

indices_permutation = np.random.permutation(len(inputs))    
shuffled_inputs = inputs[indices_permutation]             
shuffled_targets = targets[indices_permutation]       
  
num_validation_samples = int(0.3 * len(inputs)) 
val_inputs = shuffled_inputs[:num_validation_samples]           
val_targets = shuffled_targets[:num_validation_samples]         
training_inputs = shuffled_inputs[num_validation_samples:]      
training_targets = shuffled_targets[num_validation_samples:]  
model.fit(
    training_inputs, 
    training_targets, 
    epochs=5,
    batch_size=16,
    validation_data=(val_inputs, val_targets) 
)

검증 데이터에 한 클래스의 샘플만 포함되는 것을 막기 위해 랜덤하게 생성한 인덱스를 사용해서 입력과 타깃을 섞습니다.

훈련 입력과 타깃의 30%를 검증용으로 떼어 놓습니다(검증 손실과 측정 지표 계산을 위해 훈련 데이터에서 이 샘플을 제외시켜 따로 보관합니다).

훈련 데이터는 모델의 가중치를 업데이트하는 데 사용합니다.

검증 데이터는 검증 손실과 측정 지표를 모니터링하는 데만 사용합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.