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 meneruskan
DelayedReturn
,Properties
(langkah dari jenis lain),Parameter
, danExecutionVariable
objek ke fungsi@step
-decorated sebagai argumen. Tapi fungsi@step
yang didekorasi tidak mendukungJsonGet
danJoin
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 SerializationErrorAnda 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 tupleKarena 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 tidakProcessor
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
[]
jikaDelayedReturn
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: