Модель Керас. функция соответствия имеет ошибку значения - PullRequest
0 голосов
/ 26 апреля 2020

Я пытаюсь тренировать модель с цифар-10. Однако ошибка значения происходит, когда я вызываю функцию fit. Пожалуйста, помогите мне с тем, что я сделал неправильно.

import tensorflow as tf 
from tensorflow import keras

from tensorflow.keras.datasets.cifar10 import load_data

import numpy as np
import matplotlib.pyplot as plt

tf.keras.datasets.cifar10.load_data()
(x_train,y_train),(x_test,y_test)=tf.keras.datasets.cifar10.load_data()

class_names = ['airplane', 'automobile', 'bird', 'cat', 'deer',
           'dog', 'frog', 'horse', 'ship', 'truck']

x_train.shape
len(y_train)
y_train
x_test.shape
len(y_test)


x_train=x_train/255.0
x_test=x_test/255.0

  model=keras.Sequential([
   keras.layers.Flatten(input_shape=(28, 28)),
   keras.layers.Dense(128, activation='relu'),
   keras.layers.Dense(10, activation='softmax')
])

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

 model.fit(x_train,y_train, epochs=5,batch_size=32)

Ниже приведено сообщение об ошибке.

 ValueError: Error when checking input: expected flatten_6_input to 
have 3 dimensions, but got array with shape (50000, 32, 32, 3)

1 Ответ

1 голос
/ 26 апреля 2020

Полагаю, вы взяли модель, разработанную для MNIST, и попробовали ее на CIFAR-10? Нужно сделать только одну настройку. Вам необходимо изменить форму ввода.

Использование:

input_shape=(32, 32, 3)

Потому что это размер изображения CIFAR-10. В более общем смысле вы можете использовать:

input_shape=(x_train.shape[1:])

Это указывает форму ввода, пропуская размер пакета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...