Cómo usar el algoritmo de detección de objetos - TensorFlow de SageMaker AI - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cómo usar el algoritmo de detección de objetos - TensorFlow de SageMaker AI

Utilice el algoritmo integrado de detección de objetos - TensorFlow como un algoritmo integrado de Amazon SageMaker AI. En la siguiente sección se describe cómo utilizar detección de objetos - TensorFlow con el SageMaker AI Python SDK. Para obtener información sobre cómo utilizar Object Detection - TensorFlow desde la interfaz de usuario de Amazon SageMaker Studio Classic, consulte SageMaker JumpStart modelos preentrenados.

El algoritmo de detección de objetos - TensorFlow admite el aprendizaje por transferencia mediante cualquiera de los modelos de TensorFlow compatibles previamente entrenados. Para obtener una lista de todos los modelos prentrenados disponibles, consulte Modelos de TensorFlow. Cada modelo prentrenado tiene un model_id de modelo único. El siguiente ejemplo emplea ResNet50 (model_id: tensorflow-od1-ssd-resnet50-v1-fpn-640x640-coco17-tpu-8) para ajustar un conjunto de datos personalizado. Todos los modelos prentrenados se descargan previamente desde TensorFlow Hub y se almacenan en buckets de Amazon S3 para que los trabajos de entrenamiento se puedan ejecutar con aislamiento de la red. Utilice estos artefactos de entrenamiento de modelos pregenerados para construir un estimador de SageMaker AI.

En primer lugar, recupere el URI de la imagen de Docker, del script de entrenamiento y del modelo prentrenado. Luego, cambie los hiperparámetros como crea conveniente. Puede ver un diccionario de Python con todos los hiperparámetros disponibles y sus valores predeterminados con hyperparameters.retrieve_default. Para obtener más información, consulte Hiperparámetros de detección de objetos - TensorFlow. Utilice estos valores para construir un estimador de SageMaker AI.

nota

Los valores de hiperparámetros predeterminados son diferentes para los distintos modelos. Por ejemplo, para los modelos más grandes, el número predeterminado de epochs (fechas de inicio) es menor.

En este ejemplo, se utiliza el conjunto de datos PennFudanPed, que contiene imágenes de peatones en la calle. Hemos descargado previamente el conjunto de datos y hemos hecho que esté disponible en Amazon S3. Para ajustar su modelo, llame a .fit utilizando la ubicación de Amazon S3 del conjunto de datos de entrenamiento.

from sagemaker import image_uris, model_uris, script_uris, hyperparameters from sagemaker.estimator import Estimator model_id, model_version = "tensorflow-od1-ssd-resnet50-v1-fpn-640x640-coco17-tpu-8", "*" 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 hyperparameters 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" # Sample training data is available in this bucket training_data_bucket = f"jumpstart-cache-prod-{aws_region}" training_data_prefix = "training-datasets/PennFudanPed_COCO_format/" training_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}" output_bucket = sess.default_bucket() output_prefix = "jumpstart-example-od-training" s3_output_location = f"s3://{output_bucket}/{output_prefix}/output" # Create an Estimator instance tf_od_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, ) # Launch a training job tf_od_estimator.fit({"training": training_dataset_s3_path}, logs=True)

Para obtener más información sobre cómo utilizar el algoritmo de detección de objetos - TensorFlow en SageMaker AI para el aprendizaje por transferencia en un conjunto de datos personalizado, consulte el cuaderno Introduction to SageMaker Object Detection - TensorFlow.