Comment utiliser l' TensorFlow algorithme de classification des SageMaker images - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Comment utiliser l' TensorFlow algorithme de classification des SageMaker images

Vous pouvez utiliser la classification des images TensorFlow en tant qu'algorithme SageMaker intégré d'Amazon. La section suivante décrit comment utiliser la classification des images TensorFlow avec le SageMaker PythonSDK. Pour plus d'informations sur l'utilisation de la classification des images, TensorFlow depuis l'interface utilisateur Amazon SageMaker Studio Classic, consultezSageMaker JumpStart modèles préentraînés.

L' TensorFlow algorithme de classification des images prend en charge l'apprentissage par transfert à l'aide de l'un des modèles TensorFlow Hub préentraînés compatibles. Pour obtenir la liste de tous les modèles pré-entraînés disponibles, consultez TensorFlow Modèles de hub. Chaque modèle pré-entraîné possède un model_id unique. L'exemple suivant utilise la MobileNet version V2 1.00 224 (model_id:tensorflow-ic-imagenet-mobilenet-v2-100-224-classification-4) pour affiner un ensemble de données personnalisé. Les modèles préentraînés sont tous prétéléchargés depuis le TensorFlow Hub et stockés dans des compartiments Amazon S3 afin que les tâches de formation puissent être exécutées de manière isolée sur le réseau. Utilisez ces artefacts d'apprentissage de modèles prégénérés pour créer un SageMaker estimateur.

Tout d'abord, récupérez l'image DockerURI, le script d'entraînement et URI le modèle préentraîné. URI Ensuite, modifiez les hyperparamètres comme bon vous semble. Vous pouvez consulter un dictionnaire Python de tous les hyperparamètres disponibles et de leurs valeurs par défaut avec hyperparameters.retrieve_default. Pour de plus amples informations, veuillez consulter Classification des images - TensorFlow Hyperparamètres. Utilisez ces valeurs pour créer un SageMaker estimateur.

Note

Les valeurs par défaut des hyperparamètres sont différentes selon les modèles. Pour les modèles plus grands, la taille de lot par défaut est plus petite et l'hyperparamètre train_only_top_layer a pour valeur "True".

Cet exemple utilise le jeu de données tf_flowers, qui contient cinq classes d'images de fleurs. Nous avons prétéléchargé le jeu de données TensorFlow sous licence Apache 2.0 et l'avons rendu disponible avec Amazon S3. Pour affiner votre modèle, appelez .fit à l'aide de l'emplacement Amazon S3 de votre jeu de données d'entraînement.

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)