tensorflow classification 학습시 model 저장
tensorflow로 classification 학습시 일정 주기마다 model.ckpt를 저장하고 일정 갯수가 넘어가면 가장 오래된 파일을 지우고 새로 저장을 한다.
이때 total loss가 가장 낮은 상황일때 model을 저장하고 싶었다. tensorflow 폴더 안의 exporter.py를 비롯한 몇몇 파일을 이용하면 될 것 같으나 결국 방법을 찾지 못 하였다.
그래서 임의로 learning.py 파일에서 코드를 수정하고 추가하여 total loss를 비교하여 가장 낮을 때 따로 저장을 하게 하였다.
아래쪽에서 비교하기전 사용할 것들을 미리 선언
sv.save_path.rfind('model')을 통해 경로에서 model이라는 문자가 어디에 있는지 확인
< .find() 사용시 문자열의 앞부터 찾기 시작하며, .rfind()사용시 문자열의 뒤쪽부터 찾기 시작함>
cutPath와 path_for_remove에 각각 경로를 자른 앞부분과 model을 저장할 경로를 지정하여 주었다.
위의 사진에서는 안 나왔으나
if not (os.path.isdir(path_for_remove)):
os.makedirs(path_for_remove)
를 이용하여 해당 경로가 없을 시 디렉토리를 생성하게 하였다.
그 후 위의 사진에서 보이듯이 디렉토리에 파일들이 있는지 검사하고 있으면 지우고, 없으면 해당 지점의 model을 저장하게 해 두었다.
이때 total loss가 가장 낮은 상황일때 model을 저장하고 싶었다. tensorflow 폴더 안의 exporter.py를 비롯한 몇몇 파일을 이용하면 될 것 같으나 결국 방법을 찾지 못 하였다.
그래서 임의로 learning.py 파일에서 코드를 수정하고 추가하여 total loss를 비교하여 가장 낮을 때 따로 저장을 하게 하였다.
아래쪽에서 비교하기전 사용할 것들을 미리 선언
sv.save_path.rfind('model')을 통해 경로에서 model이라는 문자가 어디에 있는지 확인
< .find() 사용시 문자열의 앞부터 찾기 시작하며, .rfind()사용시 문자열의 뒤쪽부터 찾기 시작함>
cutPath와 path_for_remove에 각각 경로를 자른 앞부분과 model을 저장할 경로를 지정하여 주었다.
위의 사진에서는 안 나왔으나
if not (os.path.isdir(path_for_remove)):
os.makedirs(path_for_remove)
를 이용하여 해당 경로가 없을 시 디렉토리를 생성하게 하였다.
그 후 위의 사진에서 보이듯이 디렉토리에 파일들이 있는지 검사하고 있으면 지우고, 없으면 해당 지점의 model을 저장하게 해 두었다.
댓글
댓글 쓰기