ImageNet Dataset은 많은 Vision task에서 Network의 학습을 위해 사용되는 데이터셋 입니다.
https://image-net.org/download-images
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정도로 고용량이니 메모리를 잘 확보하시고 사용하시길 바랍니다.
감사합니다.
'AI 개발 팁' 카테고리의 다른 글
[screen] screen 사용법 (0) | 2021.08.01 |
---|---|
[Vim] Terminal shell의 사용 : Vim keynote (0) | 2021.08.01 |
[Tmux] Terminal에서 다중창 띄우기 (0) | 2021.08.01 |
[github] pull / push 시 password 입력 안해도 되게 하기! (0) | 2021.07.30 |
[anaconda] anaconda, conda 사용하는 이유와 설치 방법 (0) | 2021.07.29 |