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 oggetti
DelayedReturn
,Properties
(di passaggi di altri tipi) eExecutionVariable
oggetti alle funzioni@step
-decorated come argomenti.Parameter
Ma le funzioni@step
-decorate non supportanoJsonGet
gliJoin
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 SerializationErrorNon è 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 tuplePoiché 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 comeEstimator
Predictor
, e nonProcessor
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'DelayedReturn
oggetto 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: