ILSVRC 2012 데이터 세트 설정

개시하다


ILSVRC 2012 데이터 세트의 사용 방법은 다음과 같습니다.이 데이터 집합은 데이터 용량이 커서 다운로드하는 데도 시간이 필요하고 디스크 용량이 부족할 수도 있다.오랜 시간 용량이 부족하다는 결론을 내리는 것은 슬프기 때문에 필요한 용량을 먼저 적으세요.훈련용 이미지 데이터가 압축된 상태는 138GB 용량으로 300GB 정도의 여유 용량이 없으면 사용할 수 없다.그리고 학습 단계에서 외부 HDD는 스토리지 I/O가 느려서 학습이 끝나지 않을 수도 있습니다.SSD가 내장된 PC가 필요할 수 있습니다.그런 PC가 없으면 클라우드 서비스를 이용할 수도 있다고 생각합니다.

데이터 세트의 구성


몇 개의 파일을 다운로드한 후에 스크립트를 사용하여 파일 구조를 구축하여 데이터 로더를 더욱 쉽게 사용할 수 있도록 합니다.이번 가설은 vg16,resnet18 등의 이미지 분류 모델의 학습(실제로 ptorch 창고의 example을 사용하여 민첩하게 훈련해야 한다)을 가정하지만 먼저 완성 형식에서 나타낸다.
데이터 세트의 디렉토리 구조
.
├── train
│   ├── n01440764
│   │   ├── n01440764_10026.JPEG
│   │   ├── n01440764_10027.JPEG
│   │   ├── n01440764_10029.JPEG
...
│   ├── n01443537
│   │   ├── n01443537_10007.JPEG
│   │   ├── n01443537_10014.JPEG
│   │   ├── n01443537_10025.JPEG
...
│   ├── n01484850
...
└── val
    ├── n01440764
    │   ├── ILSVRC2012_val_00000293.JPEG
    │   ├── ILSVRC2012_val_00002138.JPEG
    │   ├── ILSVRC2012_val_00003014.JPEG
    ├── n01443537
    │   ├── ILSVRC2012_val_00000236.JPEG
    │   ├── ILSVRC2012_val_00000262.JPEG
    │   ├── ILSVRC2012_val_00000307.JPEG
    ├── n01484850
...
train 이하는 훈련 데이터, val 이하는 검증 데이터(테스트 데이터 생략에 관한).그런 다음 레이어 3에서 n으로 시작하는 문자열(WordNetID)은 분류 단위입니다.
실제로 디렉토리에 있는 이미지를 열면 모두 동일한 이미지인지 확인할 수 있습니다.모형 학습에서 이런 분류의 종류는 0부터 시작하는 색인으로만 처리되기 때문에 각 ID의 뜻을 몰라도 학습에 어려움을 느끼지 않는다.
그러나 배운 모델로 추론을 할 때 분류명이 있는 것이 가장 좋다고 생각하기 때문에 아래 URL에서 얻을 수 있다(공식 이미지-net. org에서 찾았지만 찾지 못했다).
wget http://dl.caffe.berkeleyvision.org/caffe_ilsvrc12.tar.gz
이 압축 파일을 해동하면 tar xzvf caffe_ilsvrc12.tar.gz 현재 디렉터리에 여러 개의 텍스트 파일이 펼쳐집니다. synset_words.txt에는WordNetID와 분류 이름의 대응 관계가 포함되어 있습니다.처음 행만 표시됩니다.
$ head synset_words.txt
n01440764 tench, Tinca tinca
n01443537 goldfish, Carassius auratus
n01484850 great white shark, white shark, man-eater, man-eating shark, Carcharodon carcharias
n01491361 tiger shark, Galeocerdo cuvieri
n01494475 hammerhead, hammerhead shark
n01496331 electric ray, crampfish, numbfish, torpedo
n01498041 stingray
n01514668 cock
n01514859 hen
n01518878 ostrich, Struthio camelus
n01440764tench, Tinca tinca이다.tench 잉어의 일종인 것 같아요.Tinca tinca학명인 것 같아요.

데이터 세트 구축


ILSVRC 2012의 데이터 세트는 image-net입니다.기본 절차는 org에 로그인하여 데이터 집합을 보내는 다운로드 요청입니다.여기서는 잘 설명할 수 없기 때문에 생략하지만, 이러한 전제를 제거한 후의 처리에 관해서는 쓴다.
이번에는 훈련 데이터와 검증 데이터를 다운로드해 조개 스크립트로 데이터를 성형했다.우선 훈련 데이터를 다운로드한다.처음에 썼듯이 138GB가 있기 때문에 며칠 동안 방치할 것 같다(내 경우는 인터넷이 너무 약해서 8일이 걸렸다).
wget http://image-net.org/challenges/LSVRC/2012/dd31405981ef5f776aa17412e1f0c112/ILSVRC2012_img_train.tar
클라우드나 노트북에서 접근하여 조작할 때nohup를 명령 전에 설치하여 실행하면 ssh의 연결이 끊기고 다시 시도하는 것을 방지할 수 있다.
다운로드한 파일tar xf ILSVRC2012_img_train.tar의 동결해제(1~3시간 소요)와 <WordNetID>.tar의 파일은 더 동결해제가 필요하다.따라서 데이터 세트와 다음 스크립트를 ILSVRC2012_img_train.tar 디렉토리로 이동한 후 실행합니다.
#!/bin/sh

files="./n*.tar"
for filepath in ${files}
do
  filename=`basename ${filepath} .tar`
  mkdir ${filename}
  tar -xf ${filename}.tar -C ${filename}
  rm ${filepath}
done
train와 해동에 사용된 스크립트가 사라지면 훈련 데이터가 완성됩니다.
다음은 데이터를 검증하는 것이다.이 용량도 6GB 정도로, 필요에 따라 사용ILSVRC2012_img_train.tar.
wget http://www.image-net.org/challenges/LSVRC/2012/dd31405981ef5f776aa17412e1f0c112/ILSVRC2012_img_val.tar
이 파일을 데이터 세트의 nohup 디렉터리에 넣고 동결해제합니다.그래서 이번에 val 이런 도형의 이미지 파일을 펼쳤다.각 WordNetID의 디렉토리에 스크립트를 다운로드하여 ILSVRC2012_val_*.JPEG 디렉토리에 배치합니다.
wget https://raw.githubusercontent.com/soumith/imagenetloader.torch/master/valprep.sh
스크립트 내용을 볼수록 이미지 파일이 직접 이동하는 것을 발견할 수 있을 것 같습니다.필요하지 않은 파일을 삭제하면 데이터 집합이 완성됩니다.

주의 사항


https://github.com/cytsai/ilsvrc-cmyk-image-list 데이터 세트에 RGB가 아닌 CMYK 이미지와 PNG 형태의 파일이 하나만 섞여 있는 모습이 공개됐다.파일 형식을 확인한 코드일 경우 충돌이 발생할 수 있습니다.

좋은 웹페이지 즐겨찾기