• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

cifar100 이미지 저장하고 불러오는 방법?

22.08.20 21:37 작성 조회수 327

0

선생님 안녕하세요
좋은 강의 감사합니다.
 
cifar100 이미지를 사용해서 모델을 돌려보고 싶은데, 매번 다운받으려니 시간이 너무 오래걸리더라고요
혹시 cifar100 이미지를 다운받아놓고 불러다 쓸 수 있는 코드가 있을까요?
인터넷을 찾아보니 pickle 이런것을 사용해서 풀기는 하는데, batch 마다 풀거나, 아니면 코드가 너무 복잡해서
 
(train_images, train_labels), (test_images, test_labels) = cifar10.load_data()
이렇게 딱 한줄로 푸는 방법을 알려주시면 정말 감사하겠습니다!

답변 1

답변을 작성해보세요.

0

안녕하십니까, 

음, 원래 cifar10.load_data()는 한번 다운로드 받으면 로컬 pc에 데이터를 저장하고, 다음에 호출할 때는 다운로드하지 않고 로컬 pc에 있는 데이터를 그대로 사용합니다. 

근데,  kaggle이나 colab에서는 커널을 만들때 마다 새롭게 container가 붙기 때문에 데이터가 날아가게 됩니다.

하지만, 로컬 pc에서 하시면 아마 다운로드를 다시 받지 않아도 되거나 아니면 (기억이 명확하지 않지만) 해당 파일이 임시 디렉토리에 저장되어서 재기동을 하면 아마 다운로드를 받아야 할 수도 있습니다. 

그렇다고 해당 임시 디렉토리를 변경해서는 안됩니다. 해당 디렉토리는 소스코드 레벨에 박혀있기 때문에 변경하시면 안됩니다. 

요약하자면, 로컬 pc에서 사용하시면 아마도 수행할때마다 한번만 다운로드 받을 겁니다. kaggle이나 colab에서도 마찬가지로 한번만 다운로드 받지만, 커널을 다시 시작하면 다시 다운로드 받아야 합니다.  그리고 다운로드가 되는 해당 디렉토리는 변경이 안됩니다. 

원하시는 바대로 하려면 아래 URL에 있는 코드를 참조하셔서 새로운 함수를 만드셔야 할 것 같습니다.  https://github.com/tensorflow/tensorflow/blob/v1.15.0/tensorflow/python/keras/datasets/cifar10.py#L31-L70