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.
TabTransformer
TabTransformer
Wie benutzt man SageMaker TabTransformer
Sie können ihn TabTransformer als SageMaker integrierten Amazon-Algorithmus verwenden. Im folgenden Abschnitt wird die Verwendung TabTransformer mit dem SageMaker Python-SDK beschrieben. Informationen zur Verwendung TabTransformer von der Amazon SageMaker Studio-Benutzeroberfläche aus finden Sie unterSageMaker JumpStart.
-
TabTransformer Als integrierten Algorithmus verwenden
Verwenden Sie den TabTransformer integrierten Algorithmus, um einen TabTransformer Trainingscontainer zu erstellen, wie im folgenden Codebeispiel gezeigt. Sie können die TabTransformer integrierte Algorithmus-Image-URI mithilfe der SageMaker
image_uris.retrieve
API (oder derget_image_uri
API, wenn Sie Amazon SageMaker Python SDKVersion 2 verwenden) automatisch erkennen. Nachdem Sie die TabTransformer Bild-URI angegeben haben, können Sie den TabTransformer Container verwenden, um mithilfe der Estimator-API einen SageMaker Schätzer zu erstellen und einen Trainingsjob zu initiieren. Der TabTransformer eingebaute Algorithmus wird im Skriptmodus ausgeführt, aber das Trainingsskript wird für Sie bereitgestellt und muss nicht ersetzt werden. Wenn Sie über umfangreiche Erfahrung mit der Erstellung eines SageMaker Trainingsjobs im Skriptmodus verfügen, können Sie Ihre eigenen TabTransformer Trainingsskripte integrieren.
from sagemaker import image_uris, model_uris, script_uris train_model_id, train_model_version, train_scope = "pytorch-tabtransformerclassification-model", "*", "training" training_instance_type = "ml.p3.2xlarge" # Retrieve the docker image train_image_uri = image_uris.retrieve( region=None, framework=None, model_id=train_model_id, model_version=train_model_version, image_scope=train_scope, instance_type=training_instance_type ) # Retrieve the training script train_source_uri = script_uris.retrieve( model_id=train_model_id, model_version=train_model_version, script_scope=train_scope ) train_model_uri = model_uris.retrieve( model_id=train_model_id, model_version=train_model_version, model_scope=train_scope ) # Sample training data is available in this bucket training_data_bucket = f"jumpstart-cache-prod-{aws_region}" training_data_prefix = "training-datasets/tabular_binary/" training_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}/train" validation_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}/validation" output_bucket = sess.default_bucket() output_prefix = "jumpstart-example-tabular-training" s3_output_location = f"s3://{output_bucket}/{output_prefix}/output" from sagemaker import hyperparameters # Retrieve the default hyperparameters for training the model hyperparameters = hyperparameters.retrieve_default( model_id=train_model_id, model_version=train_model_version ) # [Optional] Override default hyperparameters with custom values hyperparameters[ "n_epochs" ] = "50" print(hyperparameters) from sagemaker.estimator import Estimator from sagemaker.utils import name_from_base training_job_name = name_from_base(f"built-in-algo-{train_model_id}-training") # Create SageMaker Estimator instance tabular_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 SageMaker Training job by passing the S3 path of the training data tabular_estimator.fit( { "training": training_dataset_s3_path, "validation": validation_dataset_s3_path, }, logs=True, job_name=training_job_name )
Weitere Informationen zum Einrichten des Algorithmus TabTransformer als integrierten Algorithmus finden Sie in den folgenden Notebook-Beispielen ein.
Eingabe- und Ausgabeschnittstelle für den TabTransformer Algorithmus
TabTransformer arbeitet mit tabellarischen Daten, wobei die Zeilen Beobachtungen, eine Spalte die Zielvariable oder das Label und die übrigen Spalten Features darstellen.
Die SageMaker Implementierung von TabTransformer unterstützt CSV für Training und Inferenz:
-
Für das Training ContentType müssen gültige Eingaben Text/CSV sein.
-
Für Inferenz ContentType müssen gültige Eingaben Text/CSV sein.
Anmerkung
Bei der CSV-Schulung geht der Algorithmus davon aus, dass die Zielvariable in der ersten Spalte zu finden ist und CSV keinen Header-Eintrag aufweist.
Bei der CSV-Inferenz geht der Algorithmus davon aus, dass die CSV-Eingabe keine Kennzeichnungsspalte hat.
Eingabeformat für Trainingsdaten, Validierungsdaten und kategoriale Merkmale
Achten Sie darauf, wie Sie Ihre Trainingsdaten für die Eingabe in das TabTransformer Modell formatieren. Sie müssen den Pfad zu einem Amazon-S3-Bucket angeben ein Bucket ein ein, der Ihre Schulungs- und Validierungsdaten ein Bucket ein ein Bucket ein ein Sie können auch eine Liste kategorialer Funktionen einschließen ein. Verwenden Sietraining
sowohl dievalidation
Kanäle als auch, um Ihre Eingabedaten bereitzustellen. Alternativ können Sie auch nur dentraining
Kanal verwenden.
Verwenden Sietraining
sowohl dievalidation
Kanäle als auch
Sie können Ihre Eingabedaten über zwei S3-Pfade bereitstellen, einen für dentraining
Kanal und einen für denvalidation
Kanal. Jeder S3-Pfad kann entweder ein S3-Präfix sein, das auf eine oder mehrere CSV-Dateien verweist, oder ein vollständiger S3-Pfad, der auf eine bestimmte CSV-Datei verweist. Die Zielvariablen sollten sich in der ersten Spalte Ihrer CSV-Datei befinden. Die Prädiktorvariablen (Merkmale) sollten sich in den verbleibenden Spalten befinden. Wenn mehrere CSV-Dateien für dietraining
validation
Oder-Kanäle bereitgestellt werden, verkettet der TabTransformer Algorithmus die Dateien. Die Validierungsdaten werden verwendet, um am Ende jeder Boosting-Iteration ein Validierungsergebnis zu berechnen. Ein vorzeitiger Stopp wird angewendet, wenn sich der Validierungsergebnis nicht mehr verbessert.
Wenn Ihre Prädiktoren kategoriale Merkmale enthalten, können Sie eine JSON-Datei angeben, diecategorical_index.json
am selben Ort wie Ihre Trainingsdatendatei oder -dateien benannt ist. Wenn du eine JSON-Datei für kategorische Funktionen bereitstellst, muss deintraining
Kanal auf ein S3-Präfix verweisen und nicht auf eine bestimmte CSV-Datei. Diese Datei sollte ein Python-Wörterbuch enthalten, in dem der Schlüssel die Zeichenfolge"cat_index_list"
und der Wert eine Liste eindeutiger Ganzzahlen ist. Jede Ganzzahl in der Werteliste sollte den Spaltenindex der entsprechenden kategorialen Merkmale in Ihrer CSV-Datei mit Trainingsdaten angeben. Jeder Wert sollte eine positive Ganzzahl (größer als Null, weil Null den Zielwert darstellt), kleiner alsInt32.MaxValue
(2147483647) und kleiner als die Gesamtzahl der Spalten sein. Es sollte nur eine JSON-Datei mit einem kategorialen Index geben.
Benutze nur dentraining
Kanal:
Sie können Ihre Eingabedaten alternativ über einen einzigen S3-Pfad für dentraining
Kanal bereitstellen. Dieser S3-Pfad sollte auf ein Verzeichnis mit einem benannten Unterverzeichnis verweisentraining/
, das eine oder mehrere CSV-Dateien enthält. Sie können optional ein weiteres Unterverzeichnis am selben Speicherort mit dem Namen hinzufügenvalidation/
, das auch eine oder mehrere CSV-Dateien enthält. Wenn die Validierungsdaten nicht bereitgestellt werden, werden 20% Ihrer Trainingsdaten nach dem Zufallsprinzip ausgewählt, um als Validierungsdaten zu dienen. Wenn Ihre Prädiktoren kategoriale Merkmale enthalten, können Sie eine JSON-Datei angeben, diecategorical_index.json
an derselben Stelle wie Ihre Datenunterverzeichnisse benannt ist.
Anmerkung
Für den CSV-Trainingseingabemodus muss der gesamte für den Algorithmus verfügbare Speicher (Anzahl der Instanzen multipliziert mit dem verfügbaren Speicher inInstanceType
) den Trainingsdatensatz aufnehmen können.
Amazon EC2 EC2-Instance-Instance-Empfehlung für den TabTransformer Algorithmus für den Algorithmus
SageMaker TabTransformer unterstützt Einzelinstanz-CPU- und Einzelinstanz-GPU-Training. Trotz höherer Kosten pro Instance schulen GPUs schneller und sind damit kostengünstiger. Um die Vorteile des GPU-Trainings zu nutzen, geben Sie den Instanztyp als eine der GPU-Instanzen an (z. B. P3). SageMaker TabTransformer unterstützt derzeit kein Multi-GPU-Training.
TabTransformer Musternotizbücher
Die folgende Tabelle enthält eine Vielzahl von Beispielnotizbüchern, die sich mit verschiedenen Anwendungsfällen des SageMaker TabTransformer Amazon-Algorithmus befassen.
Titel des Notizbuches | Beschreibung |
---|---|
Tabellarische Klassifizierung mit SageMaker TabTransformer Amazon-Algorithmus |
Dieses Notizbuch demonstriert die Verwendung des SageMaker TabTransformer Amazon-Algorithmus zum Trainieren und Hosten eines tabellarischen Klassifizierungsmodells. |
Tabellarische Regression mit SageMaker TabTransformer Amazon-Algorithmus |
Dieses Notizbuch demonstriert die Verwendung des SageMaker TabTransformer Amazon-Algorithmus zum Trainieren und Hosten eines tabellarischen Regressionsmodells. |
Anweisungen zum Erstellen und Zugreifen auf Jupyter-Notebook-Instanzen, mit denen Sie das Beispiel ausführen können SageMaker, finden Sie unterAmazon SageMaker Notebook-Instances. Nachdem Sie eine Notebook-Instanz erstellt und geöffnet haben, wählen Sie die Registerkarte SageMakerBeispiele, um eine Liste aller SageMaker Beispiele anzuzeigen. Zum Öffnen eines Notebooks wählen Sie die Registerkarte Use (Verwenden) und dann Create copy (Kopie erstellen) aus.