Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Klasifikasi Gambar - MXNet
Algoritma klasifikasi SageMaker gambar Amazon adalah algoritma pembelajaran yang diawasi yang mendukung klasifikasi multi-label. Dibutuhkan gambar sebagai input dan output satu atau lebih label yang ditetapkan untuk gambar itu. Ini menggunakan jaringan saraf convolutional yang dapat dilatih dari awal atau dilatih menggunakan pembelajaran transfer ketika sejumlah besar gambar pelatihan tidak tersedia
Format input yang direkomendasikan untuk algoritma klasifikasi SageMaker gambar Amazon adalah Apache MxNet Recordio.
catatan
Untuk mempertahankan interoperabilitas yang lebih baik dengan kerangka kerja pembelajaran mendalam yang ada, ini berbeda dari format data protobuf yang biasa digunakan oleh algoritme Amazon lainnya. SageMaker
Untuk informasi lebih lanjut tentang jaringan convolutional, lihat:
-
Pembelajaran residual mendalam untuk pengenalan gambar
Kaiming He, et al., Konferensi IEEE 2016 tentang Visi Komputer dan Pengenalan Pola
Topik
Antarmuka Input/Output untuk Algoritma Klasifikasi Gambar
Algoritma Klasifikasi SageMaker Gambar mendukung jenis konten RecorDio (application/x-recordio
) dan image (image/png
image/jpeg
,, danapplication/x-image
) untuk pelatihan dalam mode file, dan mendukung jenis konten RecorDio (application/x-recordio
) untuk pelatihan dalam mode pipa. Namun, Anda juga dapat berlatih dalam mode pipa menggunakan file gambar (image/png
,, danapplication/x-image
)image/jpeg
, tanpa membuat file RecorDo, dengan menggunakan format augmented manifest.
Pelatihan terdistribusi didukung untuk mode file dan mode pipa. Saat menggunakan jenis konten RecorDio dalam mode pipa, Anda harus mengatur S3DataDistributionType
to. S3DataSource
FullyReplicated
Algoritma ini mendukung model yang sepenuhnya direplikasi di mana data Anda disalin ke setiap mesin.
Algoritma mendukungimage/png
,image/jpeg
, dan application/x-image
untuk inferensi.
Berlatih dengan Format Recordio
Jika Anda menggunakan format RecorDo untuk pelatihan, tentukan keduanya train
dan validation
saluran sebagai nilai untuk InputDataConfig
parameter permintaan. CreateTrainingJob
Tentukan satu file RecorDo (.rec
) di train
saluran dan satu file Recordio di saluran. validation
Atur jenis konten untuk kedua saluranapplication/x-recordio
.
Berlatih dengan Format Gambar
Jika Anda menggunakan format Gambar untuk pelatihan, tentukan train
validation
,train_lst
,, dan validation_lst
saluran sebagai nilai untuk InputDataConfig
parameter CreateTrainingJob
permintaan. Tentukan data gambar individu (.jpg
atau .png
file) untuk train
dan validation
saluran. Tentukan satu .lst
file di masing-masing validation_lst
saluran train_lst
dan. Atur jenis konten untuk keempat saluran keapplication/x-image
.
catatan
SageMaker membaca data pelatihan dan validasi secara terpisah dari saluran yang berbeda, jadi Anda harus menyimpan data pelatihan dan validasi di folder yang berbeda.
.lst
File adalah file yang dipisahkan tab dengan tiga kolom yang berisi daftar file gambar. Kolom pertama menentukan indeks gambar, kolom kedua menentukan indeks label kelas untuk gambar, dan kolom ketiga menentukan jalur relatif dari file gambar. Indeks gambar di kolom pertama harus unik di semua gambar. Kumpulan indeks label kelas diberi nomor berturut-turut dan penomoran harus dimulai dengan 0. Misalnya, 0 untuk kelas kucing, 1 untuk kelas dog, dan seterusnya untuk kelas tambahan.
Berikut ini adalah contoh .lst
file:
5 1 your_image_directory/train_img_dog1.jpg
1000 0 your_image_directory/train_img_cat1.jpg
22 1 your_image_directory/train_img_dog2.jpg
Misalnya, jika gambar latihan Anda disimpan dis3://<your_bucket>/train/class_dog
,s3://<your_bucket>/train/class_cat
, dan seterusnya, tentukan jalur untuk train
saluran Anda sebagais3://<your_bucket>/train
, yang merupakan direktori tingkat atas untuk data Anda. Dalam .lst
file, tentukan jalur relatif untuk file individual bernama train_image_dog1.jpg
dalam direktori class_dog
kelas sebagaiclass_dog/train_image_dog1.jpg
. Anda juga dapat menyimpan semua file gambar Anda di bawah satu subdirektori di dalam train
direktori. Dalam hal ini, gunakan subdirektori itu untuk jalur relatif. Misalnya, s3://<your_bucket>/train/your_image_directory
.
Berlatih dengan Augmented Manifest Image Format
Format manifes yang diperbesar memungkinkan Anda melakukan pelatihan dalam mode Pipe menggunakan file gambar tanpa perlu membuat file RecorDio. Anda perlu menentukan saluran kereta dan validasi sebagai nilai untuk InputDataConfig
parameter CreateTrainingJob
permintaan. Saat menggunakan format, file manifes S3 perlu dibuat yang berisi daftar gambar dan anotasi yang sesuai. Format file manifes harus dalam format JSON Lines'source-ref'
tag yang menunjuk ke lokasi S3 gambar. Anotasi disediakan di bawah nilai "AttributeNames"
parameter seperti yang ditentukan dalam CreateTrainingJob
permintaan. Ini juga dapat berisi metadata tambahan di bawah metadata
tag, tetapi ini diabaikan oleh algoritma. Dalam contoh berikut, yang "AttributeNames"
terkandung dalam daftar referensi ["source-ref", "class"]
gambar dan anotasi. Nilai label yang sesuai adalah "0"
untuk gambar pertama dan “1”
untuk gambar kedua:
{"source-ref":"s3://image/filename1.jpg", "class":"0"} {"source-ref":"s3://image/filename2.jpg", "class":"1", "class-metadata": {"class-name": "cat", "type" : "groundtruth/image-classification"}}
Urutan "AttributeNames"
dalam file input penting saat melatih ImageClassification algoritma. Ini menerima data pipa dalam urutan tertentu, dengan image
pertama, diikuti oleh. label
Jadi "AttributeNames" dalam contoh ini disediakan dengan yang "source-ref"
pertama, diikuti oleh"class"
. Saat menggunakan ImageClassification algoritma dengan Augmented Manifest, nilai RecordWrapperType
parameter harus"RecordIO"
.
Pelatihan multi-label juga didukung dengan menentukan array nilai JSON. num_classes
Hyperparameter harus diatur agar sesuai dengan jumlah total kelas. Ada dua format label yang valid: multi-hot dan class-id.
Dalam format multi-hot, setiap label adalah vektor multi-hot encoded dari semua kelas, di mana setiap kelas mengambil nilai 0 atau 1. Dalam contoh berikut, ada tiga kelas. Gambar pertama diberi label dengan kelas 0 dan 2, sedangkan gambar kedua diberi label dengan kelas 2 saja:
{"image-ref": "s3://mybucket/sample01/image1.jpg", "class": "[1, 0, 1]"} {"image-ref": "s3://mybucket/sample02/image2.jpg", "class": "[0, 0, 1]"}
Dalam format class-id, setiap label adalah daftar id kelas, dari [0,num_classes
), yang berlaku untuk titik data. Contoh sebelumnya malah akan terlihat seperti ini:
{"image-ref": "s3://mybucket/sample01/image1.jpg", "class": "[0, 2]"} {"image-ref": "s3://mybucket/sample02/image2.jpg", "class": "[2]"}
Format multi-hot adalah default, tetapi dapat secara eksplisit diatur dalam tipe konten dengan label-format
parameter: Format class-id, "application/x-recordio;
label-format=multi-hot".
yang merupakan format yang dikeluarkan oleh, harus disetel secara eksplisit: GroundTruth "application/x-recordio;
label-format=class-id".
Untuk informasi selengkapnya tentang file manifes tambahan, lihatMenyediakan Metadata Set Data untuk Pekerjaan Pelatihan dengan File Manifes yang Ditambah.
Pelatihan Inkremental
Anda juga dapat menyemai pelatihan model baru dengan artefak dari model yang Anda latih sebelumnya. SageMaker Pelatihan tambahan menghemat waktu pelatihan ketika Anda ingin melatih model baru dengan data yang sama atau serupa. SageMaker model klasifikasi gambar hanya dapat diunggulkan dengan model klasifikasi gambar bawaan lainnya yang dilatih. SageMaker
Untuk menggunakan model yang telah dilatih sebelumnya, dalam CreateTrainingJob
permintaan, tentukan ChannelName
sebagai “model” dalam InputDataConfig
parameter. Atur saluran ContentType
untuk model keapplication/x-sagemaker-model
. Hiperparameter input dari model baru dan model terlatih yang Anda unggah ke saluran model harus memiliki pengaturan yang sama untuk parameternum_layers
, image_shape
dan num_classes
input. Parameter ini menentukan arsitektur jaringan. Untuk file model yang telah dilatih sebelumnya, gunakan artefak model terkompresi (dalam format.tar.gz) keluaran oleh. SageMaker Anda dapat menggunakan format RecorDio atau gambar untuk input data.
Inferensi dengan Algoritma Klasifikasi Gambar
Model yang dihasilkan dapat di-host untuk inferensi dan mendukung format yang dikodekan .jpg
dan .png
gambar sebagaiimage/png,
image/jpeg
, dan tipe konten. application/x-image
Gambar input diubah ukurannya secara otomatis. Outputnya adalah nilai probabilitas untuk semua kelas yang dikodekan dalam format JSON, atau dalam format teks JSON Lines
accept: application/jsonlines {"prediction": [prob_0, prob_1, prob_2, prob_3, ...]}
Untuk detail lebih lanjut tentang pelatihan dan inferensi, lihat contoh contoh contoh klasifikasi gambar contoh contoh contoh yang direferensikan dalam pendahuluan.
Rekomendasi Instans EC2 untuk Algoritma Klasifikasi Gambar
Untuk klasifikasi gambar, kami mendukung instance P2, P3, G4dn, dan G5. Sebaiknya gunakan instans GPU dengan lebih banyak memori untuk pelatihan dengan ukuran batch besar. Anda juga dapat menjalankan algoritme pada pengaturan multi-GPU dan multi-mesin untuk pelatihan terdistribusi. Kedua instance CPU (seperti C4) dan GPU (P2, P3, G4dn, atau G5) dapat digunakan untuk inferensi.
Klasifikasi Gambar Contoh Notebook
Untuk contoh buku catatan yang menggunakan algoritma klasifikasi SageMaker gambar, lihat Membangun dan Mendaftarkan Model Klasifikasi Gambar MXNet melalui Pipelines