Limitazioni - Amazon SageMaker

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Limitazioni

Le sezioni seguenti descrivono le limitazioni di cui dovresti essere a conoscenza quando usi il @step decoratore per le fasi della pipeline.

Limitazioni degli argomenti delle funzioni

Quando si passa un argomento di input alla funzione @step -decorated, si applicano le seguenti limitazioni:

  • È possibile passare gli oggettiDelayedReturn, Properties (di passaggi di altri tipi) e ExecutionVariable oggetti alle funzioni @step -decorated come argomenti. Parameter Ma le funzioni @step -decorate non supportano JsonGet gli Join oggetti come argomenti.

  • Non è possibile accedere direttamente a una variabile di pipeline da una @step funzione. L'esempio seguente genera un errore:

    param = ParameterInteger(name="<parameter-name>", default_value=10) @step def func(): print(param) func() # this raises a SerializationError
  • Non è possibile annidare una variabile di pipeline in un altro oggetto e passarla a una @step funzione. L'esempio seguente genera un errore:

    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
  • Poiché gli input e gli output di una funzione sono serializzati, esistono restrizioni sul tipo di dati che possono essere passati come input o output da una funzione. Per maggiori dettagli, consulta la sezione Serializzazione e deserializzazione dei dati di. Richiama una funzione remota Le stesse restrizioni si applicano alle @step funzioni -decorated.

  • Qualsiasi oggetto che abbia un client di avvio non può essere serializzato, quindi non è possibile passare tali oggetti come input o output da una @step funzione -decorated. Ad esempio, le classi SDK client SageMaker Python come EstimatorPredictor, e non Processor possono essere serializzate.

Importazioni di funzioni

È necessario importare le librerie richieste dal passaggio all'interno anziché all'esterno della funzione. Se le importate a livello globale, rischiate una collisione di importazione durante la serializzazione della funzione. Ad esempio, sklearn.pipeline.Pipeline potrebbe essere sovrascritto da. sagemaker.workflow.pipeline.Pipeline

Riferimento ai membri figli del valore restituito dalla funzione

Se si fa riferimento a membri figli del valore restituito da una funzione @step -decorated, si applicano le seguenti limitazioni:

  • È possibile fare riferimento ai membri figli utilizzando [] se l'DelayedReturnoggetto rappresenta una tupla, una lista o un dict, come mostrato nell'esempio seguente:

    delayed_return[0] delayed_return["a_key"] delayed_return[1]["a_key"]
  • Non è possibile decomprimere l'output di una tupla o di una lista perché la lunghezza esatta della tupla o dell'elenco sottostante non può essere nota quando si richiama la funzione. L'esempio seguente genera un errore:

    a, b, c = func() # this raises ValueError
  • Non è possibile eseguire iterazioni su un DelayedReturn oggetto. L'esempio seguente genera un errore:

    for item in func(): # this raises a NotImplementedError
  • Non è possibile fare riferimento a membri figli arbitrari con ''. . L'esempio seguente genera un errore:

    delayed_return.a_child # raises AttributeError

Funzionalità di pipeline esistenti che non sono supportate

Non è possibile utilizzare il @step decoratore con le seguenti funzionalità di pipeline: