작성
·
1K
0
안녕하세요. 강의 잘 듣고 있습니다.
실습예제 따라하던 중, 질문이 생겨 여쭤봅니다.
model.fit()을 실행하는 과정에서 batch_size 변경을 통한 실행속도 차이 확인을 위해, batch_size만 변경하여 해당 코드를 여러번 실행시켜보았는데요,
처음 실행 이후부턴 accuracy 값이 이전 실행 결과값에 이어 상승하는 것을 확인하였습니다.
또한, 기존 model.compile() 에서, optimizer를 RMSprop로 변경하여 코드 실행 후, model.fit()을 실행해도 이전 결과값부터 시작하였습니다.
제가 질문드리고 싶은 내용은
(1) model.fit() 실행 시, 결과로 도출된 weights와 bias는 해당 model에 자동으로 저장(?)되는 것인가요?
(2) model.compile()을 중간에 바꿔도 이전에 model.fit()을 통해 맞춰진 weights와 bias도 그대로 유지되는 것인가요?
(3) model을 새롭게 돌리려면 kernel의 재시작, model명 변수를 다르게 하여 새롭게 지정하는 방법 외에 다른 방법이 있나요?
항상 빠르고 정확한 답변 감사드립니다 :)
답변 1
0
안녕하십니까,
(1) model.fit() 실행 시, 결과로 도출된 weights와 bias는 해당 model에 자동으로 저장(?)되는 것인가요?
=> 네 맞습니다. model 객체의 메모리에 자동으로 저장됩니다.
(2) model.compile()을 중간에 바꿔도 이전에 model.fit()을 통해 맞춰진 weights와 bias도 그대로 유지되는 것인가요?
=> 네 맞습니다. compile()은 loss, metric, optimizer를 설정하는 것이므로 weights의 bias에 영향을 미치지는 못하고 재 설정해도 weights와 bias는 그대로 유지 됩니다.
(3) model을 새롭게 돌리려면 kernel의 재시작, model명 변수를 다르게 하여 새롭게 지정하는 방법 외에 다른 방법이 있나요?
=> 음, model을 새롭게 생성하는 것이 가장 좋은데, 그게 아니라면 tf.keras.backend.clear_session() 을 수행해보십시요.
감사합니다.