python-3.x - 使用 Keras 的生成器 model.fit_generator

标签 python-3.x iterator keras generator

我最初尝试使用 generator编写自定义生成器以训练 Keras 模型时的语法。所以我yield编辑来自 __next__ .但是,当我尝试使用 model.fit_generator 训练我的模式时我会得到一个错误,我的生成器不是迭代器。修复是更改 yieldreturn这也需要重新调整 __next__ 的逻辑跟踪状态。相比出租yield比较麻烦为我做这项工作。

有什么方法可以让我用 yield 完成这项工作?如果我必须使用 return,我将需要编写更多的迭代器,这些迭代器必须具有非常笨拙的逻辑。陈述。

最佳答案

我无法帮助调试您的代码,因为您没有发布它,但我缩写了我为语义分割项目编写的自定义数据生成器,供您用作模板:

def generate_data(directory, batch_size):
    """Replaces Keras' native ImageDataGenerator."""
    i = 0
    file_list = os.listdir(directory)
    while True:
        image_batch = []
        for b in range(batch_size):
            if i == len(file_list):
                i = 0
                random.shuffle(file_list)
            sample = file_list[i]
            i += 1
            image = cv2.resize(cv2.imread(sample[0]), INPUT_SHAPE)
            image_batch.append((image.astype(float) - 128) / 128)

        yield np.array(image_batch)

用法:
model.fit_generator(
    generate_data('~/my_data', batch_size),
    steps_per_epoch=len(os.listdir('~/my_data')) // batch_size)

关于python-3.x - 使用 Keras 的生成器 model.fit_generator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46493419/

相关文章:

c++ - 在 leveldb 的 c++ 示例中声明迭代器时出现段错误

c# - 将 pb 模型文件加载到 TensorFlowSharp 中

python - 如何将年龄和性别数据添加到卷积神经网络的图像中?

python - 如何在 Django 中更改 JsonResponse 的状态

python - 从排序列表创建字典

python - 更新 pip 支持的标签

python - 在keras中创建一个混合数据生成器(images,csv)

python - 如何访问具有特定 Class 属性值的 Class 实例?

C++ 迭代器和继承

带有引用参数的 C++ 函数因迭代器而出错。求解释