Einschränkungen - Amazon SageMaker KI

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.

Einschränkungen

In den folgenden Abschnitten werden die Einschränkungen beschrieben, die Sie beachten sollten, wenn Sie den @step Decorator für Ihre Pipeline-Schritte verwenden.

Einschränkungen von Funktionsargumenten

Wenn Sie ein Eingabeargument an die @step mit -dekorierte Funktion übergeben, gelten die folgenden Einschränkungen:

  • Sie können die ObjekteDelayedReturn, Properties (von Schritten anderer Typen) und ExecutionVariable -Objekte als Parameter Argumente an @step mit -dekorierte Funktionen übergeben. Mit @step -dekorierten Funktionen werden Join Objekte jedoch nicht als JsonGet Argumente unterstützt.

  • Sie können von einer @step Funktion aus nicht direkt auf eine Pipeline-Variable zugreifen. Das folgende Beispiel erzeugt einen Fehler:

    param = ParameterInteger(name="<parameter-name>", default_value=10) @step def func(): print(param) func() # this raises a SerializationError
  • Sie können eine Pipeline-Variable nicht in einem anderen Objekt verschachteln und an eine @step Funktion übergeben. Das folgende Beispiel erzeugt einen Fehler:

    param = ParameterInteger(name="<parameter-name>", default_value=10) @step def func(arg): print(arg) func(arg=(param,)) # this raises a SerializationError because param is nested in a tuple
  • Da die Ein- und Ausgaben einer Funktion serialisiert sind, gibt es Einschränkungen hinsichtlich der Art der Daten, die als Eingabe oder Ausgabe von einer Funktion übergeben werden können. Weitere Informationen finden Sie im Abschnitt Datenserialisierung und Deserialisierung vonAufrufen einer Remote-Funktion. Die gleichen Einschränkungen gelten für @step-dekorierte Funktionen.

  • Objekte, die einen Boto-Client enthalten, können nicht serialisiert werden. Daher können Sie solche Objekte nicht als Eingabe an eine mit @step-dekorierte Funktion übergeben oder als Ausgabe von einer solchen Funktion erhalten. Beispielsweise Processor können SageMaker Python-SDK-Clientklassen wie EstimatorPredictor, und nicht serialisiert werden.

Funktionsimporte

Sie sollten die Bibliotheken importieren, die für den Schritt innerhalb und nicht außerhalb der Funktion erforderlich sind. Wenn Sie sie auf globaler Ebene importieren, riskieren Sie bei der Serialisierung der Funktion eine Importkollision. sklearn.pipeline.Pipeline könnte beispielsweise mit sagemaker.workflow.pipeline.Pipeline überschrieben werden.

Verweisen auf untergeordnete Elemente des Funktionsrückgabewerts

Wenn Sie auf untergeordnete Elemente des Rückgabewerts einer @step mit -dekorierten Funktion verweisen, gelten die folgenden Einschränkungen:

  • Sie können auf die untergeordneten Elemente verweisen, [] wenn das DelayedReturn Objekt ein Tupel, eine Liste oder ein Diktat darstellt, wie im folgenden Beispiel gezeigt:

    delayed_return[0] delayed_return["a_key"] delayed_return[1]["a_key"]
  • Sie können eine Tupel- oder Listenausgabe nicht entpacken, da die genaue Länge des zugrunde liegenden Tupels oder der zugrunde liegenden Liste nicht bekannt sein kann, wenn Sie die Funktion aufrufen. Das folgende Beispiel erzeugt einen Fehler:

    a, b, c = func() # this raises ValueError
  • Sie können nicht über ein DelayedReturn-Objekt iterieren. Das folgende Beispiel löst einen Fehler aus:

    for item in func(): # this raises a NotImplementedError
  • Sie können nicht mit '.' auf beliebige untergeordnete Elemente verweisen. Das folgende Beispiel erzeugt einen Fehler:

    delayed_return.a_child # raises AttributeError

Bestehende Pipeline-Funktionen, die nicht unterstützt werden

Sie können den @step Decorator nicht mit den folgenden Pipeline-Funktionen verwenden: