【发布时间】:2019-05-02 16:47:35
【问题描述】:
Talos 是一个模块,可让您对已编写代码的 keras 模型进行超参数调整。在示例中使用它的常规方式是使用Scan 类,该类使用x 和y 参数进行实例化。这些参数应该分别包含一个带有训练数据和标签的数组。
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。