Python ValueError:检查输入时出错:预期输入_1有4个维度,但得到了具有形状的数组(6243、256、256)

Python ValueError:检查输入时出错:预期输入_1有4个维度,但得到了具有形状的数组(6243、256、256),python,keras,Python,Keras,我想将标签附加到培训数据集上,并按照 def one_hot_label(img): label = img if label == 'A': ohl = np.array([1, 0]) elif label == 'B': ohl = np.array([0, 1]) return ohl def train_data_with_label(): train_images = [] for i in tqdm(

我想将标签附加到培训数据集上,并按照

def one_hot_label(img):
    label = img
    if label == 'A':
        ohl = np.array([1, 0])
    elif label == 'B':
        ohl = np.array([0, 1])
    return ohl

def train_data_with_label():
    train_images = []
    for i in tqdm(os.listdir(train_data)):
        path_pre = os.path.join(train_data, i)
        for img in os.listdir(path_pre):
            if img.endswith('.jpg'):
                path = os.path.join(path_pre, img)
                img = cv2.imread(path, cv2.IMREAD_GRAYSCALE)
                train_images.append([np.array(img), one_hot_label(i)])
    shuffle(train_images)
    return train_images
但是,在Keras上执行输入时返回错误

training_images = train_data_with_label()
tr_img_data = np.array([i[0] for i in training_images])
tr_lbl_data = np.array([i[1] for i in training_images])

model = Sequential()
model.add(InputLayer(input_shape=(256, 256, 1)))

有人能帮我修复吗?

您的输入层需要一个shape
(batch\u size,256,256,1)
数组,但看起来您正在传入shape
(batch\u size,256,256)
的数据。您可以尝试按如下方式重塑培训数据:

tr_img_data = np.expand_dims(tr_img_data, axis=-1) 

您是否检查了多维数组的
numpy.append
行为?返回如下[array([[231,234,235,…,238,239,240],[233,235,…,234,237,240],[229,231,231,…,227,230,233],…,[218,217,222,…,193,197,224],[213,212,217,…,198,200,228],[210,209,214,…,206,208,236]],dtype=uint8),数组([1,0])]我不确定输入层如何处理背面的数组