• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

디렉토리와 jpeg 파일명을 읽는 파일의 절대경로 위치 관련 질문

23.01.12 17:24 작성 23.01.12 21:52 수정 조회수 475

0

- 강의 내용 : 개와 고양이 데이터 세트 구성 확인 및 메타 정보 생성하기(09분 56초)

안녕하세요. 이미지 관련 강의를 너무 쉽고 직관적으로 설명해주셔서 감사합니다. 현재 수업 내용을 기반으로 실제 기업 데이터를 활용하여 이미지 분류 태스크를 진행하려고 하는데요.

질문 내용

  • 쥬피터 노트북의 절대 경로를 s3내 데이터로 어떻게 맞춰야 할지 고민이라 질문드립니다.

  • 현재 JPG 파일을 적재한 위치는 S3입니다. 이미지의 카테고리별(216개)로 JPG raw 데이터가 매일 적재되고 있습니다.

  • 데이터 구조는 Train / Test가 나눠있지 않은 상태입니다.

  • s3에 있는 JPG 데이터를 Sagemaker로 붙어서 keras의 flow_from_dataframe 를 활용한 Generator 방식으로 데이터를 로드해야 하는데요.

  • 혹시 s3내 s3경로가 담긴 파일의 endpoint를 적시한 후 Load해도 괜찮을까요?

  • 아니면 sagemaker내 경로로 s3내 파일들을 마운트해야 할까요? 그렇게 하기에는 데이터가 너무 커서(300GB 정도) 이 방법은 너무 어려울 것 같습니다.

답변 2

·

답변을 작성해보세요.

1

안녕하십니까,

강의를 잘 듣고 계시다니 저도 기분이 좋군요 ^^

제가 sagemaker와 s3를 함께 사용해 보지는 않았습니다.

다만 keras API에서 S3에 직접 붙어서 데이터 처리는 하지 못하는 걸로 알고 있습니다. S3 End point가 아니라 file system 경로를 입력해 줘야 합니다.

제 생각에는 학습하려는 이미지들만 별도의 로컬 파일 시스템으로 다운로드 하신 다음에 여기서 Keras를 적용하시는 게 좋을 것 같습니다만.

적어주신걸로 보면 s3를 마운트 하는데 300GB가 필요하다고 하셨는데, 학습하려는 이미지가 300GB 인지, 아니면 S3 자체가 300GB 인지요?

이미지가 300GB라면 학습에 너무 많은 시간이 소모 될 것 같습니다. 이미지가 300GB라면 다시 글 부탁드립니다.

감사합니다.

 

0

권순철님의 프로필

권순철

질문자

2023.01.14

네 먼저 바쁘신데 답변 주셔서 감사합니다.

현재 S3 자체가 아닌 학습하려는 이미지가 JPG 파일 형식으로 300GB정도 쌓이고, 에어플로우로 매일 추가적인 이미지 파일을 쌓고 있습니다.

서치를 진행해보니 Custom data generator를 활용하여 S3에 있는 파일을 처리하는 방법이 있고, 말씀주신 것처럼 별도의 로컬 파일 시스템으로 다운로드를 진행하는 방법이 있는데요. 세이지메이커 스펙을 결정하여 띄울 때, 적어도 300기가 바이트를 감당할 수 있도록 EBS 볼륨을 조정한 후 처리하도록 시도하는데, EBS 볼륨뿐만 아니라 디스크도 300기가 바이트보다 반드시 커야할까요? (GPU를 여러개 활용하여 병렬로 학습해보려 합니다)

그리고 혹시 300기가 바이트가 학습하는데 너무 크다고 말씀해 주셔서 페이지에 전시될 수 있는 이미지들만 필터를 한 후 학습을 진행하려고 하는데요.

전이학습을 데이터에 적용한 후, Weight를 저장한 후 다음에는 기존 데이터 추가없이 신규 이미지들만 기존 모델에 재학습 시켜도 괜찮을지 문의드립니다.

제 생각엔 300GB의 이미지를 학습하려면 GPU를 여러장 사용해도 꽤 많은 학습 시간이 걸릴 것 같습니다(아마 하루 이상 예상됩니다). 그러면 AWS에서 GPU 비용이 만만치 않을 겁니다. 그리고 학습 도중에 뭔가 문제가 생기면 다시 수행하는등 시간상의 낭비도 있을 수 있습니다.

먼저 300GB보다는 300MB 정도로 학습 이미지를 추려내셔서 학습을 한 뒤에 모델 성능을 함 살펴보시면 어떨까 싶습니다. 모델 성능이 잘 안나오면 3GB정도로 학습 이미지를 늘려서 다시 학습하고 성능을 측정해보면 좋을 것 같습니다.

어느 정도 성능이 나와면 말씀하신대로 Weight를 저장한 후에 기존 데이터 추가없이 신규 이미지들만 기존 모델에 재학습 시켜 가면서 모델 성능을 원하시는 레벨 정도로 차츰 맞춰가시면 좋을 것 같습니다.

반드시 S3의 300GB를 한번에 다 학습을 시켜야 한다면 EBS 볼륨을 300GB 이상 잡으시고 이걸 외부 디스크로 VM에 Mount 하신 다음에 S3의 데이터를 해당 EBS 볼륨으로 다 복사해주셔야 할 것 같습니다.

 

권순철님의 프로필

권순철

질문자

2023.01.14

교수님, 답변 감사드립니다.

말씀해주신대로 300GB에서 300MB ~ 3GB로 먼저 이미지들을 추려서 학습을 시킨 후, 모델 성능에 따라 데이터를 점진적으로 늘리는 방향으로 일정을 잡겠습니다.

다시 한번 답변 감사합니다. 열심히 적용해보겠습니다.