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.
Puede utilizar la clasificación de imágenes, TensorFlow como un algoritmo integrado de Amazon SageMaker AI. En la siguiente sección, se describe cómo utilizar la clasificación de imágenes TensorFlow con el SDK de Python para SageMaker IA. Para obtener información sobre cómo utilizar la clasificación de imágenes, TensorFlow desde la interfaz de usuario clásica de Amazon SageMaker Studio, consulteSageMaker JumpStart modelos preentrenados.
El TensorFlow algoritmo de clasificación de imágenes admite el aprendizaje por transferencia mediante cualquiera de los modelos TensorFlow Hub compatibles previamente entrenados. Para obtener una lista de todos los modelos prentrenados disponibles, consulte TensorFlow Modelos Hub. Cada modelo prentrenado tiene un model_id
de modelo único. En el siguiente ejemplo, se utiliza MobileNet V2 1.00 224 (model_id
:tensorflow-ic-imagenet-mobilenet-v2-100-224-classification-4
) para realizar ajustes precisos en un conjunto de datos personalizado. Todos los modelos previamente entrenados se descargan previamente del TensorFlow Hub y se almacenan en buckets de Amazon S3 para que los trabajos de capacitación se puedan ejecutar de forma aislada en la red. Utilice estos artefactos de entrenamiento de modelos pregenerados para construir un estimador de IA. SageMaker
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 Clasificación de imágenes: TensorFlow hiperparámetros. Usa estos valores para construir un SageMaker estimador de IA.
nota
Los valores de hiperparámetros predeterminados son diferentes para los distintos modelos. Para los modelos más grandes, el tamaño de lote predeterminado es menor y el hiperparámetro train_only_top_layer
se establece en "True"
.
En este ejemplo, se utiliza el conjunto de datos tf_flowers
.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-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)