Limitaciones - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Limitaciones

En las siguientes secciones se describen las limitaciones que debes tener en cuenta cuando utilices el @step decorador en las etapas de tu proceso.

Limitaciones de los argumentos de función

Al pasar un argumento de entrada a la función @step -decorated, se aplican las siguientes limitaciones:

  • Puedes pasar los DelayedReturn ExecutionVariable objetos Properties (de pasos de otros tipos) y a funciones @step decoradas como argumentos. Parameter Sin embargo, las funciones @step decoradas con símbolos no admiten JsonGet Join objetos como argumentos.

  • No se puede acceder directamente a una variable de canalización desde una @step función. El siguiente ejemplo produce un error:

    param = ParameterInteger(name="<parameter-name>", default_value=10) @step def func(): print(param) func() # this raises a SerializationError
  • No se puede anidar una variable de canalización en otro objeto y pasarla a una @step función. El siguiente ejemplo produce un error:

    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
  • Como las entradas y salidas de una función están serializadas, existen restricciones en cuanto al tipo de datos que se pueden transmitir como entrada o salida desde una función. Consulte la sección de serialización y deserialización de datos de Invoca una función remota para obtener más información. Las mismas restricciones se aplican a las funciones decoradas con letras. @step

  • Cualquier objeto que tenga un cliente boto no se puede serializar, por lo que no se pueden pasar dichos objetos como entrada o salida desde una @step función decorada. Por ejemplo, las clases de SDK cliente de SageMaker Python como EstimatorPredictor, y no se Processor pueden serializar.

Importaciones de funciones

Debe importar las bibliotecas requeridas para el paso interno y no externo a la función. Si las importa a escala global, corre el riesgo de que se produzca un error de importación al serializar la función. Por ejemplo, sklearn.pipeline.Pipeline podría ser anulado por. sagemaker.workflow.pipeline.Pipeline

Al hacer referencia a los miembros secundarios de la función, devuelve el valor

Si haces referencia a los miembros secundarios del valor devuelto @step de una función decorada con símbolos, se aplican las siguientes limitaciones:

  • Puedes hacer referencia a los miembros secundarios [] si el DelayedReturn objeto representa una tupla, una lista o un dictado, como se muestra en el siguiente ejemplo:

    delayed_return[0] delayed_return["a_key"] delayed_return[1]["a_key"]
  • No se puede desempaquetar el resultado de una tupla o lista porque no se puede conocer la longitud exacta de la tupla o lista subyacente al invocar la función. El siguiente ejemplo produce un error:

    a, b, c = func() # this raises ValueError
  • No se puede iterar sobre un DelayedReturn objeto. El siguiente ejemplo genera un error:

    for item in func(): # this raises a NotImplementedError
  • No se puede hacer referencia a miembros secundarios arbitrarios con '.'. El siguiente ejemplo produce un error:

    delayed_return.a_child # raises AttributeError

Funciones de canalización existentes que no son compatibles

No puedes usar el @step decorador con las siguientes funciones de canalización: