imagenet 데이터 정리

4014 단어 deeplearning
앞의 백만 장의 그림 에 적 힌 imagenet 데이터 원본 크기 는 약 148 G 이 며, TF 레코드 형식 파일 로 정리 한 후 약 144 G 이 므 로 최소 300 G 크기 를 준비 해 야 한다.
참고:https://github.com/tensorflow/models/tree/master/research/inception#getting-started
1 iimagenet 사이트 에서http://image-net.org 등록, 사용자 이름과 비밀 번 호 를 적어 라.2 다운로드 코드.tensor flow 의 model zoom 입 니 다.https://github.com/tensorflow/models코드 는 models/research/inception/inception/data, 3 수정 download_and_preprocess_imagenet.sh 스 크 립 트 입 니 다. 제 가 고 친 결 과 는 다음 과 같 습 니 다. 주로 WORK_DIR, BUILD_SCRIPT, OUTPUT_DIRECTORY 세 개 입 니 다. 또한 BUILD_SCRIPT 을 실행 가능 한 것 으로 설정 하고 build_imagenet_data.py 파일 헤더 에 #!/usr/bin/env python 를 추 가 했 습 니 다. 목적 은 BUILD_SCRIPT 입 니 다.기본 값 은 셸 실행 가능 한 파일 입 니 다.

# usage:
#  ./download_and_preprocess_imagenet.sh [data-dir]
set -e

if [ -z "$1" ]; then
  echo "Usage: download_and_preprocess_imagenet.sh [data dir]"
  exit
fi

# Create the output and temporary directories.
DATA_DIR="${1%/}"
SCRATCH_DIR="${DATA_DIR}/raw-data/"
#mkdir -p "${DATA_DIR}"
#mkdir -p "${SCRATCH_DIR}"
#WORK_DIR="$0.runfiles/inception/inception"
WORK_DIR="/home/linlf/project/linlf/mlperf/reference/image_classification/dataset/inception"
# Download the ImageNet data.
LABELS_FILE="${WORK_DIR}/data/imagenet_lsvrc_2015_synsets.txt"
DOWNLOAD_SCRIPT="${WORK_DIR}/data/download_imagenet.sh"
"${DOWNLOAD_SCRIPT}" "${SCRATCH_DIR}" "${LABELS_FILE}"

# Note the locations of the train and validation data.
TRAIN_DIRECTORY="${SCRATCH_DIR}train/"
VALIDATION_DIRECTORY="${SCRATCH_DIR}validation/"

# Preprocess the validation data by moving the images into the appropriate
# sub-directory based on the label (synset) of the image.
echo "Organizing the validation data into sub-directories."
PREPROCESS_VAL_SCRIPT="${WORK_DIR}/data/preprocess_imagenet_validation_data.py"
VAL_LABELS_FILE="${WORK_DIR}/data/imagenet_2012_validation_synset_labels.txt"

"${PREPROCESS_VAL_SCRIPT}" "${VALIDATION_DIRECTORY}" "${VAL_LABELS_FILE}"

# Convert the XML files for bounding box annotations into a single CSV.
echo "Extracting bounding box information from XML."
BOUNDING_BOX_SCRIPT="${WORK_DIR}/data/process_bounding_boxes.py"
BOUNDING_BOX_FILE="${SCRATCH_DIR}/imagenet_2012_bounding_boxes.csv"
BOUNDING_BOX_DIR="${SCRATCH_DIR}bounding_boxes/"

"${BOUNDING_BOX_SCRIPT}" "${BOUNDING_BOX_DIR}" "${LABELS_FILE}" \
 | sort > "${BOUNDING_BOX_FILE}"
echo "Finished downloading and preprocessing the ImageNet data."

# Build the TFRecords version of the ImageNet data.
#BUILD_SCRIPT="${WORK_DIR}/build_imagenet_data"
BUILD_SCRIPT="${WORK_DIR}/data/build_imagenet_data_newdataset.py"
#OUTPUT_DIRECTORY="${DATA_DIR}"
# mime -- output new dir
OUTPUT_DIRECTORY="/home/linlf/dataset"
IMAGENET_METADATA_FILE="${WORK_DIR}/data/imagenet_metadata.txt"

"${BUILD_SCRIPT}" \
  --train_directory="${TRAIN_DIRECTORY}" \
  --validation_directory="${VALIDATION_DIRECTORY}" \
  --output_directory="${OUTPUT_DIRECTORY}" \
  --imagenet_metadata_file="${IMAGENET_METADATA_FILE}" \
  --labels_file="${LABELS_FILE}" \
  --bounding_box_file="${BOUNDING_BOX_FILE}"

4. build_imagenet_data.py 에서 몇 개의 TF Record 훈련 집 과 TF Record 테스트 집 을 자 유 롭 게 조정 할 수 있 습 니까? 코드 110 줄 에서 다음 과 같이 저 는 512 개의 TF Record 훈련 집 과 64 개의 TF Record 테스트 집 으로 조정 할 수 있 습 니 다.
 tf.app.flags.DEFINE_integer('train_shards', 512,
                            'Number of shards in training TFRecord files.')
 tf.app.flags.DEFINE_integer('validation_shards', 64,
                            'Number of shards in validation TFRecord files.')

좋은 웹페이지 즐겨찾기