Ali Ahmed55 نشر الاثنين في 11:59 أرسل تقرير نشر الاثنين في 11:59 السلام عليكم هو اي الفرق مابين tf.data.Dataset.list_files - tf.io.read_file() - tf.image.decode_jpeg ؟ 3 اقتباس
0 ياسر مسكين نشر الاثنين في 12:06 أرسل تقرير نشر الاثنين في 12:06 وعليكم السلام ورحمة الله تعالى وبركاته، بالنسبة ل tf.data.Dataset.list_files فهو يعمل كمستكشف أولي بمعنى أنه يستعرض نظام الملفات الخاص بك للعثور على ملفات معينة تتوافق مع نمطك مثل .jpg" لكنه لا يقوم بفتحها فعليا فهو ببساطة ينشئ مجموعة بيانات تحتوي على مسارات الملفات كسلاسل نصية. أي أنه يختلف ذلك عن tf.io.read_file() الذي يأخذ تلك المسارات المكتشفة ويسترجع المحتوى الخاص بكل ملف وهي البيانات الثنائية كما هي مخزنة في الملف، أي السلسلة من البايتات التي تكوّن الملف بدون أي معالجة أو تفسير مع الحفاظ على البيانات في شكلها المضغوط والمشفر دون تفسير ما تمثله البايتات. وأخيرا يقوم tf.image.decode_jpeg بتحويل تلك البايتات الخام إلى تمثيل بصري ذي معنى عن طريق فك الضغط وتفسير الترميز الخاص ب JPEG وتحويلها إلى متجه ثلاثي الأبعاد بأبعاد تمثل الارتفاع والعرض وقنوات الألوان التي يمكن لنموذجك معالجتها. 1 اقتباس
0 Ali Ahmed55 نشر الاثنين في 12:10 الكاتب أرسل تقرير نشر الاثنين في 12:10 تمام جدا بس بعد الخطوات دي كده انا حولت الصور الخام الي ارقم النمووذج يقدر يتعلم منها صح كده وانا عرف ان برد فيه خطوات معالجه تاني قبل التدريب النموذج بس انا اقصد انا الصور خالص بقات ارقم صح كده بتاريخ 4 دقائق مضت قال ياسر مسكين: وعليكم السلام ورحمة الله تعالى وبركاته، بالنسبة ل tf.data.Dataset.list_files فهو يعمل كمستكشف أولي بمعنى أنه يستعرض نظام الملفات الخاص بك للعثور على ملفات معينة تتوافق مع نمطك مثل .jpg" لكنه لا يقوم بفتحها فعليا فهو ببساطة ينشئ مجموعة بيانات تحتوي على مسارات الملفات كسلاسل نصية. أي أنه يختلف ذلك عن tf.io.read_file() الذي يأخذ تلك المسارات المكتشفة ويسترجع المحتوى الخاص بكل ملف وهي البيانات الثنائية كما هي مخزنة في الملف، أي السلسلة من البايتات التي تكوّن الملف بدون أي معالجة أو تفسير مع الحفاظ على البيانات في شكلها المضغوط والمشفر دون تفسير ما تمثله البايتات. وأخيرا يقوم tf.image.decode_jpeg بتحويل تلك البايتات الخام إلى تمثيل بصري ذي معنى عن طريق فك الضغط وتفسير الترميز الخاص ب JPEG وتحويلها إلى متجه ثلاثي الأبعاد بأبعاد تمثل الارتفاع والعرض وقنوات الألوان التي يمكن لنموذجك معالجتها. اقتباس
0 عبد الوهاب بومعراف نشر الاثنين في 12:20 أرسل تقرير نشر الاثنين في 12:20 لدينا tf.data.Dataset.list_files حيث تستخدم هذه الدالة لإنشاء كائن tf.data.Dataset يحتوي على قائمة بأسماء الملفات التي تتطابق مع النمط المحدد في pattern، و هذه الطريقة مفيدة عند العمل مع مجموعات بيانات كبيرة، حيث توفر وسيلة ديناميكية لتحميل الملفات دون الحاجة إلى تحديدها يدويا. أما tf.io.read_file فتعمل هذه الدالة على قراءة محتوى الملف المحدد كبيانات خام دون تفسيرها أو تحويلها إلى صيغة محددة، و تستخدم عادة كخطوة وسيطة عند التعامل مع الصور أو النصوص، حيث يتم تحميل البيانات من الملفات قبل معالجتها أو تحويلها إلى نوع بيانات قابل للاستخدام داخل TensorFlow. بالنسبة ل tf.image.decode_jpeg فتستخدم هذه الدالة لفك تشفير الصور المخزنة بصيغة JPEG وتحويلها إلى كائن Tensor، حيث تأخذ الدالة البيانات الخام التي تم تحميلها باستخدام tf.io.read_file، ثم تقوم بتحويلها إلى مصفوفة تمثل الصورة بالأبعاد، و يمكن تحديد عدد القنوات اللونية للصورة من خلال المعامل channels، حيث يمكن ضبطه إلى 3 للحصول على صورة ملونة أو 1 للحصول على صورة بتدرجات الرمادي، و هذه الدالة أساسية عند التعامل مع بيانات الصور في مشاريع تعلم الآلة ورؤية الحاسوب. 1 اقتباس
0 Ali Ahmed55 نشر الاثنين في 12:31 الكاتب أرسل تقرير نشر الاثنين في 12:31 طيب ممكن مثال بالكود ؟ 1 اقتباس
0 Mustafa Suleiman نشر الاثنين في 14:33 أرسل تقرير نشر الاثنين في 14:33 بتاريخ 1 ساعة قال Ali Ahmed55: طيب ممكن مثال بالكود ؟ فرضًا لدينا مجلد يحتوي على صور بصيغة JPEG، وتريد تحميلها وعرض أول صورة، فالطريقة كالتالي: import tensorflow as tf import matplotlib.pyplot as plt file_paths = tf.data.Dataset.list_files("./images/*.jpg") def load_and_decode_image(file_path): image_data = tf.io.read_file(file_path) image = tf.image.decode_jpeg(image_data, channels=3) return image dataset = file_paths.map(load_and_decode_image) iterator = iter(dataset) first_image = next(iterator) plt.imshow(first_image.numpy()) plt.axis('off') plt.show() في file_paths نقوم بإنشاء Dataset يحتوي على مسارات ملفات الصور التي تنتهي بـ .jpg في المجلد المحدد. و load_and_decode_image هي دالة تستقبل مسار ملف، تقرأه بـ tf.io.read_file، ثم تحول البايتات إلى صورة بـ tf.image.decode_jpeg. بينما ميثود map هي للتكرار على كل عنصر في الـ Dataset لتحويل المسارات إلى صور. وفي العرض plt.imshow(first_image.numpy()) نحدد أول صورة من الـ Dataset ونعرضها. وفي حال أردنا صيغة أخرى غير JPEG مثل PNG، نكتب tf.image.decode_png بدلاً من tf.image.decode_jpeg، وتستطيع أيضًا إضافة خطوات إضافية مثل تغيير حجم الصورة بـ tf.image.resize إذا لزم الأمر. 1 اقتباس
0 Ali Ahmed55 نشر الثلاثاء في 15:16 الكاتب أرسل تقرير نشر الثلاثاء في 15:16 تمام جدا الف شكراا جدا لحضرتك جزاك الله كل خير اقتباس
0 Ali Ahmed55 نشر الأربعاء في 20:04 الكاتب أرسل تقرير نشر الأربعاء في 20:04 بتاريخ On 24/3/2025 at 16:33 قال Mustafa Suleiman: فرضًا لدينا مجلد يحتوي على صور بصيغة JPEG، وتريد تحميلها وعرض أول صورة، فالطريقة كالتالي: import tensorflow as tf import matplotlib.pyplot as plt file_paths = tf.data.Dataset.list_files("./images/*.jpg") def load_and_decode_image(file_path): image_data = tf.io.read_file(file_path) image = tf.image.decode_jpeg(image_data, channels=3) return image dataset = file_paths.map(load_and_decode_image) iterator = iter(dataset) first_image = next(iterator) plt.imshow(first_image.numpy()) plt.axis('off') plt.show() في file_paths نقوم بإنشاء Dataset يحتوي على مسارات ملفات الصور التي تنتهي بـ .jpg في المجلد المحدد. و load_and_decode_image هي دالة تستقبل مسار ملف، تقرأه بـ tf.io.read_file، ثم تحول البايتات إلى صورة بـ tf.image.decode_jpeg. بينما ميثود map هي للتكرار على كل عنصر في الـ Dataset لتحويل المسارات إلى صور. وفي العرض plt.imshow(first_image.numpy()) نحدد أول صورة من الـ Dataset ونعرضها. وفي حال أردنا صيغة أخرى غير JPEG مثل PNG، نكتب tf.image.decode_png بدلاً من tf.image.decode_jpeg، وتستطيع أيضًا إضافة خطوات إضافية مثل تغيير حجم الصورة بـ tf.image.resize إذا لزم الأمر. أ.مصطفي انا عملت زي حضرتك بس فيه مشكله ودي المشكله --------------------------------------------------------------------------- FailedPreconditionError Traceback (most recent call last) <ipython-input-7-11035969bd6d> in <cell line: 2>() 1 iterator = iter(cats_images) ----> 2 first_image = next(iterator) 3 4 plt.imshow(first_image.numpy()) 5 plt.axis('off') /usr/local/lib/python3.10/dist-packages/tensorflow/python/data/ops/iterator_ops.py in __next__(self) 824 def __next__(self): 825 try: --> 826 return self._next_internal() 827 except errors.OutOfRangeError: 828 raise StopIteration /usr/local/lib/python3.10/dist-packages/tensorflow/python/data/ops/iterator_ops.py in _next_internal(self) 774 # to communicate that there is no more data to iterate over. 775 with context.execution_mode(context.SYNC): --> 776 ret = gen_dataset_ops.iterator_get_next( 777 self._iterator_resource, 778 output_types=self._flat_output_types, /usr/local/lib/python3.10/dist-packages/tensorflow/python/ops/gen_dataset_ops.py in iterator_get_next(iterator, output_types, output_shapes, name) 3084 return _result 3085 except _core._NotOkStatusException as e: -> 3086 _ops.raise_from_not_ok_status(e, name) 3087 except _core._FallbackException: 3088 pass /usr/local/lib/python3.10/dist-packages/tensorflow/python/framework/ops.py in raise_from_not_ok_status(e, name) 5981 def raise_from_not_ok_status(e, name) -> NoReturn: 5982 e.message += (" name: " + str(name if name is not None else "")) -> 5983 raise core._status_to_exception(e) from None # pylint: disable=protected-access 5984 5985 FailedPreconditionError: {{function_node __wrapped__IteratorGetNext_output_types_1_device_/job:localhost/replica:0/task:0/device:CPU:0}} Error in user-defined function passed to MapDataset:12 transformation with iterator: Iterator::Root::ParallelMapV2: /kaggle/input/microsoft-catsvsdogs-dataset/PetImages/Cat; Is a directory [[{{node ReadFile}}]] [Op:IteratorGetNext] name: انا حاسس المكشله في الكود ده cats = tf.data.Dataset.list_files('/kaggle/input/microsoft-catsvsdogs-dataset/PetImages/Cat') اقتباس
0 Mustafa Suleiman نشر الأربعاء في 20:24 أرسل تقرير نشر الأربعاء في 20:24 بتاريخ 17 دقائق مضت قال Ali Ahmed55: أ.مصطفي انا عملت زي حضرتك بس فيه مشكله ودي المشكله --------------------------------------------------------------------------- FailedPreconditionError Traceback (most recent call last) <ipython-input-7-11035969bd6d> in <cell line: 2>() 1 iterator = iter(cats_images) ----> 2 first_image = next(iterator) 3 4 plt.imshow(first_image.numpy()) 5 plt.axis('off') /usr/local/lib/python3.10/dist-packages/tensorflow/python/data/ops/iterator_ops.py in __next__(self) 824 def __next__(self): 825 try: --> 826 return self._next_internal() 827 except errors.OutOfRangeError: 828 raise StopIteration /usr/local/lib/python3.10/dist-packages/tensorflow/python/data/ops/iterator_ops.py in _next_internal(self) 774 # to communicate that there is no more data to iterate over. 775 with context.execution_mode(context.SYNC): --> 776 ret = gen_dataset_ops.iterator_get_next( 777 self._iterator_resource, 778 output_types=self._flat_output_types, /usr/local/lib/python3.10/dist-packages/tensorflow/python/ops/gen_dataset_ops.py in iterator_get_next(iterator, output_types, output_shapes, name) 3084 return _result 3085 except _core._NotOkStatusException as e: -> 3086 _ops.raise_from_not_ok_status(e, name) 3087 except _core._FallbackException: 3088 pass /usr/local/lib/python3.10/dist-packages/tensorflow/python/framework/ops.py in raise_from_not_ok_status(e, name) 5981 def raise_from_not_ok_status(e, name) -> NoReturn: 5982 e.message += (" name: " + str(name if name is not None else "")) -> 5983 raise core._status_to_exception(e) from None # pylint: disable=protected-access 5984 5985 FailedPreconditionError: {{function_node __wrapped__IteratorGetNext_output_types_1_device_/job:localhost/replica:0/task:0/device:CPU:0}} Error in user-defined function passed to MapDataset:12 transformation with iterator: Iterator::Root::ParallelMapV2: /kaggle/input/microsoft-catsvsdogs-dataset/PetImages/Cat; Is a directory [[{{node ReadFile}}]] [Op:IteratorGetNext] name: انا حاسس المكشله في الكود ده cats = tf.data.Dataset.list_files('/kaggle/input/microsoft-catsvsdogs-dataset/PetImages/Cat') بالضبط، الدالة tf.data.Dataset.list_files() تقوم بإرجاع قائمة بالمسارات التي تطابق النمط المُعطى، لكن أحد المسارات التي تم إرجاعها هو مسار مجلد (.../PetImages/Cat) ليس ملف صورة .jpg. والدالة tf.io.read_file لا تستطيع قراءة محتويات مجلد، هي مصممة لقراءة محتويات ملف واحد، بالتالي عندما حاولت دالة map تطبيق load_and_decode_image على مسار المجلد ذاك، فشلت عملية tf.io.read_file بداخله. أي المشكلة في tf.data.Dataset.list_files فعند تمرير مسار مجلد بدون أي نمط wildcard مثل * أو *.jpg في النهاية، فـ TensorFlow تعتبر أنك تريد ذلك المسار نفسه كعنصر وحيد في مجموعة البيانات، بالتالي أنت قمت بإنشاء مجموعة بيانات cats تحتوي على عنصر واحد فقط، وهو السلسلة النصية '/kaggle/input/microsoft-catsvsdogs-dataset/PetImages/Cat' يجب كتابة التالي: cats = tf.data.Dataset.list_files('/kaggle/input/microsoft-catsvsdogs-dataset/PetImages/Cat/*.jpg') 1 اقتباس
0 Ali Ahmed55 نشر الأربعاء في 20:27 الكاتب أرسل تقرير نشر الأربعاء في 20:27 بتاريخ 2 دقائق مضت قال Mustafa Suleiman: بالضبط، الدالة tf.data.Dataset.list_files() تقوم بإرجاع قائمة بالمسارات التي تطابق النمط المُعطى، لكن أحد المسارات التي تم إرجاعها هو مسار مجلد (.../PetImages/Cat) ليس ملف صورة .jpg. والدالة tf.io.read_file لا تستطيع قراءة محتويات مجلد، هي مصممة لقراءة محتويات ملف واحد، بالتالي عندما حاولت دالة map تطبيق load_and_decode_image على مسار المجلد ذاك، فشلت عملية tf.io.read_file بداخله. أي المشكلة في tf.data.Dataset.list_files فعند تمرير مسار مجلد بدون أي نمط wildcard مثل * أو *.jpg في النهاية، فـ TensorFlow تعتبر أنك تريد ذلك المسار نفسه كعنصر وحيد في مجموعة البيانات، بالتالي أنت قمت بإنشاء مجموعة بيانات cats تحتوي على عنصر واحد فقط، وهو السلسلة النصية '/kaggle/input/microsoft-catsvsdogs-dataset/PetImages/Cat' يجب كتابة التالي: cats = tf.data.Dataset.list_files('/kaggle/input/microsoft-catsvsdogs-dataset/PetImages/Cat/*.jpg') تمام جدا جدا الف شكراا جدا لحضرتك جزاك الله كل خير اقتباس
السؤال
Ali Ahmed55
السلام عليكم
هو اي الفرق مابين tf.data.Dataset.list_files - tf.io.read_file() - tf.image.decode_jpeg ؟
9 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.