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 den TensorFlow Algorithmus zur SageMaker Bildklassifizierung
Sie können Image Classification TensorFlow als SageMaker integrierten Algorithmus von Amazon verwenden. Der folgende Abschnitt beschreibt, wie Sie Image Classification verwenden — TensorFlow mit SageMaker PythonSDK. Informationen zur Verwendung TensorFlow von Image Classification — über die Amazon SageMaker Studio Classic-Benutzeroberfläche — finden Sie unterSageMaker JumpStart vortrainierte Modelle.
Der Image Classification — TensorFlow Algorithmus unterstützt Transfer Learning unter Verwendung aller kompatiblen vortrainierten TensorFlow Hub-Modelle. Eine Liste aller verfügbaren vortrainierten Modelle finden Sie unter TensorFlow Hub-Modelle. Jedes vortrainierte Modell hat ein Unikat model_id
. Das folgende Beispiel verwendet MobileNet V2 1.00 224 (model_id
:tensorflow-ic-imagenet-mobilenet-v2-100-224-classification-4
) zur Feinabstimmung eines benutzerdefinierten Datensatzes. Die vortrainierten Modelle werden alle vorab vom TensorFlow Hub heruntergeladen und in Amazon S3 S3-Buckets gespeichert, sodass Trainingsjobs netzwerkisoliert ausgeführt werden können. Verwenden Sie diese vorgenerierten Modelltrainingsartefakte, um einen Estimator zu erstellen. SageMaker
Rufen Sie zunächst das Docker-ImageURI, das Trainingsskript und das URI vortrainierte Modell ab. URI Ä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 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
.fit
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)