در این سند نحوه انجام تبدیل های رایج با tf.transform را شرح می دهیم.
ما فرض میکنیم که شما قبلاً خط لوله پرتو را در امتداد خطوط مثالها ساختهاید و فقط آنچه را که باید به preprocessing_fn
و احتمالاً مدل اضافه شود، توضیح میدهید.
با استفاده از داده های رشته/دسته
preprocessing_fn
زیر یک واژگان را بر روی مقادیر ویژگی x
با توکنها به ترتیب فرکانس نزولی محاسبه میکند، مقادیر ویژگی x
را به شاخص آنها در واژگان تبدیل میکند و در نهایت یک کدگذاری یکباره برای خروجی انجام میدهد.
این امر به عنوان مثال در موارد استفاده که ویژگی برچسب یک رشته طبقه بندی شده است رایج است. رمزگذاری یک داغ حاصل برای آموزش آماده است.
def preprocessing_fn(inputs):
integerized = tft.compute_and_apply_vocabulary(
inputs['x'],
num_oov_buckets=1,
vocab_filename='x_vocab')
one_hot_encoded = tf.one_hot(
integerized,
depth=tf.cast(tft.experimental.get_vocabulary_size_by_name('x_vocab') + 1,
tf.int32),
on_value=1.0,
off_value=0.0)
return {
'x_out': one_hot_encoded,
}
محاسبه میانگین برای داده های از دست رفته
در این مثال، ویژگی x
یک ویژگی اختیاری است که به صورت tf.SparseTensor
در preprocessing_fn
نشان داده شده است. برای تبدیل آن به یک تانسور متراکم، میانگین آن را محاسبه میکنیم و میانگین را به عنوان مقدار پیشفرض زمانی که در یک نمونه وجود ندارد، تنظیم میکنیم.
تانسور متراکم حاصل شکل [None, 1]
را خواهد داشت، None
بعد دسته ای را نشان می دهد، و برای بعد دوم، تعداد مقادیری خواهد بود که x
می تواند در هر نمونه داشته باشد. در این مورد 1 است.
def preprocessing_fn(inputs):
return {
'x_out': tft.sparse_tensor_to_dense_with_shape(
inputs['x'], default_value=tft.mean(x), shape=[None, 1])
}