golbin / TensorFlow-Tutorials

텐서플로우를 기초부터 응용까지 단계별로 연습할 수 있는 소스 코드를 제공합니다
2.13k stars 1k forks source link

Jupyter에서 실행 오류 보완, 실행 파일마다의 model 경로 다르게 #20

Closed dhrim closed 6 years ago

dhrim commented 6 years ago

3가지 수정

Jupyter 실행 시의 오류 보완

'05 - TensorBaord, Saver'의 Saver.py를 jupyter에서 반복 실행시키면 다음의 오류가 발생합니다.

========================================================================

NotFoundError Traceback (most recent call last) /anaconda3/envs/python3/lib/python3.6/site-packages/tensorflow/python/client/session.py in _do_call(self, fn, args) 1326 try: -> 1327 return fn(args) 1328 except errors.OpError as e:

/anaconda3/envs/python3/lib/python3.6/site-packages/tensorflow/python/client/session.py in _run_fn(session, feed_dict, fetch_list, target_list, options, run_metadata) 1305 feed_dict, fetch_list, target_list, -> 1306 status, run_metadata) 1307

/anaconda3/envs/python3/lib/python3.6/contextlib.py in exit(self, type, value, traceback) 87 try: ---> 88 next(self.gen) 89 except StopIteration:

========================================================================

발생 이유는 Jupyter에는 한번 실행 이후 프로세스가 종료되지 않고, 커널로 계속 유지됩니다. 이런 관계로 이전에 실행했던 그래프가 그대로 남아 있고, 이로 인해 오류가 발생합니다. 이를 방지 하기 위해 그래프를 구성하기 전에 tf.reset_default_graph() 를 호출하여 리셋합니다.

실행 파일 마다의 model 경로 다르게

3개의 실행 파일들의 model 저장 경로가 같아서, 서로 의존성이 있습니다. 이를 방지하기 위하여 경로를 다르게 변경했습니다.

기존 model, logs 폴더 삭제

이 폴더가 없어도 실행 시키면 생성되니까 없어도 될것 같네요. 특히 model폴더의 경우 실행 파일마다 경로를 다르게 해서 필요없어진 경우네요.

golbin commented 6 years ago

먼저 패치 제공해주셔서 감사드립니다. ^^

본 레포의 소스는 로직을 이해하는데 필요한 내용을 줄이기 위해, 핵심 로직을 제외한 부분은 최대한 넣지 않는 것을 목표로 하고 있습니다.

또한 모델을 저장한 것은, 학습을 따로 진행하지 않아도 결과를 확인할 수 있도록 하는 목적이 있습니다.

알려주신 주피터 실행시의 오류 처리 부분은 따로 안내하는 방법을 쓰는게 좋을 것 같은데, 방법을 찾아보겠습니다.

dhrim commented 6 years ago

따로 메일로 드릴까 하다가, 코드로 의견 드리는 것이 가장 확실할 것 같아서 PR 생성했네요. 다시한번 도움 받은 것 같사드립니다.