我正在尝试加载一个本Map像数据集并使用它来训练我的模型。我正在像这样加载数据集。
data_load = tk.utils.image_dataset_from_directory(
dir,
labels="inferred",
batch_size=128,
image_size=image_shape,
shuffle=True,
seed=42,
validation_split=0.2,
subset="training",
)
这里 dir 是我的数据存储的本地路径。2当我使用这个数据训练我的模型时,使用 model.fit,我得到这个错误。
---------------------------------------------------------------------------
InvalidArgumentError Traceback (most recent call last)
c:\Users\HP\Desktop\SBU\Courses\spring23\ese577\Labs\Lab3\lenet.ipynb Cell 8 in 2
1 epoch = 15
----> 2 hist = model.fit(data.train, batch_size=batch_size, epochs=epoch)
File c:\python10\lib\site-packages\keras\utils\traceback_utils.py:70, in filter_traceback..error_handler(*args, **kwargs)
67 filtered_tb = _process_traceback_frames(e.__traceback__)
68 # To get the full stack trace, call:
69 # `tf.debugging.disable_traceback_filtering()`
---> 70 raise e.with_traceback(filtered_tb) from None
71 finally:
72 del filtered_tb
File c:\python10\lib\site-packages\tensorflow\python\eager\execute.py:52, in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
50 try:
51 ctx.ensure_initialized()
---> 52 tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
53 inputs, attrs, num_outputs)
54 except core._NotOkStatusException as e:
55 if name is not None:
InvalidArgumentError: Graph execution error:
Number of channels inherent in the image must be 1, 3 or 4, was 2
[[{{node decode_image/DecodeImage}}]]
[[IteratorGetNext]] [Op:__inference_train_function_4955]
有趣的是它总是在这个阶段抛出这个错误
Epoch 1/15
9/124 [=>............................] - ETA: 6:36 - loss: 5.0484 - accuracy: 0.4852
当我搜索类似的错误时,我发现它通常是在阅读bmp图像时观察到的,我所有的图像都是jpg,但我仍然得到这个错误。
如何修复这个错误,或者如何识别坏图像,以便我可以从数据集中删除它并继续我的训练?
1条答案
按热度按时间sbdsn5lh1#
你将不得不过滤掉任何引起问题的图像。2我使用下面的代码来处理一个目录中的所有图像,并检测有缺陷的图像,这样我就可以从数据集中删除它们。