Mendownload, melakukan pra-pemrosesan, dan mengupload set data ImageNet
Dokumen ini menjelaskan cara mendownload, melakukan pra-pemrosesan, dan mengupload set data ImageNet untuk digunakan dengan arsitektur VM Cloud TPU.
ImageNet adalah database gambar. Gambar dalam database disusun dalam hierarki, dengan setiap node hierarki digambarkan oleh ratusan dan ribuan gambar.
Ukuran database ImageNet berarti dapat memerlukan waktu yang cukup lama untuk melatih model. Alternatifnya adalah menggunakan versi demonstrasi set data, yang disebut fake_imagenet. Versi demonstrasi ini memungkinkan Anda menguji model, sekaligus mengurangi persyaratan penyimpanan dan waktu yang terkait dengan penggunaan database ImageNet lengkap.
Melakukan pra-pemrosesan set data ImageNet lengkap
Set data ImageNet terdiri dari tiga bagian, data pelatihan, data validasi, dan label gambar.
Data pelatihan berisi 1.000 kategori dan 1,2 juta gambar, yang dikemas untuk didownload. Data validasi dan pengujian tidak terdapat dalam data pelatihan ImageNet (duplikat telah dihapus).
Data validasi dan pengujian terdiri dari 150.000 foto, yang dikumpulkan dari Flickr dan mesin telusur lainnya, yang diberi label secara manual dengan keberadaan atau tidak adanya 1.000 kategori objek. 1.000 kategori objek berisi node internal dan node daun ImageNet, tetapi tidak tumpang-tindih satu sama lain. Subset acak dari 50.000 gambar dengan label telah dirilis sebagai data validasi bersama dengan daftar 1.000 kategori. Gambar yang tersisa digunakan untuk evaluasi dan telah dirilis tanpa label.
Langkah-langkah untuk melakukan pra-pemrosesan set data ImageNet lengkap
Ada lima langkah untuk menyiapkan set data ImageNet lengkap agar dapat digunakan oleh model machine learning:
- Pastikan Anda memiliki ruang di target download.
- Siapkan direktori target.
- Daftar di situs ImageNet dan minta izin download permission.
Memverifikasi persyaratan ruang
Baik Anda mendownload set data ke komputer lokal maupun ke instance VM, Anda memerlukan sekitar 300 GiB ruang yang tersedia di target download.
Alokasi disk default untuk VM TPU adalah 10 GB. Karena download ke VM TPU Anda memerlukan 300 GiB, jika Anda akan mendownload ke instance VM TPU, Anda harus menambahkan volume penyimpanan blok yang tahan lama dengan ruang tambahan untuk menyelesaikan download atau meningkatkan ukuran disk booting di TPU. Di VM TPU, Anda dapat memeriksa penyimpanan yang tersedia dengan perintah df -ha. Untuk mengetahui informasi selengkapnya tentang mengubah ukuran disk, lihat
Mengubah ukuran dan performa yang disediakan dari volume Hyperdisk
dan Mengubah ukuran volume Persistent Disk.
Saat menambahkan penyimpanan blok yang tahan lama, pastikan untuk mencatat direktori tempat Anda memasang disk. Misalnya: /mnt/disks/mnt-dir.
Menyiapkan direktori target
Di komputer lokal atau instance VM, siapkan struktur direktori untuk menyimpan data yang didownload.
Ubah ke direktori tempat Anda ingin mendownload data. Jika Anda menggunakan persistent disk, ganti DATASET_ROOT_DIR dengan direktori tempat disk Anda dipasang, misalnya,
/mnt/disks/mnt-dir:cd DATASET_ROOT_DIR
Buat direktori, misalnya,
imagenet, di target download (komputer lokal atau VM TPU).mkdir imagenetDi direktori ini, buat dua subdirektori:
traindanvalidation.mkdir imagenet/train mkdir imagenet/validationEkspor direktori
imagenetsebagaiIMAGENET_HOME.export IMAGENET_HOME=DATASET_ROOT_DIR/imagenet sudo chown ${USER} ${IMAGENET_HOME}
Mendaftar dan meminta izin untuk mendownload set data
Daftar di situs ImageNet. Anda tidak dapat mendownload set data hingga ImageNet mengonfirmasi pendaftaran Anda dan mengirimkan email konfirmasi. Jika Anda tidak menerima email konfirmasi dalam beberapa hari, hubungi dukungan ImageNet untuk mengetahui alasan pendaftaran Anda belum dikonfirmasi. Setelah pendaftaran Anda dikonfirmasi, Anda dapat mendownload set data. Tutorial Cloud TPU yang menggunakan set data ImageNet menggunakan gambar dari ImageNet Large Scale Visual Recognition Challenge 2012 (ILSVRC2012).
Mendownload set data ImageNet
Dari situs download LSRVC 2012, buka bagian Gambar di halaman dan klik kanan "Gambar pelatihan (Tugas 1 & 2)". URL untuk mendownload bagian terbesar dari set pelatihan. Simpan URL.
Klik kanan "Gambar pelatihan (Tugas 3)" untuk mendapatkan URL set pelatihan kedua. Simpan URL.
Klik kanan "Gambar validasi (semua tugas)" untuk mendapatkan URL set data validasi. Simpan URL.
Jika Anda mendownload file ImageNet ke komputer lokal, Anda harus menyalin direktori di komputer lokal ke direktori
$IMAGENET_HOMEyang sesuai di instance VM. Menyalin set data ImageNet dari host lokal ke instance VM memerlukan waktu sekitar 13 jam.Sebelum menyalin set data ImageNet ke VM TPU, Anda harus mengidentifikasi nama instance VM TPU. Untuk melakukannya, hubungkan ke VM TPU menggunakan SSH. Nama instance VM ditampilkan di command prompt setelah simbol
@.Gunakan perintah berikut untuk menyalin file di bagian ~/imagenet di komputer lokal ke
$IMAGENET_HOMEdi VM.gcloud compute scp --recurse $IMAGENET_HOME USERNAME@VM_INSTANCE_NAME:~/imagenet
Dari
$IMAGENET_HOME, download file "Gambar pelatihan (Tugas 1 & 2)" menggunakan URL yang disimpan.File "Gambar pelatihan (Tugas 1 & 2)" adalah set pelatihan besar. Ukurannya 138 GiB, dan jika Anda mendownload ke VM TPU menggunakan Cloud Shell, download akan memerlukan waktu sekitar 40 jam. Jika Cloud Shell kehilangan koneksinya ke VM, Anda dapat menambahkan
nohupke perintah atau menggunakan layar.cd $IMAGENET_HOME nohup wget https://image-net.org/data/ILSVRC/2012/ILSVRC2012_img_train.tar
Ganti URL dengan URL yang sebelumnya Anda simpan untuk "Gambar pelatihan (Tugas 1 & 2)", karena URL mungkin telah berubah.
Ekstrak direktori pelatihan individual ke direktori
$IMAGENET_HOME/trainmenggunakan perintah berikut. Ekstraksi memerlukan waktu antara 1 hingga 3 jam.tar xf $IMAGENET_HOME/ILSVRC2012_img_train.tar -C $IMAGENET_HOME/train
Ekstrak file tar pelatihan individual yang terletak di direktori
$IMAGENET_HOME/train, seperti yang ditunjukkan dalam skrip berikut:cd $IMAGENET_HOME/train for f in *.tar; do d=
basename $f .tarmkdir $d tar xf $f -C $d doneHapus file tar setelah Anda mengekstraknya untuk mengosongkan ruang disk.
Dari
$IMAGENET_HOME, download file "Gambar pelatihan (Tugas 3)" menggunakan URL yang disimpan.File "Gambar pelatihan (Tugas 3)" berukuran 728 MB dan hanya memerlukan waktu beberapa menit untuk didownload, sehingga Anda tidak perlu mengambil tindakan pencegahan agar tidak kehilangan koneksi Cloud Shell.
wget https://image-net.org/data/ILSVRC/2012/ILSVRC2012_img_train_t3.tarGanti URL dengan URL yang sebelumnya Anda simpan untuk "Gambar pelatihan (Tugas 3)", karena URL mungkin telah berubah.
Ekstrak direktori pelatihan individual ke direktori
$IMAGENET_HOME/trainmenggunakan perintah berikut.tar xf $IMAGENET_HOME/ILSVRC2012_img_train_t3.tar -C $IMAGENET_HOME/train
Ekstrak file tar pelatihan individual yang terletak di direktori
$IMAGENET_HOME/train, seperti yang ditunjukkan dalam skrip berikut:cd ${IMAGENET_HOME}/train for f in *.tar; do d=`basename $f .tar` mkdir $d tar xf $f -C $d done
Hapus file tar setelah Anda mengekstraknya untuk mengosongkan ruang disk.
Dari
$IMAGENET_HOME, download file "Gambar validasi (semua tugas)" menggunakan URL yang disimpan.Saat mendownload file "Gambar validasi (semua tugas)", Cloud Shell Anda mungkin terputus. Anda dapat menggunakan
nohupatau layar untuk mencegah Cloud Shell terputus.wget https://image-net.org/data/ILSVRC/2012/ILSVRC2012_img_val.tarGanti URL dengan URL yang sebelumnya Anda simpan untuk "Gambar validasi (semua tugas)", karena URL mungkin telah berubah.
Download ini memerlukan waktu sekitar 30 menit.
Ekstrak file validasi individual ke direktori
$IMAGENET_HOME/validationmenggunakan perintah berikut.tar xf $IMAGENET_HOME/ILSVRC2012_img_val.tar -C $IMAGENET_HOME/validation
Jika Anda mendownload file validasi ke komputer lokal, Anda harus menyalin direktori
$IMAGENET_HOME/validationdi komputer lokal ke direktori$IMAGENET_HOME/validationdi instance VM. Operasi penyalinan ini memerlukan waktu sekitar 30 menit.Download file label.
wget -O $IMAGENET_HOME/synset_labels.txt \ https://raw.githubusercontent.com/tensorflow/models/master/research/slim/datasets/imagenet_2012_validation_synset_labels.txt
Jika Anda mendownload file label ke komputer lokal, Anda harus menyalinnya ke direktori
$IMAGENET_HOMEdi komputer lokal ke$IMAGENET_HOMEdi instance VM. Operasi penyalinan ini memerlukan waktu beberapa detik.Nama subdirektori pelatihan (misalnya, n03062245) adalah "ID WordNet" (wnid). ImageNet API menampilkan pemetaan ID WordNet ke label validasi terkait dalam file
synset_labels.txt. Synset dalam konteks ini adalah grup gambar yang mirip secara visual.
Memproses set data Imagenet dan, secara opsional, mengupload ke Cloud Storage
Download skrip
imagenet_to_gcs.pydari GitHub:wget https://raw.githubusercontent.com/tensorflow/tpu/master/tools/datasets/imagenet_to_gcs.pyJika Anda mengupload set data ke Cloud Storage:
Gunakan bucket yang ada atau buat bucket baru dengan mengikuti petunjuk di Membuat bucket.
Tentukan lokasi bucket penyimpanan untuk mengupload set data ImageNet:
export STORAGE_BUCKET=gs://BUCKET_NAME
Jika Anda mengupload set data ke komputer lokal atau VM, tentukan direktori data untuk menyimpan set data:
(vm)$ export DATA_DIR=$IMAGENET_HOME/DATASET_DIRECTORY
Instal library berikut di komputer Anda atau di lingkungan virtual:
pip3 install google-cloud-storage pip3 install tensorflowJalankan skrip untuk melakukan pra-pemrosesan set data mentah sebagai TFRecords dan menguploadnya ke Cloud Storage menggunakan perintah berikut:
python3 imagenet_to_gcs.py \ --project=$PROJECT \ --gcs_output_path=$STORAGE_BUCKET \ --raw_data_dir=$IMAGENET_HOME \ --local_scratch_dir=$IMAGENET_HOME/tf_records
Skrip ini menghasilkan sekumpulan direktori (untuk pelatihan dan validasi) dalam bentuk:
${DATA_DIR}/train-00000-of-01024
${DATA_DIR}/train-00001-of-01024
...
${DATA_DIR}/train-01023-of-01024
dan
${DATA_DIR}/validation-00000-of-00128
${DATA_DIR}/validation-00001-of-00128
...
${DATA_DIR}/validation-00127-of-00128
Setelah data diupload ke bucket Cloud, jalankan model dan tetapkan --data_dir=${DATA_DIR}.