Naver-AI-Hackathon / AI-Vision

67 stars 34 forks source link

pytorch 저장 시 여러개의 모델을 저장할 경우 #303

Open heasungkim opened 5 years ago

heasungkim commented 5 years ago

요청사항

pytorch로 여러개의 모델을 하나의 세션안에 저장하려고 합니다. nsml.load로 세션과 체크포인트를 넘겨줄 경우 해당 디렉토리가 반환되는데 그럼 그 디렉토리에다가 원하는 파일이름을 붙이면 저장했던 파일을 가져올 수 있나요? 아니면 암호화된 디렉토리라서 에러가 나나요?

여러 파일을 저장했다가 쓸 수 있다고 doc 에 나와있지만 샘플 코드가 너무 짧아 이해하기가 힘듭니다.

nsml-admin commented 5 years ago

안녕하세요.

https://n-clair.github.io/vision-docs/_build/html/ko_KR/contents/nsml_library/bind_model.html?highlight=bind_model#bind_model

위를 참고해보시면 될듯한데요(pytorch)

save란 함수를 살펴보시면 filename이란 경로를 받아서 os.path.join으로 여러파일드를 만들어서 저장합니다.

예제의 방식대로 해보시면 여러개의 파일을 저장할수있습니다.

위의 방식대로 코드가 실행된 세션 'A'가 있다면,

세션 'B'에서도 똑같은 구조의 model1, model2(예제에서는 class_to_save) 를 선언한후

bind_model에 model Object를 넘겨준후 nsml.load(checkpoint='1', session='A')를 하면됩니다.

bind_model(model1, model2)
nsml.load(checkpoint='1', session='A')

model1과 model2에 값이 채워지게됩니다.

샘플코드 관련해서는 충분한 레퍼런스가 없는점 양해부탁드리며 추후에 좀더 보충을 하도록하겠습니다.