Python Keras序列模型:批输入fit_生成器

Python Keras序列模型:批输入fit_生成器,python,neural-network,keras,sparse-matrix,Python,Neural Network,Keras,Sparse Matrix,我一直在尝试使用稀疏矩阵训练一个连续的Keras模型。虽然我在代码中指定了批大小,但它是在批大小=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:

我一直在尝试使用稀疏矩阵训练一个连续的Keras模型。虽然我在代码中指定了批大小,但它是在批大小=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()
有人能帮我生成顺序模型的批输入吗?此外,当模型在批次大小=32而不是批次大小=1的情况下进行训练时,精度会有多大不同


谢谢

您从该生成器获得的不是1个批量大小的输出。让我举个例子:

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


因此,关键是fit_生成器显示批次数,而不是样本总数

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

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


因此,关键是fit_生成器显示批次数,而不是样本总数

因此,如果我理解正确,变量batch_size将指定总输入划分为的批次数(例如,如果有1280行输入,则batch_size=32将创建32批,每个批次40个样本)?否,它将创建40个批次,每个批次32个样本。每个批次将有与批次大小相等的样本。我不确定它是否是这样工作的。当我调用fit_generator函数时,UI指示每个行分别解析为函数,而不是按指定的批量大小。您的总样本大小是多少,每个历元执行多少步?如果我理解正确,变量batch_size将指定总输入分成的批次数(例如,如果有1280行输入,则batch_size=32将创建32批,每个批次40个样本)?否,它将创建40个批次,每个批次32个样本。每个批次将有与批次大小相等的样本。我不确定它是否是这样工作的。当我调用fit_生成器函数时,UI指示将每一行单独解析为该函数,而不是按指定的批量大小。您的总样本大小是多少,每个历元执行多少步?