Keras 顺序模型:fit_generator 批量输入

Keras Sequential Model: fit_generator with batch input

我一直在尝试使用稀疏矩阵训练 Sequential Keras 模型。虽然我在代码中指定了批量大小,但它正在接受训练 batch_size = 1(即一次一行)。

代码如下:

def batch_generator(X_toGen, y_toGen = None, batch_size = 32):
    counter = 0
    sample_index = np.arange(X_toGen.shape[0])
    np.random.shuffle(sample_index)
    while True:
        batch_index = sample_index[batch_size*counter:min(batch_size*(counter+1), X_toGen.shape[0])]
        counter += 1
        X_batch = X_toGen[batch_index,:]
        if y_toGen is not None:
            y_batch = y_toGen[batch_index]
            yield X_batch.toarray(), y_batch
        else:
            yield X_batch.toarray()

任何人都可以帮我为顺序模型生成批输入吗?此外,当模型在 batch_size = 32 而不是 batch_size = 1 时训练时的准确性会有何不同?

谢谢

您得到的不是此生成器输出的 1 个批量大小。让我在这里举个例子:

如果您总共有 1000 个样本,并且您将其分成 10 个批次。然后使用 fit_generator 您将只得到 10 个批次,这意味着您有 10 个批次,每个批次有 10 个样本。

所以,关键是 fit_generator 显示批次数而不是样本总数。