Batasan - Amazon SageMaker

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Batasan

Bagian berikut menguraikan batasan yang harus Anda waspadai ketika Anda menggunakan @step dekorator untuk langkah-langkah pipa Anda.

Keterbatasan argumen fungsi

Saat Anda meneruskan argumen input ke fungsi @step -decorated, batasan berikut berlaku:

  • Anda dapat meneruskanDelayedReturn, Properties (langkah dari jenis lain),Parameter, dan ExecutionVariable objek ke fungsi @step -decorated sebagai argumen. Tapi fungsi @step yang didekorasi tidak mendukung JsonGet dan Join objek sebagai argumen.

  • Anda tidak dapat langsung mengakses variabel pipeline dari suatu @step fungsi. Contoh berikut menghasilkan kesalahan:

    param = ParameterInteger(name="<parameter-name>", default_value=10) @step def func(): print(param) func() # this raises a SerializationError
  • Anda tidak dapat membuat sarang variabel pipeline di objek lain dan meneruskannya ke @step fungsi. Contoh berikut menghasilkan kesalahan:

    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
  • Karena input dan output dari suatu fungsi diserialisasi, ada batasan pada jenis data yang dapat diteruskan sebagai input atau output dari suatu fungsi. Lihat bagian Serialisasi dan deserialisasi data Memanggil fungsi jarak jauh untuk detail selengkapnya. Pembatasan yang sama berlaku untuk fungsi @step yang didekorasi.

  • Objek apa pun yang memiliki klien boto tidak dapat diserialisasi, oleh karena itu Anda tidak dapat meneruskan objek seperti input ke atau output dari fungsi @step -decorated. Misalnya, kelas SDK klien SageMaker Python sepertiEstimator,Predictor, dan tidak Processor dapat diserialisasi.

Fungsi impor

Anda harus mengimpor pustaka yang diperlukan oleh langkah di dalam daripada di luar fungsi. Jika Anda mengimpornya di lingkup global, Anda berisiko mengalami tabrakan impor saat membuat serial fungsi. Misalnya, sklearn.pipeline.Pipeline bisa diganti dengan. sagemaker.workflow.pipeline.Pipeline

Merujuk anggota anak dari nilai pengembalian fungsi

Jika Anda mereferensikan anggota turunan dari nilai pengembalian fungsi @step -decorated, batasan berikut berlaku:

  • Anda dapat mereferensikan anggota anak dengan [] jika DelayedReturn objek mewakili Tuple, list atau dict, seperti yang ditunjukkan pada contoh berikut:

    delayed_return[0] delayed_return["a_key"] delayed_return[1]["a_key"]
  • Anda tidak dapat membongkar keluaran tuple atau daftar karena panjang yang tepat dari tupel atau daftar yang mendasarinya tidak dapat diketahui saat Anda menjalankan fungsi tersebut. Contoh berikut menghasilkan kesalahan:

    a, b, c = func() # this raises ValueError
  • Anda tidak dapat mengulangi DelayedReturn objek. Contoh berikut menimbulkan kesalahan:

    for item in func(): # this raises a NotImplementedError
  • Anda tidak dapat mereferensikan anggota anak yang sewenang-wenang dengan '.'. Contoh berikut menghasilkan kesalahan:

    delayed_return.a_child # raises AttributeError

Fitur pipeline yang ada yang tidak didukung

Anda tidak dapat menggunakan @step dekorator dengan fitur pipeline berikut: