【问题标题】:Use keras ImageDataGenerator.flow_from_directory() with Talos Scan()将 keras ImageDataGenerator.flow_from_directory() 与 Talos Scan() 一起使用
【发布时间】:2019-05-02 16:47:35
【问题描述】:

Talos 是一个模块,可让您对已编写代码的 keras 模型进行超参数调整。在示例中使用它的常规方式是使用Scan 类,该类使用xy 参数进行实例化。这些参数应该分别包含一个带有训练数据和标签的数组。

def modelbuilder(x_train, y_train, x_val, y_val, params):
    # modelbuilding 
    out = model.fit(x_train, y_train)
    return model, out

talos.Scan(x, y, params=params, model=modelbuilder)

不过,Keras 提供了第二种使用 ImageDataGenerator 类导入数据的方法,而不是数组,您只需要一个包含训练/验证图像的目录。

train_datagen = ImageDataGenerator()
train_generator = train_datagen.flow_from_directory(
    train_data_dir,
    batch_size=batch_size
)

我不清楚我怎么能Scan 这个,数据生成应该包含一个超参数(批量大小),它应该在modelbuilder 函数内。但同时Scan 要求数据参数作为数组提供。关于如何将 Talos 与 ImageDataGenerator 结合使用的任何建议。

【问题讨论】:

  • 我不了解 Talos,但我怀疑当前版本的 Talos 是否支持 fit_generator:github.com/autonomio/talos/issues/11。如果您有足够的内存空间,您可以尝试将所有数据加载到内存中并使用model.fit。从Talos README,您实际上可以将batch_size 作为超参数传递,但您必须使用model.fit

标签: python keras talos


【解决方案1】:

您现在可以在 Talos 实验中使用 fit_generator()。请参阅corresponding issue 了解更多信息。

没有关于“如何”的具体说明,因为根据 Talos 理念,您可以完全按照在独立 Keras 模型中使用 fit_generator 的方式使用它。只需将model.fit(...) 替换为model.fit_generator(...) 并根据您的需要使用生成器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-30
    • 2020-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-04
    • 2021-01-17
    • 1970-01-01
    相关资源
    最近更新 更多