

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Klasifikasi Gambar - TensorFlow
<a name="image-classification-tensorflow"></a>

[Algoritma Amazon SageMaker Image Classification - adalah TensorFlow algoritma pembelajaran yang diawasi yang mendukung pembelajaran transfer dengan banyak model yang telah dilatih sebelumnya dari Hub. TensorFlow ](https://tfhub.dev/s?fine-tunable=yes&module-type=image-classification&subtype=module,placeholder&tf-version=tf2) Gunakan pembelajaran transfer untuk menyempurnakan salah satu model terlatih yang tersedia pada kumpulan data Anda sendiri, meskipun sejumlah besar data gambar tidak tersedia. Algoritma klasifikasi gambar mengambil gambar sebagai input dan menghasilkan probabilitas untuk setiap label kelas yang disediakan. Kumpulan data pelatihan harus terdiri dari gambar dalam format.jpg, .jpeg, atau .png. Halaman ini mencakup informasi tentang rekomendasi instans Amazon EC2 dan contoh buku catatan untuk Klasifikasi Gambar -. TensorFlow

**Topics**
+ [Cara menggunakan Klasifikasi SageMaker Gambar - TensorFlow algoritma](IC-TF-how-to-use.md)
+ [Antarmuka input dan output untuk Klasifikasi Gambar - TensorFlow algoritma](IC-TF-inputoutput.md)
+ [Rekomendasi instans Amazon EC2 untuk Klasifikasi Gambar - algoritma TensorFlow](#IC-TF-instances)
+ [Klasifikasi Gambar - TensorFlow contoh buku catatan](#IC-TF-sample-notebooks)
+ [Bagaimana Klasifikasi Gambar - TensorFlow Bekerja](IC-TF-HowItWorks.md)
+ [TensorFlow Model Hub](IC-TF-Models.md)
+ [Klasifikasi Gambar - TensorFlow Hyperparameters](IC-TF-Hyperparameter.md)
+ [Menyetel Klasifikasi Gambar - TensorFlow model](IC-TF-tuning.md)

# Cara menggunakan Klasifikasi SageMaker Gambar - TensorFlow algoritma
<a name="IC-TF-how-to-use"></a>

Anda dapat menggunakan Klasifikasi Gambar - TensorFlow sebagai algoritma bawaan Amazon SageMaker AI. Bagian berikut menjelaskan cara menggunakan Klasifikasi Gambar - TensorFlow dengan SageMaker AI Python SDK. Untuk informasi tentang cara menggunakan Klasifikasi Gambar - TensorFlow dari UI Amazon SageMaker Studio Classic, lihat[SageMaker JumpStart model terlatih](studio-jumpstart.md).

 TensorFlow Algoritma Klasifikasi Gambar - mendukung pembelajaran transfer menggunakan salah satu model TensorFlow Hub terlatih sebelumnya yang kompatibel. Untuk daftar semua model terlatih yang tersedia, lihat[TensorFlow Model Hub](IC-TF-Models.md). Setiap model yang telah dilatih sebelumnya memiliki keunikan`model_id`. Contoh berikut menggunakan MobileNet V2 1.00 224 (`model_id`:`tensorflow-ic-imagenet-mobilenet-v2-100-224-classification-4`) untuk menyempurnakan dataset kustom. Model yang telah dilatih sebelumnya semuanya telah diunduh sebelumnya dari TensorFlow Hub dan disimpan dalam bucket Amazon S3 sehingga pekerjaan pelatihan dapat berjalan dalam isolasi jaringan. Gunakan artefak pelatihan model yang dibuat sebelumnya ini untuk membangun AI Estimator. SageMaker 

Pertama, ambil URI image Docker, URI skrip pelatihan, dan URI model yang telah dilatih sebelumnya. Kemudian, ubah hyperparameters sesuai keinginan Anda. Anda dapat melihat kamus Python dari semua hyperparameters yang tersedia dan nilai defaultnya dengan. `hyperparameters.retrieve_default` Untuk informasi selengkapnya, lihat [Klasifikasi Gambar - TensorFlow Hyperparameters](IC-TF-Hyperparameter.md). Gunakan nilai-nilai ini untuk membangun SageMaker AI Estimator.

**catatan**  
Nilai hyperparameter default berbeda untuk model yang berbeda. Untuk model yang lebih besar, ukuran batch default lebih kecil dan `train_only_top_layer` hyperparameter diatur ke`"True"`.

Contoh ini menggunakan [https://www.tensorflow.org/datasets/catalog/tf_flowers](https://www.tensorflow.org/datasets/catalog/tf_flowers)dataset, yang berisi lima kelas gambar bunga. Kami mengunduh dataset sebelumnya dari TensorFlow bawah lisensi Apache 2.0 dan membuatnya tersedia dengan Amazon S3. Untuk menyempurnakan model Anda, hubungi `.fit` menggunakan lokasi Amazon S3 dari kumpulan data pelatihan Anda.

```
from sagemaker import image_uris, model_uris, script_uris, hyperparameters
from sagemaker.estimator import Estimator

model_id, model_version = "tensorflow-ic-imagenet-mobilenet-v2-100-224-classification-4", "*"
training_instance_type = "ml.p3.2xlarge"

# Retrieve the Docker image
train_image_uri = image_uris.retrieve(model_id=model_id,model_version=model_version,image_scope="training",instance_type=training_instance_type,region=None,framework=None)

# Retrieve the training script
train_source_uri = script_uris.retrieve(model_id=model_id, model_version=model_version, script_scope="training")

# Retrieve the pretrained model tarball for transfer learning
train_model_uri = model_uris.retrieve(model_id=model_id, model_version=model_version, model_scope="training")

# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(model_id=model_id, model_version=model_version)

# [Optional] Override default hyperparameters with custom values
hyperparameters["epochs"] = "5"

# The sample training data is available in the following S3 bucket
training_data_bucket = f"jumpstart-cache-prod-{aws_region}"
training_data_prefix = "training-datasets/tf_flowers/"

training_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}"

output_bucket = sess.default_bucket()
output_prefix = "jumpstart-example-ic-training"
s3_output_location = f"s3://{output_bucket}/{output_prefix}/output"

# Create SageMaker Estimator instance
tf_ic_estimator = Estimator(
    role=aws_role,
    image_uri=train_image_uri,
    source_dir=train_source_uri,
    model_uri=train_model_uri,
    entry_point="transfer_learning.py",
    instance_count=1,
    instance_type=training_instance_type,
    max_run=360000,
    hyperparameters=hyperparameters,
    output_path=s3_output_location,
)

# Use S3 path of the training data to launch SageMaker TrainingJob
tf_ic_estimator.fit({"training": training_dataset_s3_path}, logs=True)
```

# Antarmuka input dan output untuk Klasifikasi Gambar - TensorFlow algoritma
<a name="IC-TF-inputoutput"></a>

Setiap model terlatih yang tercantum dalam Model TensorFlow Hub dapat disetel dengan baik ke kumpulan data apa pun dengan sejumlah kelas gambar. Perhatikan cara memformat data pelatihan Anda untuk masukan ke TensorFlow model Klasifikasi Gambar.
+ **Format input data pelatihan:** Data pelatihan Anda harus berupa direktori dengan subdirektori sebanyak jumlah kelas. Setiap subdirektori harus berisi gambar milik kelas itu dalam format.jpg, .jpeg, atau .png.

Berikut ini adalah contoh struktur direktori input. Contoh dataset ini memiliki dua kelas: `roses` dan`dandelion`. File gambar di setiap folder kelas dapat memiliki nama apa pun. Direktori input harus di-host di bucket Amazon S3 dengan jalur yang mirip dengan berikut ini:. `s3://bucket_name/input_directory/` Perhatikan bahwa trailing `/` diperlukan.

```
input_directory
    |--roses
        |--abc.jpg
        |--def.jpg
    |--dandelion
        |--ghi.jpg
        |--jkl.jpg
```

Model terlatih mengeluarkan file pemetaan label yang memetakan nama folder kelas ke indeks dalam daftar probabilitas kelas keluaran. Pemetaan ini dalam urutan abjad. Misalnya, pada contoh sebelumnya, kelas dandelion adalah indeks 0 dan kelas mawar adalah indeks 1. 

Setelah pelatihan, Anda memiliki model yang disetel dengan baik yang dapat Anda latih lebih lanjut menggunakan pelatihan tambahan atau menyebarkan untuk inferensi. TensorFlow Algoritma Klasifikasi Gambar secara otomatis menambahkan tanda tangan pra-pemrosesan dan pasca-pemrosesan ke model yang disetel dengan baik sehingga dapat mengambil gambar sebagai probabilitas kelas input dan pengembalian. Indeks kelas pemetaan file ke label kelas disimpan bersama dengan model. 

## Pelatihan tambahan
<a name="IC-TF-incremental-training"></a>

Anda 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.

**catatan**  
Anda hanya dapat menyemai Klasifikasi SageMaker Gambar - TensorFlow model dengan Klasifikasi Gambar lain - TensorFlow model yang dilatih dalam SageMaker AI. 

Anda dapat menggunakan kumpulan data apa pun untuk pelatihan tambahan, selama kumpulan kelas tetap sama. Langkah pelatihan inkremental mirip dengan langkah fine-tuning, tetapi alih-alih memulai dengan model yang telah dilatih sebelumnya, Anda mulai dengan model fine-tuning yang ada. Untuk contoh pelatihan tambahan dengan TensorFlow algoritma SageMaker AI Image Classification -, lihat buku catatan contoh [Pengantar SageMaker TensorFlow - Klasifikasi Gambar](https://github.com/aws/amazon-sagemaker-examples/blob/main/introduction_to_amazon_algorithms/image_classification_tensorflow/Amazon_TensorFlow_Image_Classification.ipynb).

## Inferensi dengan Klasifikasi Gambar - algoritma TensorFlow
<a name="IC-TF-inference"></a>

Anda dapat meng-host model yang disetel dengan baik yang dihasilkan dari pelatihan Klasifikasi TensorFlow Gambar Anda untuk inferensi. Setiap gambar input untuk inferensi harus dalam`.jpg`,. `jpeg`, atau `.png` format dan menjadi tipe konten`application/x-image`. Klasifikasi Gambar - TensorFlow algoritma mengubah ukuran gambar input secara otomatis. 

Menjalankan inferensi menghasilkan nilai probabilitas, label kelas untuk semua kelas, dan label prediksi yang sesuai dengan indeks kelas dengan probabilitas tertinggi yang dikodekan dalam format JSON. Klasifikasi Gambar - TensorFlow model memproses satu gambar per permintaan dan hanya menghasilkan satu baris. Berikut ini adalah contoh respons format JSON:

```
accept: application/json;verbose

 {"probabilities": [prob_0, prob_1, prob_2, ...],
  "labels":        [label_0, label_1, label_2, ...],
  "predicted_label": predicted_label}
```

Jika `accept` diatur ke`application/json`, maka model hanya menghasilkan probabilitas. Untuk informasi lebih lanjut tentang pelatihan dan inferensi dengan TensorFlow algoritma Klasifikasi Gambar -, lihat buku catatan contoh [Pengantar SageMaker TensorFlow - Klasifikasi Gambar](https://github.com/aws/amazon-sagemaker-examples/blob/main/introduction_to_amazon_algorithms/image_classification_tensorflow/Amazon_TensorFlow_Image_Classification.ipynb).

## Rekomendasi instans Amazon EC2 untuk Klasifikasi Gambar - algoritma TensorFlow
<a name="IC-TF-instances"></a>

Klasifikasi Gambar - TensorFlow algoritma mendukung semua instans CPU dan GPU untuk pelatihan, termasuk:
+ `ml.p2.xlarge`
+ `ml.p2.16xlarge`
+ `ml.p3.2xlarge`
+ `ml.p3.16xlarge`
+ `ml.g4dn.xlarge`
+ `ml.g4dn.16.xlarge`
+ `ml.g5.xlarge`
+ `ml.g5.48xlarge`

Kami merekomendasikan instans GPU dengan lebih banyak memori untuk pelatihan dengan ukuran batch besar. Instance CPU (seperti M5) dan GPU (P2, P3, G4dn, atau G5) dapat digunakan untuk inferensi.

## Klasifikasi Gambar - TensorFlow contoh buku catatan
<a name="IC-TF-sample-notebooks"></a>

Untuk informasi selengkapnya tentang cara menggunakan TensorFlow algoritma Klasifikasi SageMaker Gambar - untuk pembelajaran transfer pada kumpulan data khusus, lihat buku catatan [Pengantar SageMaker TensorFlow - Klasifikasi Gambar](https://github.com/aws/amazon-sagemaker-examples/blob/main/introduction_to_amazon_algorithms/image_classification_tensorflow/Amazon_TensorFlow_Image_Classification.ipynb).

Untuk petunjuk cara membuat dan mengakses instance notebook Jupyter yang dapat Anda gunakan untuk menjalankan contoh di SageMaker AI, lihat. [Instans SageMaker notebook Amazon](nbi.md) Setelah Anda membuat instance notebook dan membukanya, pilih tab **Contoh SageMaker AI** untuk melihat daftar semua sampel SageMaker AI. Untuk membuka buku catatan, pilih tab **Use** dan pilih **Create copy**.

# Bagaimana Klasifikasi Gambar - TensorFlow Bekerja
<a name="IC-TF-HowItWorks"></a>

Klasifikasi Gambar - TensorFlow algoritma mengambil gambar sebagai input dan mengklasifikasikannya ke dalam salah satu label kelas output. Berbagai jaringan pembelajaran mendalam seperti MobileNet, ResNet, Inception, dan EfficientNet sangat akurat untuk klasifikasi gambar. Ada juga jaringan pembelajaran mendalam yang dilatih pada kumpulan data gambar besar, seperti ImageNet, yang memiliki lebih dari 11 juta gambar dan hampir 11.000 kelas. Setelah jaringan dilatih dengan ImageNet data, Anda kemudian dapat menyempurnakan jaringan pada kumpulan data dengan fokus khusus untuk melakukan tugas klasifikasi yang lebih spesifik. TensorFlow Algoritma Klasifikasi SageMaker Gambar Amazon mendukung pembelajaran transfer pada banyak model yang telah dilatih sebelumnya yang tersedia di TensorFlow Hub.

Menurut jumlah label kelas dalam data pelatihan Anda, lapisan klasifikasi dilampirkan ke model TensorFlow Hub yang telah dilatih sebelumnya pilihan Anda. Lapisan klasifikasi terdiri dari lapisan putus sekolah, lapisan padat, dan lapisan yang terhubung sepenuhnya dengan regularizer 2-norma yang diinisialisasi dengan bobot acak. Model ini memiliki hiperparameter untuk tingkat putus sekolah dari lapisan putus sekolah dan faktor regularisasi L2 untuk lapisan padat. Anda kemudian dapat menyempurnakan seluruh jaringan (termasuk model yang telah dilatih sebelumnya) atau hanya lapisan klasifikasi teratas pada data pelatihan baru. Dengan metode pembelajaran transfer ini, pelatihan dengan kumpulan data yang lebih kecil dimungkinkan.

# TensorFlow Model Hub
<a name="IC-TF-Models"></a>

Model terlatih berikut tersedia untuk digunakan untuk pembelajaran transfer dengan TensorFlow algoritma Klasifikasi Gambar -. 

Model berikut bervariasi secara signifikan dalam ukuran, jumlah parameter model, waktu pelatihan, dan latensi inferensi untuk setiap kumpulan data tertentu. Model terbaik untuk kasus penggunaan Anda bergantung pada kompleksitas kumpulan data fine-tuning Anda dan persyaratan apa pun yang Anda miliki pada waktu pelatihan, latensi inferensi, atau akurasi model.


| Nama Model | `model_id` | Sumber | 
| --- | --- | --- | 
| MobileNet V2 1,00 224 | `tensorflow-ic-imagenet-mobilenet-v2-100-224-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/mobilenet_v2_100_224/classification/4) | 
| MobileNet V2 0,75 224 | `tensorflow-ic-imagenet-mobilenet-v2-075-224-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/mobilenet_v2_075_224/classification/4) | 
| MobileNet V2 0,50 224 | `tensorflow-ic-imagenet-mobilenet-v2-050-224-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/mobilenet_v2_050_224/classification/4) | 
| MobileNet V2 0,35 224 | `tensorflow-ic-imagenet-mobilenet-v2-035-224-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/mobilenet_v2_035_224/classification/4) | 
| MobileNet V2 1,40 224 | `tensorflow-ic-imagenet-mobilenet-v2-140-224-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/mobilenet_v2_140_224/classification/4) | 
| MobileNet V2 1,30 224 | `tensorflow-ic-imagenet-mobilenet-v2-130-224-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/mobilenet_v2_130_224/classification/4) | 
| MobileNet V2 | `tensorflow-ic-tf2-preview-mobilenet-v2-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/tf2-preview/mobilenet_v2/classification/4) | 
| Asalnya V3 | `tensorflow-ic-imagenet-inception-v3-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/inception_v3/classification/4) | 
| Inception V2 | `tensorflow-ic-imagenet-inception-v2-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/inception_v2/classification/4) | 
| Asalnya V1 | `tensorflow-ic-imagenet-inception-v1-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/inception_v1/classification/4) | 
| Pratinjau V3 Inception | `tensorflow-ic-tf2-preview-inception-v3-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/tf2-preview/inception_v3/classification/4) | 
| Inception V2 ResNet  | `tensorflow-ic-imagenet-inception-resnet-v2-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/inception_resnet_v2/classification/4) | 
| ResNet V2 50 | `tensorflow-ic-imagenet-resnet-v2-50-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/resnet_v2_50/classification/4) | 
| ResNet V2 101 | `tensorflow-ic-imagenet-resnet-v2-101-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/resnet_v2_101/classification/4) | 
| ResNet V2 152 | `tensorflow-ic-imagenet-resnet-v2-152-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/resnet_v2_152/classification/4) | 
| ResNet V1 50 | `tensorflow-ic-imagenet-resnet-v1-50-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/resnet_v1_50/classification/4) | 
| ResNet V1 101 | `tensorflow-ic-imagenet-resnet-v1-101-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/resnet_v1_101/classification/4) | 
| ResNet V1 152 | `tensorflow-ic-imagenet-resnet-v1-152-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/resnet_v1_152/classification/4) | 
| ResNet 50 | `tensorflow-ic-imagenet-resnet-50-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/resnet_50/classification/1) | 
| EfficientNet B0 | `tensorflow-ic-efficientnet-b0-classification-1` | [TensorFlow Tautan hub](https://tfhub.dev/google/efficientnet/b0/classification/1) | 
| EfficientNet B1 | `tensorflow-ic-efficientnet-b1-classification-1` | [TensorFlow Tautan hub](https://tfhub.dev/google/efficientnet/b1/classification/1) | 
| EfficientNet B2 | `tensorflow-ic-efficientnet-b2-classification-1` | [TensorFlow Tautan hub](https://tfhub.dev/google/efficientnet/b2/classification/1) | 
| EfficientNet B3 | `tensorflow-ic-efficientnet-b3-classification-1` | [TensorFlow Tautan hub](https://tfhub.dev/google/efficientnet/b3/classification/1) | 
| EfficientNet B4 | `tensorflow-ic-efficientnet-b4-classification-1` | [TensorFlow Tautan hub](https://tfhub.dev/google/efficientnet/b4/classification/1) | 
| EfficientNet B5 | `tensorflow-ic-efficientnet-b5-classification-1` | [TensorFlow Tautan hub](https://tfhub.dev/google/efficientnet/b5/classification/1) | 
| EfficientNet B6 | `tensorflow-ic-efficientnet-b6-classification-1` | [TensorFlow Tautan hub](https://tfhub.dev/google/efficientnet/b6/classification/1) | 
| EfficientNet B7 | `tensorflow-ic-efficientnet-b7-classification-1` | [TensorFlow Tautan hub](https://tfhub.dev/google/efficientnet/b7/classification/1) | 
| EfficientNet B0 Lite | `tensorflow-ic-efficientnet-lite0-classification-2` | [TensorFlow Tautan hub](https://tfhub.dev/tensorflow/efficientnet/lite0/classification/2) | 
| EfficientNet B1 Lite | `tensorflow-ic-efficientnet-lite1-classification-2` | [TensorFlow Tautan hub](https://tfhub.dev/tensorflow/efficientnet/lite1/classification/2) | 
| EfficientNet B2 Lite | `tensorflow-ic-efficientnet-lite2-classification-2` | [TensorFlow Tautan hub](https://tfhub.dev/tensorflow/efficientnet/lite2/classification/2) | 
| EfficientNet B3 Lite | `tensorflow-ic-efficientnet-lite3-classification-2` | [TensorFlow Tautan hub](https://tfhub.dev/tensorflow/efficientnet/lite3/classification/2) | 
| EfficientNet B4 Lite | `tensorflow-ic-efficientnet-lite4-classification-2` | [TensorFlow Tautan hub](https://tfhub.dev/tensorflow/efficientnet/lite4/classification/2) | 
| MobileNet V1 1,00 224 | `tensorflow-ic-imagenet-mobilenet-v1-100-224-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/mobilenet_v1_100_224/classification/4) | 
| MobileNet V1 1,00 192 | `tensorflow-ic-imagenet-mobilenet-v1-100-192-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/mobilenet_v1_100_192/classification/4) | 
| MobileNet V1 1,00 160 | `tensorflow-ic-imagenet-mobilenet-v1-100-160-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/mobilenet_v1_100_160/classification/4) | 
| MobileNet V1 1,00 128 | `tensorflow-ic-imagenet-mobilenet-v1-100-128-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/mobilenet_v1_100_128/classification/4) | 
| MobileNet V1 0,75 224 | `tensorflow-ic-imagenet-mobilenet-v1-075-224-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/mobilenet_v1_075_224/classification/4) | 
| MobileNet V1 0,75 192 | `tensorflow-ic-imagenet-mobilenet-v1-075-192-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/mobilenet_v1_075_192/classification/4) | 
| MobileNet V1 0,75 160 | `tensorflow-ic-imagenet-mobilenet-v1-075-160-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/mobilenet_v1_075_160/classification/4) | 
| MobileNet V1 0,75 128 | `tensorflow-ic-imagenet-mobilenet-v1-075-128-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/mobilenet_v1_075_128/classification/4) | 
| MobileNet V1 0,50 224 | `tensorflow-ic-imagenet-mobilenet-v1-050-224-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/mobilenet_v1_050_224/classification/4) | 
| MobileNet V1 0,50 192 | `tensorflow-ic-imagenet-mobilenet-v1-050-192-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/mobilenet_v1_050_192/classification/4) | 
| MobileNet V1 1,00 160 | `tensorflow-ic-imagenet-mobilenet-v1-050-160-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/mobilenet_v1_050_160/classification/4) | 
| MobileNet V1 0,50 128 | `tensorflow-ic-imagenet-mobilenet-v1-050-128-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/mobilenet_v1_050_128/classification/4) | 
| MobileNet V1 0,25 224 | `tensorflow-ic-imagenet-mobilenet-v1-025-224-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/mobilenet_v1_025_224/classification/4) | 
| MobileNet V1 0,25 192 | `tensorflow-ic-imagenet-mobilenet-v1-025-192-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/mobilenet_v1_025_192/classification/4) | 
| MobileNet V1 0,25 160 | `tensorflow-ic-imagenet-mobilenet-v1-025-160-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/mobilenet_v1_025_160/classification/4) | 
| MobileNet V1 0,25 128 | `tensorflow-ic-imagenet-mobilenet-v1-025-128-classification-4` | [TensorFlow Tautan hub](https://tfhub.dev/google/imagenet/mobilenet_v1_025_128/classification/4) | 
| Bit-S R50x1 | `tensorflow-ic-bit-s-r50x1-ilsvrc2012-classification-1` | [TensorFlow Tautan hub](https://tfhub.dev/google/bit/s-r50x1/ilsvrc2012_classification/1) | 
| Bit-S R50x3 | `tensorflow-ic-bit-s-r50x3-ilsvrc2012-classification-1` | [TensorFlow Tautan hub](https://tfhub.dev/google/bit/s-r50x3/ilsvrc2012_classification/1) | 
| Bit-s R101x1 | `tensorflow-ic-bit-s-r101x1-ilsvrc2012-classification-1` | [TensorFlow Tautan hub](https://tfhub.dev/google/bit/s-r101x1/ilsvrc2012_classification/1) | 
| Bit-s R101x3 | `tensorflow-ic-bit-s-r101x3-ilsvrc2012-classification-1` | [TensorFlow Tautan hub](https://tfhub.dev/google/bit/s-r101x3/ilsvrc2012_classification/1) | 
| Bit-M R50x1 | `tensorflow-ic-bit-m-r50x1-ilsvrc2012-classification-1` | [TensorFlow Tautan hub](https://tfhub.dev/google/bit/m-r50x1/ilsvrc2012_classification/1) | 
| Bit-M R50x3 | `tensorflow-ic-bit-m-r50x3-ilsvrc2012-classification-1` | [TensorFlow Tautan hub](https://tfhub.dev/google/bit/m-r50x3/ilsvrc2012_classification/1) | 
| Bit-M R101x1 | `tensorflow-ic-bit-m-r101x1-ilsvrc2012-classification-1` | [TensorFlow Tautan hub](https://tfhub.dev/google/bit/m-r101x1/ilsvrc2012_classification/1) | 
| Bit-M R101x3 | `tensorflow-ic-bit-m-r101x3-ilsvrc2012-classification-1` | [TensorFlow Tautan hub](https://tfhub.dev/google/bit/m-r101x3/ilsvrc2012_classification/1) | 
| Bit-M R50x1 -21k ImageNet | `tensorflow-ic-bit-m-r50x1-imagenet21k-classification-1` | [TensorFlow Tautan hub](https://tfhub.dev/google/bit/m-r50x1/imagenet21k_classification/1) | 
| Bit-M R50x3 -21k ImageNet | `tensorflow-ic-bit-m-r50x3-imagenet21k-classification-1` | [TensorFlow Tautan hub](https://tfhub.dev/google/bit/m-r50x3/imagenet21k_classification/1) | 
| Bit-M R101x1 -21k ImageNet | `tensorflow-ic-bit-m-r101x1-imagenet21k-classification-1` | [TensorFlow Tautan hub](https://tfhub.dev/google/bit/m-r101x1/imagenet21k_classification/1) | 
| Bit-M R101x3 -21k ImageNet | `tensorflow-ic-bit-m-r101x3-imagenet21k-classification-1` | [TensorFlow Tautan hub](https://tfhub.dev/google/bit/m-r101x3/imagenet21k_classification/1) | 

# Klasifikasi Gambar - TensorFlow Hyperparameters
<a name="IC-TF-Hyperparameter"></a>

Hyperparameters adalah parameter yang ditetapkan sebelum model pembelajaran mesin mulai belajar. Hyperparameter berikut didukung oleh TensorFlow algoritma Klasifikasi Gambar bawaan Amazon SageMaker AI. Lihat [Menyetel Klasifikasi Gambar - TensorFlow model](IC-TF-tuning.md) untuk informasi tentang tuning hyperparameter. 


| Nama Parameter | Deskripsi | 
| --- | --- | 
| augmentation |  Setel `"True"` untuk menerapkan`augmentation_random_flip`,`augmentation_random_rotation`, dan `augmentation_random_zoom` ke data pelatihan.  Nilai yang valid: string, baik: (`"True"`atau`"False"`). Nilai default:`"False"`.  | 
| augmentation\$1random\$1flip |  Menunjukkan mode flip mana yang akan digunakan untuk augmentasi data saat `augmentation` disetel ke`"True"`. Untuk informasi lebih lanjut, lihat [RandomFlip](https://www.tensorflow.org/api_docs/python/tf/keras/layers/RandomFlip)di TensorFlow dokumentasi. Nilai yang valid: string, salah satu dari berikut ini: (`"horizontal_and_vertical"`,`"vertical"`, atau`"None"`). Nilai default:`"horizontal_and_vertical"`.  | 
| augmentation\$1random\$1rotation |  Menunjukkan berapa banyak rotasi yang akan digunakan untuk augmentasi data saat `augmentation` disetel ke`"True"`. Nilai mewakili sebagian kecil dari 2π. Nilai positif berputar berlawanan arah jarum jam sementara nilai negatif berputar searah jarum jam. `0`berarti tidak ada rotasi. Untuk informasi lebih lanjut, lihat [RandomRotation](https://www.tensorflow.org/api_docs/python/tf/keras/layers/RandomRotation)di TensorFlow dokumentasi. Nilai yang valid: float, range: [`-1.0`,`1.0`]. Nilai default:`0.2`.  | 
| augmentation\$1random\$1zoom |  Menunjukkan berapa banyak zoom vertikal yang akan digunakan untuk augmentasi data saat `augmentation` disetel ke`"True"`. Nilai positif diperkecil sementara nilai negatif diperbesar. `0`berarti tidak ada zoom. Untuk informasi lebih lanjut, lihat [RandomZoom](https://www.tensorflow.org/api_docs/python/tf/keras/layers/RandomZoom)di TensorFlow dokumentasi. Nilai yang valid: float, range: [`-1.0`,`1.0`]. Nilai default:`0.1`.  | 
| batch\$1size |  Ukuran batch untuk pelatihan. Untuk pelatihan tentang instance dengan beberapa GPUs, ukuran batch ini digunakan di seluruh. GPUs  Nilai yang valid: bilangan bulat positif. Nilai default:`32`.  | 
| beta\$11 |  Beta1 untuk pengoptimal. `"adam"` Merupakan tingkat peluruhan eksponensial untuk perkiraan momen pertama. Diabaikan untuk pengoptimal lainnya. Nilai yang valid: float, range: [`0.0`,`1.0`]. Nilai default:`0.9`.  | 
| beta\$12 |  Beta2 untuk pengoptimal. `"adam"` Merupakan tingkat peluruhan eksponensial untuk perkiraan momen kedua. Diabaikan untuk pengoptimal lainnya. Nilai yang valid: float, range: [`0.0`,`1.0`]. Nilai default:`0.999`.  | 
| binary\$1mode |  Ketika `binary_mode` diatur ke`"True"`, model mengembalikan nomor probabilitas tunggal untuk kelas positif dan dapat menggunakan `eval_metric` opsi tambahan. Gunakan hanya untuk masalah klasifikasi biner. Nilai yang valid: string, baik: (`"True"`atau`"False"`). Nilai default:`"False"`.  | 
| dropout\$1rate | Tingkat putus sekolah untuk lapisan putus sekolah di lapisan klasifikasi atas. Nilai yang valid: float, range: [`0.0`,`1.0`]. Nilai default: `0.2` | 
| early\$1stopping |  Atur `"True"` untuk menggunakan logika penghentian awal selama pelatihan. Jika`"False"`, berhenti dini tidak digunakan. Nilai yang valid: string, baik: (`"True"`atau`"False"`). Nilai default:`"False"`.  | 
| early\$1stopping\$1min\$1delta | Perubahan minimum yang diperlukan untuk memenuhi syarat sebagai perbaikan. Perubahan absolut kurang dari nilai early\$1stopping\$1min\$1delta tidak memenuhi syarat sebagai perbaikan. Digunakan hanya ketika early\$1stopping diatur ke"True".Nilai yang valid: float, range: [`0.0`,`1.0`].Nilai default:`0.0`. | 
| early\$1stopping\$1patience |  Jumlah zaman untuk melanjutkan pelatihan tanpa perbaikan. Digunakan hanya ketika `early_stopping` diatur ke`"True"`. Nilai yang valid: bilangan bulat positif. Nilai default:`5`.  | 
| epochs |  Jumlah zaman pelatihan. Nilai yang valid: bilangan bulat positif. Nilai default:`3`.  | 
| epsilon |  Epsilon untuk`"adam"`,, `"rmsprop"``"adadelta"`, dan `"adagrad"` pengoptimal. Biasanya diatur ke nilai kecil untuk menghindari pembagian dengan 0. Diabaikan untuk pengoptimal lainnya. Nilai yang valid: float, range: [`0.0`,`1.0`]. Nilai default:`1e-7`.  | 
| eval\$1metric |  Jika `binary_mode` diatur ke`"False"`, hanya `eval_metric` bisa`"accuracy"`. Jika `binary_mode` ya`"True"`, pilih salah satu nilai yang valid. Untuk informasi selengkapnya, lihat [Metrik](https://www.tensorflow.org/api_docs/python/tf/keras/metrics) dalam TensorFlow dokumentasi. Nilai yang valid: string, salah satu dari berikut ini: (`"accuracy"``"precision"`,,`"recall"`,`"auc"`, atau`"prc"`). Nilai default:`"accuracy"`.  | 
| image\$1resize\$1interpolation |  Menunjukkan metode interpolasi yang digunakan saat mengubah ukuran gambar. Untuk informasi selengkapnya, lihat [image.resize dalam dokumentasi](https://www.tensorflow.org/api_docs/python/tf/image/resize). TensorFlow  Nilai yang valid: string, salah satu dari berikut ini: (`"bilinear"``"nearest"`,`"bicubic"`,`"area"`,` "lanczos3"`,`"lanczos5"`,`"gaussian"`, atau`"mitchellcubic"`). Nilai default:`"bilinear"`.  | 
| initial\$1accumulator\$1value |  Nilai awal untuk akumulator, atau nilai momentum per parameter, untuk pengoptimal. `"adagrad"` Diabaikan untuk pengoptimal lainnya. Nilai yang valid: float, range: [`0.0`,`1.0`]. Nilai default:`0.0001`.  | 
| label\$1smoothing |  Menunjukkan seberapa banyak untuk merilekskan kepercayaan pada nilai label. Misalnya, jika `label_smoothing` ya`0.1`, maka label non-target adalah `0.1/num_classes ` dan label target adalah`0.9+0.1/num_classes`.  Nilai yang valid: float, range: [`0.0`,`1.0`]. Nilai default:`0.1`.  | 
| learning\$1rate | Tingkat pembelajaran pengoptimal. Nilai yang valid: float, range: [`0.0`,`1.0`].Nilai default:`0.001`. | 
| momentum |  Momentum untuk`"sgd"`,`"nesterov"`, dan `"rmsprop"` pengoptimal. Diabaikan untuk pengoptimal lainnya. Nilai yang valid: float, range: [`0.0`,`1.0`]. Nilai default:`0.9`.  | 
| optimizer |  Jenis pengoptimal. Untuk informasi selengkapnya, lihat [Pengoptimal](https://www.tensorflow.org/api_docs/python/tf/keras/optimizers) dalam dokumentasi. TensorFlow  Nilai yang valid: string, salah satu dari berikut ini: (`"adam"``"sgd"`,,`"nesterov"`,`"rmsprop"`,` "adagrad"`,`"adadelta"`). Nilai default:`"adam"`.  | 
| regularizers\$1l2 |  Faktor regularisasi L2 untuk lapisan padat di lapisan klasifikasi.  Nilai yang valid: float, range: [`0.0`,`1.0`]. Nilai default:`.0001`.  | 
| reinitialize\$1top\$1layer |  Jika disetel ke`"Auto"`, parameter lapisan klasifikasi atas diinisialisasi ulang selama fine-tuning. Untuk pelatihan tambahan, parameter lapisan klasifikasi teratas tidak diinisialisasi ulang kecuali disetel ke. `"True"` Nilai yang valid: string, salah satu dari berikut ini: (`"Auto"`, `"True"` atau`"False"`). Nilai default:`"Auto"`.  | 
| rho |  Faktor diskon untuk gradien `"adadelta"` dan `"rmsprop"` pengoptimal. Diabaikan untuk pengoptimal lainnya.  Nilai yang valid: float, range: [`0.0`,`1.0`]. Nilai default:`0.95`.  | 
| train\$1only\$1top\$1layer |  Jika`"True"`, hanya parameter lapisan klasifikasi teratas yang disetel dengan baik. Jika`"False"`, semua parameter model disetel dengan baik. Nilai yang valid: string, baik: (`"True"`atau`"False"`). Nilai default:`"False"`.  | 

# Menyetel Klasifikasi Gambar - TensorFlow model
<a name="IC-TF-tuning"></a>

*Penyetelan model otomatis*, juga dikenal sebagai tuning hyperparameter, menemukan versi terbaik dari model dengan menjalankan banyak pekerjaan yang menguji berbagai hiperparameter pada kumpulan data Anda. Anda memilih hyperparameters yang dapat disetel, rentang nilai untuk masing-masing, dan metrik objektif. Anda memilih metrik objektif dari metrik yang dihitung oleh algoritme. Penyetelan model otomatis mencari hiperparameter yang dipilih untuk menemukan kombinasi nilai yang menghasilkan model yang mengoptimalkan metrik objektif.

Untuk informasi selengkapnya tentang penyetelan model, lihat[Penyetelan model otomatis dengan AI SageMaker](automatic-model-tuning.md).

## Metrik dihitung oleh Klasifikasi Gambar - algoritma TensorFlow
<a name="IC-TF-metrics"></a>

Algoritma klasifikasi gambar adalah algoritma yang diawasi. Ini melaporkan metrik akurasi yang dihitung selama pelatihan. Saat menyetel model, pilih metrik ini sebagai metrik objektif.


| Nama Metrik | Deskripsi | Arah Optimasi | 
| --- | --- | --- | 
| validation:accuracy | Rasio jumlah prediksi yang benar dengan jumlah prediksi yang dibuat. | Maksimalkan | 

## Klasifikasi Gambar yang Dapat Disetel - hyperparameters TensorFlow
<a name="IC-TF-tunable-hyperparameters"></a>

Sesuaikan model klasifikasi gambar dengan hyperparameter berikut. Hiperparameter yang memiliki dampak terbesar pada metrik objektif klasifikasi gambar adalah:`batch_size`,`learning_rate`, dan. `optimizer` Setel hiperparameter terkait pengoptimal, seperti,,`momentum`,, `regularizers_l2` `beta_1``beta_2`, dan `eps` berdasarkan yang dipilih. `optimizer` Misalnya, gunakan `beta_1` dan `beta_2` `adam` hanya kapan`optimizer`.

Untuk informasi lebih lanjut tentang hiperparameter mana yang digunakan untuk masing-masing`optimizer`, lihat[Klasifikasi Gambar - TensorFlow Hyperparameters](IC-TF-Hyperparameter.md).


| Nama Parameter | Jenis Parameter | Rentang yang Direkomendasikan | 
| --- | --- | --- | 
| batch\$1size | IntegerParameterRanges | MinValue: 8, MaxValue: 512 | 
| beta\$11 | ContinuousParameterRanges | MinValue: 1e-6,: 0.999 MaxValue | 
| beta\$12 | ContinuousParameterRanges | MinValue: 1e-6,: 0.999 MaxValue | 
| eps | ContinuousParameterRanges | MinValue: 1e-8, MaxValue: 1.0 | 
| learning\$1rate | ContinuousParameterRanges | MinValue: 1e-6, MaxValue: 0,5 | 
| momentum | ContinuousParameterRanges | MinValue: 0.0, MaxValue: 0.999 | 
| optimizer | CategoricalParameterRanges | ['sgd', 'adam', 'rmsprop', 'nesterov', 'adagrad', 'adadelta'] | 
| regularizers\$1l2 | ContinuousParameterRanges | MinValue: 0.0, MaxValue: 0.999 | 
| train\$1only\$1top\$1layer | ContinuousParameterRanges | ['Benar', 'Salah'] | 