عامر ابراهيم نشر 24 سبتمبر 2021 أرسل تقرير نشر 24 سبتمبر 2021 لدي قائمة مكونة من قوائم بأحجام مختلفة (مجموعة بيانات) وأريد تحويلها tf.data.Dataset، كيف يمكنني القيام بذلك؟ على سبيل المثال القائمة التالية كيف نحولها إلى Dataset: li = [[1,11], [1,2,3]] 1 اقتباس
1 Ali Haidar Ahmad نشر 24 سبتمبر 2021 أرسل تقرير نشر 24 سبتمبر 2021 يمكنك استخدام الدالة tf.data.Dataset.from_generator لتحويل أي iterable في بايثون (أي قوائم أو قواميس أو tubles أو set) إلى Dataset ولها الشكل التالي: from_generator( generator, output_types=None, output_shapes=None ) #كما ذكرنا iter الوسيط الأول هو أي كائن # output_shapes: None أبعاد المخرجات وفي حالتك كونها أحجام مختلفة نضع # output_types: نمط الإخراج لتطبيقها على مثالك كالتالي: import tensorflow as tf li = [[1,11], [1,2,3]] #from_generator استخدام الدالة #none كون الأحجام مختلفة نضع المخرجات dataset = tf.data.Dataset.from_generator(lambda: li, tf.int32, output_shapes=[None]) # وسنستعرضها الآن iterator = dataset.make_one_shot_iterator() next_element = iterator.get_next() with tf.Session() as sess: print(sess.run(next_element)) # '[1,11]' print(sess.run(next_element)) # '[1,2,3]' كما يمكنك استخدام الدالة from_tensor_slices كالتالي: dataset = tf.data.Dataset.from_tensor_slices(tf.ragged.constant(li)) # عرضها for s in dataset: print(s) """ <tf.RaggedTensor [[1, 11]]> <tf.RaggedTensor [[1, 2, 3]]> """ 1 اقتباس
1 Ahmed Sharshar نشر 27 سبتمبر 2021 أرسل تقرير نشر 27 سبتمبر 2021 بالاضافة لاجابة علي، اذا كنت تستخدم tensorflow 2 فهناك طريقة أبسط وأسرع من استخدام generator عن طريق التعامل مع Tensor مباشرة كالتالي: t = [[[4,2]], [[3,4,5]]] rt=tf.ragged.constant(t) dataset = tf.data.Dataset.from_tensor_slices(rt) for x in dataset: print(x) >>> <tf.RaggedTensor [[4, 2]]> >>> <tf.RaggedTensor [[3, 4, 5]]> والنسخ الأحدث تستطيع تحويلها ببساطة كالتالي: dataset = tf.data.Dataset.from_tensor_slices([1, 2, 3]) for element in dataset: print(element) >>> tf.tensor( 1 ,shape=(), dtype=int32) >>> tf.tensor( 2 ,shape=(), dtype=int32) >>> tf.tensor( 3 ,shape=(), dtype=int32) اقتباس
السؤال
عامر ابراهيم
لدي قائمة مكونة من قوائم بأحجام مختلفة (مجموعة بيانات) وأريد تحويلها tf.data.Dataset، كيف يمكنني القيام بذلك؟ على سبيل المثال القائمة التالية كيف نحولها إلى Dataset:
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.