Ошибка использования ImageDataGenerator с поиском Keras Tuner - PullRequest
0 голосов
/ 29 января 2020

Я использую from tensorflow.keras.preprocessing.image import ImageDataGenerator Вот код:

(x_train, y_train), (x_test, y_test) = cifar10.load_data()
x_train, x_test = x_train.astype('float32') / 255, x_test.astype('float32') / 255
y_train, y_test = to_categorical(y_train), to_categorical(y_test)

img_gen = ImageDataGenerator(
    rotation_range=10,
    width_shift_range=.1,
    height_shift_range=.1,
    horizontal_flip=True,
    vertical_flip=True,
    fill_mode="nearest"
)

img_gen_train = img_gen.flow(x_train, y_train, batch_size=128, shuffle=True)

rand_tuner = RandomSearch(hypermodel=hypermodel,
                          objective='val_acc',
                          max_trials=max_trials,
                          project_name='cifar10')

, затем я строю модель, используя keras-тюнер HyperModel:

def hypermodel(hp):
    units_choice = hp.Int('units', min_value=32, max_value=512, step=32, default=128)
    lr_choice = hp.Float('learning_rate', 1e-5, 1e-2, sampling='LOG', default=1e-3)
    dropout_rate_choice = hp.Float('rate', 0, .5, step=.1, default=.2)
    filters_choice = hp.Choice('num_filters', values=[32, 64], default=64)

    model = Sequential()
    model.add(Conv2D(filters=16, kernel_size=3, 
                            activation='relu', input_shape=input_shape))
    model.add(Dropout(rate=dropout_rate_choice))
    model.add(Flatten())
    model.add(Dense(units=units_choice, activation='relu'))
    model.add(Dense(num_labels, activation='softmax'))
    model.compile(loss='sparse_categorical_crossentropy',
                optimizer=Adam(lr_choice),
                metrics=['accuracy'])

    return model

После этого, в попытке Поиск наилучший получил ошибку: enter image description here

Как с этим бороться?

1 Ответ

0 голосов
/ 02 февраля 2020

Похоже, Sparse_categorical_crossentropy был не лучшим выбором для генератора, и в этом была вся проблема.

Ссылка: https://github.com/keras-team/keras-tuner/issues/223

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