এই নথিতে আমরা 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
হল একটি ঐচ্ছিক বৈশিষ্ট্য, যা preprocessing_fn
এ tf.SparseTensor
হিসাবে উপস্থাপিত হয়। এটিকে একটি ঘন টেনসরে রূপান্তর করার জন্য, আমরা এর গড় গণনা করি এবং একটি উদাহরণ থেকে অনুপস্থিত হলে গড়টিকে ডিফল্ট মান হিসাবে সেট করি।
ফলস্বরূপ ঘন টেনসরের আকৃতি থাকবে [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])
}