ValueError: Input 0 of layer "sequential" is incompatible with the layer: expected shape=(None, 270, 600, 3), found shape=(None, 600, 3)

Значит решил я создать нейронную сеть для змейки которая будет делать скриншот экрана а потом (уже с готовыми весами) будет анализировать ситуацию

import random
import keras
import time
from keras import backend as K
from tensorflow.keras.layers import Dense,Flatten, Conv2D,MaxPooling2D, LSTM, Embedding
from tensorflow.keras import layers
from tensorflow.keras.optimizers import Adam
import numpy
import pyautogui
from PIL import Image, ImageGrab            # библиотека базы выборок Mnist
from tensorflow import keras
from tensorflow.keras.layers import Dense, Flatten, Dropout, Conv2D, MaxPooling2D
from PIL import Image

model = keras.Sequential()
model.add(Conv2D(16, (3,3), padding='same', activation='relu', input_shape=(270, 600,3)))
model.add(MaxPooling2D((2, 2), strides=2))
model.add(MaxPooling2D((2, 2), strides=2))
model.add(Conv2D(32, (3,3), padding='same', activation='relu'))
model.add(MaxPooling2D((2, 2), strides=2))
model.add(Flatten())
model.add(Dense(16,activation='relu'))
model.add(Dense(8,activation='relu'))
model.compile(optimizer = Adam(0.001), loss=("mse"))

дальше она будет скриншотить экран с размером 600 на 270 и преобразовывать в массив чисел.

img2 = ImageGrab.grab((1, 30, 601, 300))
a = numpy.asarray(img2)

после этого преобразования у меня получается массив с размерами (270, 600, 3)

но после пробной попытки получить результаты(с рандомными весами нейронов) у меня получается ошибка. Место ошибки:

model.predict(a)

у меня почему то массив сжимается до 2-мерного(600,3) хотя я с ним ничего не делал

ValueError: Input 0 of layer "sequential" is incompatible with the layer: expected shape=(None, 270, 600, 3), found shape=(None, 600, 3)

подскажите, как исправить данную проблему


Ответы (0 шт):