Python Keras序列模型:批输入fit_生成器
我一直在尝试使用稀疏矩阵训练一个连续的Keras模型。虽然我在代码中指定了批大小,但它是在批大小=1(即一次一行)下进行训练的 代码如下: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:
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指示将每一行单独解析为该函数,而不是按指定的批量大小。您的总样本大小是多少,每个历元执行多少步?