So verwenden Sie die SageMaker Bildklassifizierung – TensorFlow-Algorithmus - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

So verwenden Sie die SageMaker Bildklassifizierung – TensorFlow-Algorithmus

Sie können Bildklassifizierung – TensorFlow als integrierten Algorithmus von Amazon SageMaker AI verwenden. Im folgenden Abschnitt wird beschrieben, wie Sie Bildklassifizierung – TensorFlow mit dem SageMaker AI Python SDK verwenden. Informationen zur Verwendung von Bildklassifizierung – TensorFlow über die Benutzeroberfläche von Amazon SageMaker Studio Classic finden Sie unter SageMaker JumpStart vortrainierte Modelle.

Der Image Klassifizierung – TensorFlow-Algorithmus unterstützt Transfer Learning unter Verwendung eines der kompatiblen vortrainierten TensorFlow Hub-Modelle. Eine Liste aller verfügbaren vortrainierten Modelle finden Sie unter TensorFlow Hub-Modelle. Jedes vortrainierte Modell hat ein eindeutiges model_id. Im folgenden Beispiel wird MobileNet V2 1.00 224 (model_id: tensorflow-ic-imagenet-mobilenet-v2-100-224-classification-4) zur Feinabstimmung eines benutzerdefinierten Datensatzes verwendet. Die vortrainierten Modelle werden alle vorab vom TensorFlow Hub heruntergeladen und in Amazon S3 Buckets gespeichert, sodass Trainingsaufträge netzwerkisoliert ausgeführt werden können. Verwenden Sie diese vorgenerierten Modelltrainingsartefakte, um einen SageMaker AI Estimator zu erstellen.

Rufen Sie zunächst den Docker-Image-URI, den Trainingsskript-URI und den vortrainierten Modell-URI ab. Ändern Sie dann die Hyperparameter nach Bedarf. Sie können ein Python-Wörterbuch mit allen verfügbaren Hyperparametern und ihren Standardwerten mit hyperparameters.retrieve_default sehen. Weitere Informationen finden Sie unter Bildklassifizierung – TensorFlow-Hyperparameter. Verwenden Sie diese Werte, um einen SageMaker AI Estimator zu erstellen.

Anmerkung

Die Standard-Hyperparameterwerte sind für verschiedene Modelle unterschiedlich. Bei größeren Modellen ist die Standard-Batch-Größe kleiner und der train_only_top_layer Hyperparameter ist auf "True" eingestellt.

In diesem Beispiel wird der tf_flowers Datensatz verwendet, der fünf Klassen von Blumenbildern enthält. Wir haben den Datensatz unter der Apache 2.0-Lizenz vorab von TensorFlow heruntergeladen und mit Amazon S3 verfügbar gemacht. Rufen Sie zur Feinabstimmung Ihres Modells .fit an, indem Sie den Amazon S3 Speicherort Ihres Trainingsdatensatzes verwenden.

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)