Closed loverectangle closed 4 years ago
안녕하세요.
도커에 파일을 저장을 했다는게, 세션에 파일을 저장하셨다는 말씀인가요?
세션에 저장된 파일을 다른세션에서 가져오는 방법은 nsml.save() 로 저장후 submit타임때 nsml.load()를 이용해서 호출하는 방법외에는 없습니다.
submit시에 파일저장을 막진 않았습니다.
저희는 submit 시에 도커 내에 생성되는 파일을 꼭 이용 해야하는데 방법이 없을까요...?
submit 시 도커에 파일을 저장한 후 그 파일을 다시 읽어오는 구조인데 파일 저장이 되지않는 상황입니다.....
submit 시에 파일 저장을 막아둔건 아니지만, submit후에는 세션을 삭제하게 되어 있어서 그 파일을 이용할방법은 없습니다.(테스트데이터셋의 유출을 막기위해) submit시에 도커내에서(세션에서) 생성되는 파일을 이용하는방법은 없습니다.
submit 시(infer 함수내에서) 도커에 파일을 생성하고 바로 다시 읽어서 처리를 합니다. submit 끝나기 전에 하는 건데 그것도 불가능한가요..?
submit타임때 파일로 저장하고, 그 다시 읽어서 제출하는 방식은 가능할것같습니다.
혹시 에러로그나 아니면 에러가 발생한 세션이 있나요?? 알려주시면 에러내용 확인해드리겠습니다.
....... Building docker image. It may take a while .........load nsml model takes 0.28513574600219727 seconds .Infer test set. The inference should be completed within 3600 seconds. .Error occurred while inference. You can check error 'nsml submit --test' FileNotFoundError: [Errno 2] No such file or directory: '/keypoints.csv'
Infer test set takes 1503.7536029815674 seconds ..Error: Fail to get prediction result: t0120/tr-1/107/model FATA[2020/07/31 15:02:54.797] Internal server error
입니다!
확인해보니 /keypoints.csv
란 파일은 없습니다. docker 만들때 파일의 이름을 헷갈리신거 같은데요,확장자 명까지 다시한번 확인해보시기 바랍니다.
모델을 돌렸을때 파일이 생성되는데, 그 파일이 로컬에서 접속한 docker에서는 생성이 됩니다. 하지만 nsml submit시 infer함수 내에서 subprocess로 실행했을때에는 생성이 안됩니다..
제가 해당 세션(t0120/tr-1/107)을 확인했을땐, keypoints.txt 파일이 있었고 keypoints.csv 파일은 없었습니다.
파일이름을 잘못 입력하여 접근 하였거나 파일 생성시점과 접근시점이 달라서 파일을 못찾는 문제일수도있을거같습니다.
그것은 원래 도커에 넣어놓았던 파일입니다. subprocess call 함수에서 모델을 실행시켜야만 csv 파일이 나오는 방식인데, 그 파일이 저장되지 않아 질문드립니다.
음.. 그렇다면 submit -t로 디버깅하면서 확인하는 방법밖에는 없을것같습니다.
submit 이라도 로컬 어딘가에 파일을 저장하는것은 가능합니다.
감사합니다.
저희는 docker에서 파일을 저장한 후, 처리를 하는 식으로 구현을 했습니다.
실행을 해보니 파일이 저장이 전혀 안되는 것 같은데, 혹시 submit 시에 파일 저장을 막은 것인지 궁금합니다.