ValueError: Ошибка при проверке ввода: ожидалось, что input_1 будет иметь 4 измерения, но получил массив с формой (6243, 256, 256) - PullRequest
0 голосов
/ 21 февраля 2019

Я хочу добавить метку в обучающий набор данных, и я делаю это как

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)))

Может кто-нибудь помочьмне это исправить?

1 Ответ

0 голосов
/ 21 февраля 2019

Ваш входной слой ожидает массив формы (batch_size, 256, 256, 1), но похоже, что вы передаете данные формы (batch_size, 256, 256).Вы можете попытаться изменить свои тренировочные данные следующим образом:

tr_img_data = np.expand_dims(tr_img_data, axis=-1) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...