모델을 검증하는 동안 Keras에서 verbose를 사용하는 것은 무엇입니까?


89

LSTM 모델을 처음으로 실행하고 있습니다. 내 모델은 다음과 같습니다.

opt = Adam(0.002)
inp = Input(...)
print(inp)
x = Embedding(....)(inp)
x = LSTM(...)(x)
x = BatchNormalization()(x)
pred = Dense(5,activation='softmax')(x)

model = Model(inp,pred)
model.compile(....)

idx = np.random.permutation(X_train.shape[0])
model.fit(X_train[idx], y_train[idx], nb_epoch=1, batch_size=128, verbose=1)

모델을 훈련하는 동안 verbose를 사용하는 것은 무엇입니까?

답변:


210

여기 에서 model.fit에 대한 문서를 확인 하십시오. .

verbose 0, 1 또는 2를 설정하여 각 에포크에 대한 훈련 진행 상황을 어떻게 '보고 싶은지'말하면됩니다.

verbose=0 아무것도 보여주지 않을거야 (침묵)

verbose=1 다음과 같은 애니메이션 진행률 표시 줄이 표시됩니다.

progres_bar

verbose=2 다음과 같이 시대의 수를 언급합니다.

여기에 이미지 설명 입력


20
verbose : 정수. 0, 1 또는 2. Verbosity 모드. 0 = 무음, 1 = 진행률 표시 줄, 2 = 에포크 당 한 줄. 덕분에 당신은 바위 @ank ..
케쉬

2
이 의견은 질문에 대한 최선의 답변이며, 댓글에 대한 답변보다 더 좋습니다. 이 점에 유의하고 답을 더 길게 만들기 위해 단어를 피하십시오. @rakesh, 당신은 락.
Konstantin Sekeresh

19

verbose: Integer. 0, 1 또는 2. Verbosity 모드.

Verbose = 0 (무음)

Verbose = 1 (진행률 표시 줄)

Train on 186219 samples, validate on 20691 samples
Epoch 1/2
186219/186219 [==============================] - 85s 455us/step - loss: 0.5815 - acc: 
0.7728 - val_loss: 0.4917 - val_acc: 0.8029
Train on 186219 samples, validate on 20691 samples
Epoch 2/2
186219/186219 [==============================] - 84s 451us/step - loss: 0.4921 - acc: 
0.8071 - val_loss: 0.4617 - val_acc: 0.8168

Verbose = 2 (에포크 당 한 줄)

Train on 186219 samples, validate on 20691 samples
Epoch 1/1
 - 88s - loss: 0.5746 - acc: 0.7753 - val_loss: 0.4816 - val_acc: 0.8075
Train on 186219 samples, validate on 20691 samples
Epoch 1/1
 - 88s - loss: 0.4880 - acc: 0.8076 - val_loss: 0.5199 - val_acc: 0.8046

다른 장황한 바쿠에 대한 예상 출력을 얻지 못하는 이유를 설명해 주시겠습니까? 내 파일에 대해 verbose = 0 및 2에 대해 동일한 [침묵] 출력이 표시됩니까? 그리고 verbose = 1의 경우, Epoch 10/10-21s-손실 : 0.2354-acc : 0.9286-val_loss : 0.2206-val_acc : 0.9344 [======== ======================] 정확도 : 0.9344 오류 : 6.560000000000002
Dr Nisha Arora

훌륭한 대답이 나를 도왔습니다. tensorflow 2.2에 유효
Bobs Burgers

9

의 경우 verbose> 0, fit방법 로그 :

  • loss : 학습 데이터의 손실 함수 값
  • acc : 훈련 데이터의 정확도 값.

참고 : 정규화 메커니즘을 사용하는 경우 과적 합을 방지하기 위해 활성화됩니다.

경우 validation_data또는 validation_split인수가 비어 있지 않은 fit방법 로그 :

  • val_loss : 검증 데이터의 손실 함수 값
  • val_acc : 검증 데이터의 정확도 값

참고 : 네트워크의 모든 기능을 사용하고 있기 때문에 정규화 메커니즘은 테스트시 해제됩니다.

예를 들어, verbose모델을 훈련하는 동안 사용 하면 악화 acc되는 동안 계속 개선되는 경우 발생하는 과적 합을 감지하는 데 도움이됩니다 val_acc.


verbosity 매개 변수에 대한 정규화의 관련성은 무엇입니까?!
Chrisji

Verbose 매개 변수는 정규화 메커니즘에 영향을주지 않습니다. verbose가 활성화 된 경우 표시되는 정보에 대한 정보를 추가하고 있습니다 (초기 질문 "모델을 학습하는 동안 verbose의 사용은 무엇입니까?"=> 예 : acc와 val_acc를 비교하여 과적 합 방지).
Hugo Bevilacqua

1

기본적으로 verbose = 1,

verbose = 1 (진행률 표시 줄과 에포크 당 한 줄 포함)

verbose = 0, 침묵을 의미

verbose = 2, epoch 당 한 줄 즉 epoch no./total no. 시대의


0

verbose 플래그로 제공되는 세부 사항의 순서는 다음과 같습니다.

Less details .... 자세한 내용

0 <2 <1

기본값은 1입니다.

프로덕션 환경의 경우 2가 권장됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.