Limitações - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Limitações

As seções a seguir descrevem as limitações que você deve conhecer ao usar o @step decorador nas etapas do pipeline.

Limitações do argumento da função

Quando você passa um argumento de entrada para a função @step -decorada, as seguintes limitações se aplicam:

  • Você pode passar oDelayedReturn, Properties (de etapas de outros tipos) e ExecutionVariable objetos para funções @step -decoradas como argumentos. Parameter Mas as funções @step -decoradas não suportam JsonGet Join objetos como argumentos.

  • Você não pode acessar diretamente uma variável de pipeline a partir de uma @step função. O exemplo a seguir produz um erro:

    param = ParameterInteger(name="<parameter-name>", default_value=10) @step def func(): print(param) func() # this raises a SerializationError
  • Você não pode aninhar uma variável de pipeline em outro objeto e passá-la para uma @step função. O exemplo a seguir produz um erro:

    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 as entradas e saídas de uma função são serializadas, há restrições quanto ao tipo de dados que podem ser passados como entrada ou saída de uma função. Consulte a seção Serialização e desserialização de dados Invocar uma função remota para obter mais detalhes. As mesmas restrições se aplicam às funções @step decoradas.

  • Qualquer objeto que tenha um cliente boto não pode ser serializado, portanto, você não pode passar esses objetos como entrada ou saída de uma função @step decorada. Por exemplo, classes de SDK clientes do SageMaker PythonEstimator, como, ePredictor, não Processor podem ser serializadas.

Importações de funções

Você deve importar as bibliotecas exigidas pela etapa interna em vez de fora da função. Se você importá-los no escopo global, corre o risco de uma colisão de importação ao serializar a função. Por exemplo, sklearn.pipeline.Pipeline pode ser substituído por. sagemaker.workflow.pipeline.Pipeline

Referenciando membros filhos do valor de retorno da função

Se você fizer referência a membros filhos do valor de retorno de uma função @step -decorada, as seguintes limitações se aplicam:

  • Você pode referenciar os membros secundários com [] se o DelayedReturn objeto representar uma tupla, lista ou ditado, conforme mostrado no exemplo a seguir:

    delayed_return[0] delayed_return["a_key"] delayed_return[1]["a_key"]
  • Você não pode descompactar uma saída de tupla ou lista porque o comprimento exato da tupla ou lista subjacente não pode ser conhecido quando você invoca a função. O exemplo a seguir produz um erro:

    a, b, c = func() # this raises ValueError
  • Você não pode iterar sobre um DelayedReturn objeto. O exemplo a seguir gera um erro:

    for item in func(): # this raises a NotImplementedError
  • Você não pode referenciar membros secundários arbitrários com '.'. O exemplo a seguir produz um erro:

    delayed_return.a_child # raises AttributeError

Recursos de pipeline existentes que não são suportados

Você não pode usar o @step decorador com os seguintes recursos de pipeline: