Naver-AI-Hackathon / AI-Vision

67 stars 34 forks source link

nsml.cache 를 이용한 캐시파일이 에러가 납니다. #106

Open DevKiHyun opened 5 years ago

DevKiHyun commented 5 years ago
output_path = ['./img_list_{}.pkl', './label_list_{}.pkl']
nsml.cache(train_data_loader_v2, data_path=train_dataset_path,
                   output_path=output_path, is_training=True)

def train_data_loader_v2(data_path, output_path, is_training):
   img_list = ~~~
   label_list = ~~~
   interval = 28416 // 4
   for i in range(4):
            with open(output_path[0].format(i), 'wb') as img_f:
                pickle.dump(img_list[i*interval:(i+1)*interval], img_f)
            with open(output_path[1].format(i), 'wb') as label_f:
                pickle.dump(label_list[i*interval:(i+1)*interval], label_f)

제 전처리코드로 나온 데이터가 28416개가 되고 전부 size가 224x224 일 경우에 전처리 함수의 이름도 바꿔서 nsml.cache에 넣고 돌렸습니다. 4개로 나눠서 저장할 경우

/bin/bash: line 1: 48 Killed python -u main.py

라는 에러가 발생합니다. 전에 위와 같은 에러가 용량 부족으로 발생한다고 들었습니다. 함수 이름도 바꿔서 cache에 넣었는데도 에러가 난다는 것은 캐시파일 용량이 제공된 용량보다 커서 그런건가요?

baseline에 제공한 대로만 하면 돌아가는데 조금이라도 수정하면 안되는지 이유를 모르겠습니다. 함수 이름, 경로 이름 말고도 바꿔줘야 되는게 있나요? 혹시 cpu memory size 를 늘리면 해결되나요?

세션 이름은 Resource_exhausted/ir_ph1_v2/75 입니다.

Originally posted by @DevKiHyun in https://github.com/AiHackathon2018/AI-Vision/issues/77#issuecomment-451370270

Hackoperation commented 5 years ago

전체 캐시파일의 파일사이즈가 중요할것같습니다.

위의

/bin/bash: line 1: 48 Killed python -u main.py

관련된 에러는 memory의 문제로 예상되며, nsml run 할때 --memory옵션으로 조절할수있습니다.

사용가능한 메모리의 양은 nsml status로 확인이 가능합니다.

DevKiHyun commented 5 years ago

nsml status 에서 메모리양의 확인하는 command가 보이지 않는데 추가 명령어가 있나요?

Hackoperation commented 5 years ago

확인해보니 유저는 다음의 링크에서 확인이 가능합니다.

위의 링크를 참조하셔서 RAM(GB)을 세션 실행시 적절히 조절하시기 바랍니다.

예)

nsml run -d ir_ph1_v2 -e main.py --memory '30G'