Chromatic Scale
Искусственный Интеллект
(244911)
12 месяцев назад
Ошибка, с которой вы столкнулись, указывает на то, что ваша картинка для предсказания имеет неправильное количество измерений. Модель ожидает входные данные с четырьмя измерениями: (количество образцов, высота, ширина, каналы), но получает изображение с двумя измерениями.
Проблема здесь в том, как вы обрабатываете изображение перед предсказанием. Вы загружаете изображение, изменяете его размер и делите на 255, но не добавляете измерение для пакета (batch dimension) и канала. Давайте исправим ваш код для предсказания:
```python
import cv2
import numpy as np
# Загрузка изображения
img = cv2.imread('/content/пятёрка.jpg', cv2.IMREAD_GRAYSCALE)
# Проверка, что изображение загружено
if img is None:
print("Ошибка загрузки изображения")
else:
# Изменение размера изображения и нормализация
img = cv2.resize(img, (28, 28))
img = img.astype(np.float32) / 255.0
# Добавление измерений для пакета и каналов
img = np.expand_dims(img, axis=0) # Добавление измерения пакета
img = np.expand_dims(img, axis=-1) # Добавление измерения канала
# Сделать предсказание
predictions = modl.predict(img)
print(predictions)
```
Этот исправленный код должен корректно подготавливать ваше изображение и передавать его в модель для предсказания. Теперь `img` будет иметь форму `(1, 28, 28, 1)`, что соответствует ожиданиям модели.
и при запуске вот такая ошибка:
ValueError: in user code:
File "/usr/local/lib/python3.10/dist-packages/keras/src/engine/training.py", line 2440, in predict_function *
return step_function(self, iterator)
File "/usr/local/lib/python3.10/dist-packages/keras/src/engine/training.py", line 2425, in step_function **
outputs = model.distribute_ strategy.run (run_step, args=(data,))
File "/usr/local/lib/python3.10/dist-packages/keras/src/engine/training.py", line 2413, in run_step **
outputs = model.predict_step(data)
File "/usr/local/lib/python3.10/dist-packages/keras/src/engine/training.py", line 2381, in predict_step
return self(x, training=False)
File "/usr/local/lib/python3.10/dist-packages/keras/src/utils/traceback_utils.py", line 70, in error_handler
raise e.with_traceback(filtered_tb) from None
File "/usr/local/lib/python3.10/dist-packages/keras/src/engine/input_spec.py", line 253, in assert_input_compatibility
raise ValueError(
ValueError: Exception encountered when calling layer 'sequential_7' (type Sequential).
Input 0 of layer "conv2d_14" is incompatible with the layer: expected min_ndim=4, found ndim=2. Full shape received: (None, 28)
Call arguments received by layer 'sequential_7' (type Sequential):
• inputs=tf.Tensor(shape=(None, 28), dtype=float32)
• training=False
• mask=None
вот скрин с ошибкой
помогите пожалуйста я не понимаю в чём ошибка на картинках из тестовой выборки всё работает