首页 > 解决方案 > 图像分类问题中的 KerasTuner

问题描述

我正在做图像分类。我正在尝试使用经典方法(GridSearch、Pipeline)来寻找最佳参数,但是当我使用它导入图像时,ImageDataGenerator它的效果并不好。

在寻找解决方案的过程中,我发现KerasTuner(以前从未听说过)。我在网站上找到的代码示例似乎并不难实现。所以我试了一下。但是仅进行培训评估(不是任何测试数据的结果)花费的时间太长。所以我想也许我在脚本中做错了什么(见下文)

它已经在 2080Ti 上运行了第二天,我什至没有val_accuracy. 因为accuracy我已经拥有了,老实说,这很棒0.9736loss:0.0604但要花一生的时间才能得到真正的结果吗?

我的数据集包含 12000 张用于训练的图像和 1600 张用于测试的图像。(4个班)

from kerastuner.applications import HyperResNet
from kerastuner.tuners import Hyperband
from keras.preprocessing.image import ImageDataGenerator

train_datagen = ImageDataGenerator(
        rescale=1./255,
        horizontal_flip=True
)

# augmentation configuration for testing, only rescale
test_datagen = ImageDataGenerator(rescale=1./255)

batch_size = 128

train_generator = train_datagen.flow_from_directory(
        '/media/data/working_dir/categories/readytotest/train',
        target_size=(240, 320),
        color_mode="grayscale",
        batch_size=batch_size,
        shuffle=True,
        class_mode='categorical')

validation_generator = test_datagen.flow_from_directory(
        '/media/data/working_dir/categories/readytotest/test',
        target_size=(240, 320),
        color_mode="grayscale",
        batch_size=batch_size,
        shuffle=True,
        class_mode='categorical')

hypermodel = HyperResNet(input_shape=(240, 320, 1), classes=4)

tuner = Hyperband(
    hypermodel,
    objective='val_accuracy',
    max_epochs=5,
    directory='/media/data/working_dir/scr/models/',
    project_name='first_kt')

print("SUMMARY OF THE TASK")
tuner.search_space_summary()

# perform analyses
N_EPOCH_SEARCH = 5
tuner.search(train_generator,
             epochs=N_EPOCH_SEARCH,
             validation_data=validation_generator)
``

标签: tensorflowimage-processingkerasdeep-learningneural-network

解决方案


推荐阅读