Einschränkungen - Amazon SageMaker

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 bei 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 Eingaben 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 vonRufen Sie eine Remote-Funktion auf. Dieselben Einschränkungen gelten für Funktionen, die mit -dekoriert sind. @step

  • Jedes Objekt, das über einen Boto-Client verfügt, kann nicht serialisiert werden. Daher können Sie solche Objekte nicht als Eingabe oder Ausgabe einer @step mit -dekorierten Funktion übergeben. SageMaker SDKPython-Clientklassen wie EstimatorPredictor, und Processor können beispielsweise 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.PipelineKönnte beispielsweise überschrieben werden durch. sagemaker.workflow.pipeline.Pipeline

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: