티스토리 뷰

반응형

4만장의 이미지를 keras train 하는데 자꾸만 Memory Error 가 나길래 

Out Of Memory 도 아니고 try , except 로 에러도 출력해보고 하며 몇시간을 해결책을 찾아 해메이던 끝에... 


해결 방법은... 그저 훈련 파일을 분할하기 였다.

( 서버 메모리는 128기가, 4만장 이미지 이미지 처리후 최종 메모리는 약 60기가 - 충분히 메모리 여유가있었음 ) 

4만장 이미지가 칵 클래스별로 총 3000개 폴더에 나뉘어 저장이 되어있는데 

1000개의 폴더씩 나누어서 트레이닝을 하기로 했다.


폴더의 이름이 규칙적이지 않아서 단순히 mv 로 일일히 나누기에는 한계가 있었다. 


ls 명령어에는 limit 기능이 따로 없는것 같다.


따라서 ls 한 결과에 head 명령어를 통해 limit 을 줘야했다.


ls -1 | head -10 

1라인당 1파일 또는 폴더만 리스트 되게 하고 결과를 위에서부터 10개 까지만 출력되게 하는 명령어이다. 


리스트 된 결과물에 대해 mv 명령어로 옮기려면 


ls -1 | head -10 | xargs -i mv "{}" /대상경로 

위와 같이 하면 된다. 


정렬이 필요하면 

ls 의 정렬 옵션들 --sort ( time, size, extension, version ) , -t 최근 수정일순 

또는 

sort 명령어를 이용해서 정렬하면 된다.

ls -1t | head -10 

ls -1 | sort -n 



1000개씩 폴더 나누어서 훈련시키니 총 사용 메모리량이 55기가가 되었고.. 훈련과정이 잘 진행되었다. 


3000개 폴더 훈련시키려니 128기가로는 턱없이 부족했었구나 라는걸 알게되었다 +_+

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함