اذهب إلى المحتوى

السؤال

نشر

السلام عليكم 

عند تدريب شبكه عصبيه CNN بيحصل الخطاء ده اثناء التدريب النموذج 

InvalidArgumentError                      Traceback (most recent call last)
/tmp/ipykernel_36/2234119796.py in <cell line: 0>()
----> 1 history = keras_models.fit(train_ds,validation_data=val_ds,epochs=20)

/usr/local/lib/python3.11/dist-packages/keras/src/utils/traceback_utils.py in error_handler(*args, **kwargs)
    120             # To get the full stack trace, call:
    121             # `keras.config.disable_traceback_filtering()`
--> 122             raise e.with_traceback(filtered_tb) from None
    123         finally:
    124             del filtered_tb

/usr/local/lib/python3.11/dist-packages/tensorflow/python/eager/execute.py in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
     57       e.message += " name: " + name
     58     raise core._status_to_exception(e) from None
---> 59   except TypeError as e:
     60     keras_symbolic_tensors = [x for x in inputs if _is_keras_symbolic_tensor(x)]
     61     if keras_symbolic_tensors:

InvalidArgumentError: Graph execution error:

Detected at node decode_image/DecodeImage defined at (most recent call last):
<stack traces unavailable>
Detected at node decode_image/DecodeImage defined at (most recent call last):
<stack traces unavailable>
2 root error(s) found.
  (0) INVALID_ARGUMENT:  Input size should match (header_size + row_size * abs_height) but they differ by 2
	 [[{{node decode_image/DecodeImage}}]]
	 [[IteratorGetNext]]
	 [[IteratorGetNext/_4]]
  (1) INVALID_ARGUMENT:  Input size should match (header_size + row_size * abs_height) but they differ by 2
	 [[{{node decode_image/DecodeImage}}]]
	 [[IteratorGetNext]]
0 successful operations.
0 derived errors ignored. [Op:__inference_multi_step_on_iterator_13769]

مع العلم انا بستخدم الداله دي في تحميل البيانات 

train_ds = tf.keras.utils.image_dataset_from_directory(
    '/kaggle/input/dog-and-cat-classification-dataset/PetImages',
    image_size=(128, 128),
    batch_size=32,
    labels="inferred",
    label_mode="int",
    validation_split=0.2,
    subset="training",
    seed=123,
)

 

Recommended Posts

  • 0
نشر

لديك مشكلة في الملفات، فالدالة image_dataset_from_directory تقرأ كل ملف في المجلد، ولو تم قراءة ملف تالف، يتوقف التدريب بأكمله.

عليك المرور على جميع الصور في مجلدي Cat و Dog وحذف أي ملف لا يمكن فتحه كصورة صالحة، ومتاح ذلك سهولة من خلال مكتبة Pillow، عن طريق السكريبت التالي، قم بتنفيذه في خلية منفصلة قبل الكود الذي يقوم بإنشاء train_ds و val_ds:

import os
import PIL
from PIL import Image
from pathlib import Path

cat_path = Path("/kaggle/input/dog-and-cat-classification-dataset/PetImages/Cat")
dog_path = Path("/kaggle/input/dog-and-cat-classification-dataset/PetImages/Dog")

image_extensions = [".png", ".jpg", ".jpeg"]  
img_paths = [cat_path, dog_path]

for path in img_paths:
    print(f"Checking directory: {path}")
    for filepath in path.glob("*"):
        if filepath.suffix.lower() in image_extensions:
            try:
                img = Image.open(filepath)
                img.verify()
            except (IOError, SyntaxError, PIL.UnidentifiedImageError) as e:
                print(f"Deleting corrupt image file: {filepath}")
                try:
                    os.remove(filepath)
                except Exception as remove_error:
                    print(f"Could not delete file: {filepath}, Error: {remove_error}")

بالطبع عليك تعديل مسار cat_path وdog_path للمسار الصحيح لديك في بيئة Kaggle

  • 0
نشر
بتاريخ 6 ساعة قال Mustafa Suleiman:

لديك مشكلة في الملفات، فالدالة image_dataset_from_directory تقرأ كل ملف في المجلد، ولو تم قراءة ملف تالف، يتوقف التدريب بأكمله.

عليك المرور على جميع الصور في مجلدي Cat و Dog وحذف أي ملف لا يمكن فتحه كصورة صالحة، ومتاح ذلك سهولة من خلال مكتبة Pillow، عن طريق السكريبت التالي، قم بتنفيذه في خلية منفصلة قبل الكود الذي يقوم بإنشاء train_ds و val_ds:

import os
import PIL
from PIL import Image
from pathlib import Path

cat_path = Path("/kaggle/input/dog-and-cat-classification-dataset/PetImages/Cat")
dog_path = Path("/kaggle/input/dog-and-cat-classification-dataset/PetImages/Dog")

image_extensions = [".png", ".jpg", ".jpeg"]  
img_paths = [cat_path, dog_path]

for path in img_paths:
    print(f"Checking directory: {path}")
    for filepath in path.glob("*"):
        if filepath.suffix.lower() in image_extensions:
            try:
                img = Image.open(filepath)
                img.verify()
            except (IOError, SyntaxError, PIL.UnidentifiedImageError) as e:
                print(f"Deleting corrupt image file: {filepath}")
                try:
                    os.remove(filepath)
                except Exception as remove_error:
                    print(f"Could not delete file: {filepath}, Error: {remove_error}")

بالطبع عليك تعديل مسار cat_path وdog_path للمسار الصحيح لديك في بيئة Kaggle

انا عملت الكود ده وبعد ما عملت Run الكود اشتغل والنتجيه كانت كل تمام يعني مافيش صور تافه ازي مش عارف مع ان بعد كده بدرب النموذج طهر بردون نفس الخطاء ؟

  • 0
نشر

هو ده حضرتك

Epoch 1/10
161/625 ━━━━━━━━━━━━━━━━━━━━ 8s 19ms/step - accuracy: 0.5074 - loss: 7.7238
Corrupt JPEG data: 2226 extraneous bytes before marker 0xd9
264/625 ━━━━━━━━━━━━━━━━━━━━ 6s 18ms/step - accuracy: 0.5070 - loss: 5.4437
Corrupt JPEG data: 65 extraneous bytes before marker 0xd9
Corrupt JPEG data: 239 extraneous bytes before marker 0xd9
268/625 ━━━━━━━━━━━━━━━━━━━━ 6s 18ms/step - accuracy: 0.5070 - loss: 5.3865
---------------------------------------------------------------------------
InvalidArgumentError                      Traceback (most recent call last)
/tmp/ipykernel_36/945077657.py in <cell line: 0>()
----> 1 history = keras_models.fit(
      2     train_ds,
      3     validation_data=val_ds,
      4     epochs=10,
      5     callbacks=[tf.keras.callbacks.EarlyStopping(

/usr/local/lib/python3.11/dist-packages/keras/src/utils/traceback_utils.py in error_handler(*args, **kwargs)
    120             # To get the full stack trace, call:
    121             # `keras.config.disable_traceback_filtering()`
--> 122             raise e.with_traceback(filtered_tb) from None
    123         finally:
    124             del filtered_tb

/usr/local/lib/python3.11/dist-packages/tensorflow/python/eager/execute.py in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
     57       e.message += " name: " + name
     58     raise core._status_to_exception(e) from None
---> 59   except TypeError as e:
     60     keras_symbolic_tensors = [x for x in inputs if _is_keras_symbolic_tensor(x)]
     61     if keras_symbolic_tensors:

InvalidArgumentError: Graph execution error:

Detected at node decode_image/DecodeImage defined at (most recent call last):
<stack traces unavailable>
Detected at node decode_image/DecodeImage defined at (most recent call last):
<stack traces unavailable>
2 root error(s) found.
  (0) INVALID_ARGUMENT:  Input size should match (header_size + row_size * abs_height) but they differ by 2
	 [[{{node decode_image/DecodeImage}}]]
	 [[IteratorGetNext]]
	 [[IteratorGetNext/_2]]
  (1) INVALID_ARGUMENT:  Input size should match (header_size + row_size * abs_height) but they differ by 2
	 [[{{node decode_image/DecodeImage}}]]
	 [[IteratorGetNext]]
0 successful operations.
0 derived errors ignored. [Op:__inference_multi_step_on_iterator_39708]

الخطاء ده بيحصل اثناء تدريب الشبكه العصبه CNN

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...