tf.data দিয়ে কাস্টমাইজড ইনপুট পাইপলাইন
'tf.Data' মডেল বিল্ডিং পাইপলাইন কাস্টোমাইজ করতে সাহায্য করে, ডেটাসেটের ডেটা শাফল করে যাতে সব টাইপের ডেটা সমানভাবে বন্টে।
আরও পড়ুন: টেনসরফ্লো কী এবং কেরাস কীভাবে টেনসরফ্লোর সাথে নিউরাল নেটওয়ার্ক তৈরি করে?
ফ্লাওয়ার ডেটাসেট (হাজার হাজার ছবি, ৫ সাব-ডিরেক্টরি) ব্যবহার করা হয়েছে। গুগল কোল্যাবরে কোড রান করা হয়েছে।
print("কাস্টোমাইজড ইনপুট পাইপলাইন ডিফাইন")
list_ds = tf.data.Dataset.list_files(str(data_dir/'*/'), shuffle=False)
list_ds = list_ds.shuffle(image_count, reshuffle_each_iteration=False)
for f in list_ds.take(5):
print(f.numpy())
class_names = np.array(sorted([item.name for item in data_dir.glob('*') if item.name != "LICENSE.txt"]))
print(class_names)
print("ডেটাসেট ট্রেইনিং ও ভ্যালিডেশনে স্প্লিট")
val_size = int(image_count * 0.2)
train_ds = list_ds.skip(val_size)
val_ds = list_ds.take(val_size)
print("প্রতিটি সাবসেটের দৈর্ঘ্য")
print(tf.data.experimental.cardinality(train_ds).numpy())
print(tf.data.experimental.cardinality(val_ds).numpy())কোড ক্রেডিট: https://www.tensorflow.org/tutorials/load_data/images
আউটপুট
কাস্টোমাইজড ইনপুট পাইপলাইন ডিফাইন
b'/root/.keras/datasets/flower_photos/dandelion/14306875733_61d71c64c0_n.jpg'
b'/root/.keras/datasets/flower_photos/dandelion/8935477500_89f22cca03_n.jpg'
b'/root/.keras/datasets/flower_photos/sunflowers/3001531316_efae24d37d_n.jpg'
b'/root/.keras/datasets/flower_photos/daisy/7133935763_82b17c8e1b_n.jpg'
b'/root/.keras/datasets/flower_photos/tulips/17844723633_da85357fe3.jpg'
['daisy' 'dandelion' 'roses' 'sunflowers' 'tulips']
ডেটাসেট ট্রেইনিং ও ভ্যালিডেশনে স্প্লিট
প্রতিটি সাবসেটের দৈর্ঘ্য
2936
734
ব্যাখ্যা
- keras.preprocessing utilities 'tf.data.Dataset' তৈরি করে ইমেজ ডিরেক্টরি থেকে।
- আরো কন্ট্রোল পেতে 'tf.data' দিয়ে কাস্টোমাইজড ইনপুট পাইপলাইন লিখা যায়।
- ফাইল ট্রি স্ট্রাকচার থেকে 'class_names' লিস্ট কম্পাইল করা যায়।