Я создаю модель U-Net для выявления рака молочной железы. Набор данных я взял отсюда: https://www.kaggle.com/datasets/aryasha ... etНесмотря на то, что все изображения имеют формат png, при попытке обучения моей модели возникает ошибка, что мои изображения не имеют адекватного формата.
вот ошибка:
def preprocess_image(image, mask, target_size=(256, 256)):
try:
# Decode the image and mask safely
image = tf.io.decode_image(image, channels=3, expand_animations=False)
mask = tf.io.decode_image(mask, channels=1, expand_animations=False)
# Check for undefined or zero dimensions
if image.shape is None or image.shape[0] == 0 or image.shape[1] == 0:
print(f"Error: Image has undefined or zero dimensions: {image.shape}")
return None, None
if mask.shape is None or mask.shape[0] == 0 or mask.shape[1] == 0:
print(f"Error: Mask has undefined or zero dimensions: {mask.shape}")
return None, None
# Ensure the image has exactly 3 channels (RGB)
if image.shape[-1] != 3:
print(f"Error: Image does not have 3 channels (found {image.shape[-1]}).")
return None, None
# Normalize the image to range [0, 1]
image = tf.image.convert_image_dtype(image, tf.float32)
# Resize image and mask to target dimensions (256*256)
image = tf.image.resize(image, target_size, method='nearest')
mask = tf.image.resize(mask, target_size, method='nearest')
# Convert mask to a binary (0 or 1) format for classification tasks
mask = tf.cast(tf.math.reduce_max(mask, axis=-1, keepdims=True) > 0, tf.float32) # Ensure binary mask
return image, mask
except Exception as e:
print(f"Error during preprocessing: {str(e)}")
return None, None
# Apply the preprocessing function to the dataset
image_ds = dataset.map(preprocess_image)
# Filter out None values returned by preprocess_image
image_ds = image_ds.filter(lambda img, mask: img is not None and mask is not None)
Я попробовал несколько способов исправить это с помощью Chatgpt, но ничего не помогло.
Я создаю модель U-Net для выявления рака молочной железы. Набор данных я взял отсюда: https://www.kaggle.com/datasets/aryashah2k/breast-ultrasound-images-datasetНесмотря на то, что все изображения имеют формат png, при попытке обучения моей модели возникает ошибка, что мои изображения не имеют адекватного формата. вот ошибка: [code]--------------------------------------------------------------------------- InvalidArgumentError Traceback (most recent call last) Cell In[51], line 7 5 train_dataset = image_ds.cache().shuffle(BUFFER_SIZE).batch(BATCH_SIZE) 6 print(image_ds.element_spec) ----> 7 model_history = unet.fit(train_dataset, epochs=EPOCHS)
File ~\anaconda3\Lib\site-packages\keras\src\utils\traceback_utils.py:122, in filter_traceback..error_handler(*args, **kwargs) 119 filtered_tb = _process_traceback_frames(e.__traceback__) 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
File ~\anaconda3\Lib\site-packages\tensorflow\python\eager\execute.py:53, in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name) 51 try: 52 ctx.ensure_initialized() ---> 53 tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name, 54 inputs, attrs, num_outputs) 55 except core._NotOkStatusException as e: 56 if name is not None:
InvalidArgumentError: Graph execution error:
Detected at node decode_image/DecodeImage defined at (most recent call last):
Error in user-defined function passed to MapDataset:3 transformation with iterator: Iterator::Root::Prefetch::BatchV2::Shuffle::MemoryCacheImpl::Filter::ParallelMapV2: Unknown image file format. One of JPEG, PNG, GIF, BMP required. [[{{node decode_image/DecodeImage}}]] [[IteratorGetNext]] [Op:__inference_one_step_on_iterator_9520] [/code] Ошибка возникает только при попытке обучения модели и относится к этой функции: [code]def preprocess_image(image, mask, target_size=(256, 256)): try: # Decode the image and mask safely image = tf.io.decode_image(image, channels=3, expand_animations=False) mask = tf.io.decode_image(mask, channels=1, expand_animations=False)
# Check for undefined or zero dimensions if image.shape is None or image.shape[0] == 0 or image.shape[1] == 0: print(f"Error: Image has undefined or zero dimensions: {image.shape}") return None, None
if mask.shape is None or mask.shape[0] == 0 or mask.shape[1] == 0: print(f"Error: Mask has undefined or zero dimensions: {mask.shape}") return None, None
# Ensure the image has exactly 3 channels (RGB) if image.shape[-1] != 3: print(f"Error: Image does not have 3 channels (found {image.shape[-1]}).") return None, None
# Normalize the image to range [0, 1] image = tf.image.convert_image_dtype(image, tf.float32)
# Resize image and mask to target dimensions (256*256) image = tf.image.resize(image, target_size, method='nearest') mask = tf.image.resize(mask, target_size, method='nearest')
# Convert mask to a binary (0 or 1) format for classification tasks mask = tf.cast(tf.math.reduce_max(mask, axis=-1, keepdims=True) > 0, tf.float32) # Ensure binary mask
return image, mask
except Exception as e: print(f"Error during preprocessing: {str(e)}") return None, None
# Apply the preprocessing function to the dataset image_ds = dataset.map(preprocess_image)
# Filter out None values returned by preprocess_image image_ds = image_ds.filter(lambda img, mask: img is not None and mask is not None) [/code] Я попробовал несколько способов исправить это с помощью Chatgpt, но ничего не помогло.
Я построил простую модель CNN, и она вызвала следующие ошибки:
Epoch 1/10
235/235 - ETA: 0s - loss: 540.2643 - accuracy: 0.4358
---------------------------------------------------------------------------
InvalidArgumentError Traceback (most recent...
Я пытаюсь преобразовать данные Base-64, содержащиеся в «данных», возвращаемых toDataURL Fabric.Canvas, в файл с соответствующим расширением (BMP). В результате появляется ошибка «Файл имеет неверный формат».
Я выполняю следующие действия.
Я пытаюсь преобразовать данные Base-64, содержащиеся в «данных», возвращаемых toDataURL Fabric.Canvas, в файл с соответствующим расширением (BMP). В результате появляется ошибка «Файл имеет неверный формат».
Я выполняю следующие действия.
Я пытаюсь преобразовать данные Base-64, содержащиеся в «данных», возвращаемых toDataURL Fabric.Canvas, в файл с соответствующим расширением (BMP). В результате появляется ошибка «Файл имеет неверный формат».
Я выполняю следующие действия.
Я пытаюсь преобразовать данные Base-64, содержащиеся в «данных», возвращаемых toDataURL Fabric.Canvas, в файл с соответствующим расширением (BMP). В результате появляется ошибка «Файл имеет неверный формат».
Я выполняю следующие действия.