Модель CNN,которая вводит список изображений,выводит список [int, int, float]

#python #tensorflow #deep-learning #conv-neural-network

Вопрос:

Я все еще новичок в глубоком обучении и CNN, и я не знаю, в чем заключается эта ошибка, так что кто-нибудь может мне помочь?

Эта модель предназначена для ввода массива изображений,а вывод представляет собой список элементов,и каждый элемент содержит int, int, float, и я не могу создать модель, которая не содержит ошибок.

Ошибка

Ошибка значения: Размеры должны быть равны, но равны 162 и 3 для ‘{{узел mean_squared_error/квадратное различие}} = Квадратное различие[T=DT_FLOAT](последовательный/dense_1/Relu, средний квадрат_error/Приведение)’ с входными фигурами: [?,162], [?,54,3].

Код

 import numpy as np
import os
from skimage import io
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

def SeperateDataFrameItems(imagesArray, maxCount):
    tempList = []
    finalList = []
    ct = 0
    for i in range(len(imagesArray)):
        if imagesArray[i][0] != '#':
            tempList.append(np.array([imagesArray[i][1], imagesArray[i][2], imagesArray[i][3]]))
            ct = ct   1
        else:
            for i in range(ct, maxCount):
                tempList.append(np.array([-1,-1,-1]))
            finalList.append(tempList)
            tempList = []
            ct = 0
    return np.stack(finalList, axis=0)

def HandleDesigndata(start, end):
    path = 'Designs/designs/'
    all_images = []
    for image_path in os.listdir(path):
        img = io.imread(path   image_path, as_gray=True)
        img = img.reshape([768, 607, 1])
        all_images.append(img)
    return np.array(all_images)

image_list = HandleDesigndata(100, 200)
circles_data = pd.read_csv('Data.csv')
circles_data = SeperateDataFrameItems(circles_data.to_numpy(), 54)

model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=(768, 607, 1)))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(162, activation='relu'))

model.compile(optimizer='adam', loss='mse', metrics=['accuracy'])

model.fit(x=image_list, y=circles_data, batch_size=100, epochs=10, validation_split=0.1)```