본문 바로가기
AI 개발 팁

[AI dataset] ImageNet Dataset 다운로드

by Tae_bbang 2021. 7. 30.

ImageNet Dataset은 많은 Vision task에서 Network의 학습을 위해 사용되는 데이터셋 입니다.

ImageNet 데이터의 예시

https://image-net.org/download-images

 

ImageNet

Download ImageNet Data ImageNet does not own the copyright of the images. For researchers and educators who wish to use the images for non-commercial research and/or educational purposes, we can provide access through our site under certain conditions and

image-net.org

ImageNet Dataset은 공개된(Open) 공공의(Public) 데이터셋입니다. 데이터셋은 상기 링크를 통해 회원가입 후 다운로드 할 수 있습니다.

 

데이터셋의 저장은 SSD 위에 올리는 것이 권장됩니다. 

Neural Network를 학습할 때, SSD위에 데이터들이 저장되어 있어야 굉장히 빠르기 때문입니다. 하지만, hdd와 같은 다른 곳에 저장되어 있어도 학습은 가능합니다.

 

일반적으로 Dataset의 구조는 각 class의 데이터가 folder로 대응되어 각 folder 속에 class들을 저장하게 하면 됩니다.

가령:  SubFoldername을 ClassName으로 설정하면 됩니다. SubFolder의 상위에는 train 데이터셋인지, valid인지, test인지를 구분해두면 됩니다.

 

그래서 예를 들어, {개, 고양이} 분류 데이터셋을 저장한다면, 'train/cat/1.png'의 형태로 저장되어 있으면 됩니다.

 

상기 링크에서 다운로드 받으면, ILSVRC2012_img_train.tar와 ILSVRC2012_img_val.tar 두 압축 파일을 다운 받을 수 있습니다. .tar는 압축 파일을 의미합니다. 이것의 압축을 풀면 ImageNet dataset을 만들 수 있습니다. ImageNet에는 1000개의 클래스가 있는데, 압축을 푼 training 데이터셋 폴더에는 n07579787 의 형태로 subfolder의 이름이 설정되어 있습니다. 이것이 className입니다.!

 

압축은 그러면 한번 간단하게 풀 수 있을 까요?

그렇지는 않습니다. 첫 압축을 풀면, 해당 파일 속에 새로운 압축파일들이 나오는 형태로 되어있습니다. 그래서 명령 프롬포트나 terminal을 통해 command를 잘 사용해야합니다.

 

아래의 command를 연속적으로 사용하시면, dataset을 쉽게 받으실 수 있습니다.

command는 압축파일이 있는 directory에서 진행하시면 됩니다.

 

# extract train data
mkdir train && mv ILSVRC2012_img_train.tar train/ && cd train
tar -xvf ILSVRC2012_img_train.tar && rm -f ILSVRC2012_img_train.tar
find . -name "*.tar" | while read NAME ; do mkdir -p "${NAME%.tar}"; tar -xvf "${NAME}" -C "${NAME%.tar}"; rm -f "${NAME}"; done
# extract validation data
cd ../ && mkdir val && mv ILSVRC2012_img_val.tar val/ && cd val && tar -xvf ILSVRC2012_img_val.tar
wget -qO- https://raw.githubusercontent.com/soumith/imagenetloader.torch/master/valprep.sh | bash

이제 여러분들은 잘 정리된 ImageNet dataset을 쉽게 얻으실 수 있습니다.

ImageNet dataset은 대략 100~120G정도로 고용량이니 메모리를 잘 확보하시고 사용하시길 바랍니다.

 

감사합니다.