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 gambar Amazon SageMaker AI 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 gambar Amazon SageMaker AI 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 AI Amazon lainnya. SageMaker
Untuk informasi lebih lanjut tentang jaringan convolutional, lihat:
-
Pembelajaran residual mendalam untuk pengenalan gambar
Kaiming He, et al., IEEE Konferensi 2016 tentang Visi Komputer dan Pengenalan Pola
Topik
Antarmuka Input/Output untuk Algoritma Klasifikasi Gambar
Algoritma SageMaker AI Image Classification mendukung jenis konten RecorDio (application/x-recordio
) dan image (image/png
image/jpeg
,, danapplication/x-image
) untuk pelatihan dalam mode file, dan mendukung tipe konten RecorDo (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 AI 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 JSONGaris'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 JSON array nilai. 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://amzn-s3-demo-bucket/sample01/image1.jpg", "class": "[1, 0, 1]"} {"image-ref": "s3://amzn-s3-demo-bucket/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://amzn-s3-demo-bucket/sample01/image1.jpg", "class": "[0, 2]"} {"image-ref": "s3://amzn-s3-demo-bucket/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, lihatAugmented Manifest Files untuk Pekerjaan Pelatihan.
Pelatihan Inkremental
Anda juga dapat menyemai pelatihan model baru dengan artefak dari model yang Anda latih sebelumnya dengan SageMaker AI. Pelatihan tambahan menghemat waktu pelatihan ketika Anda ingin melatih model baru dengan data yang sama atau serupa. SageMaker Model klasifikasi gambar AI hanya dapat diunggulkan dengan model klasifikasi gambar bawaan lain yang dilatih dalam SageMaker AI.
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 keluaran artefak model terkompresi (dalam format.tar.gz) oleh AI. 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 JSON format, atau dalam format teks JSON Garis untuk transformasi
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.
EC2Rekomendasi Instance untuk Algoritma Klasifikasi Gambar
Untuk klasifikasi gambar, kami mendukung instance P2, P3, G4dn, dan G5. Kami merekomendasikan penggunaan GPU instance 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 CPU instance (seperti C4) dan GPU (P2, P3, G4dn, atau G5) dapat digunakan untuk inferensi.
Klasifikasi Gambar Contoh Notebook
Untuk contoh buku catatan yang menggunakan algoritme klasifikasi gambar SageMaker AI, lihat Membuat dan Mendaftarkan Model Klasifikasi MXNet Gambar melalui SageMaker Pipelines