输入是一个可变大小的数组。我只能在train_model中一次处理一个给定示例的示例。我想累积批次中元素的目标总和,然后应用正则化和梯度下降。
目前,这是培训阶段,对每个元素xi进行更新。
for epoch in range(n_epochs):
minibatch_avg_cost = 0
for xi in dataset.get_next_xi(batch_size):
minibatch_avg_cost += train_model(xi)
print(minibatch_avg_cost)
如何从train_model(xi)获取批处理中元素数量的结果,然后进行更新?
答案 0 :(得分:0)
只需使用dataset.get_next_xi(batch_size)
中的所有元素作为输入,并创建一个theano函数来计算平均成本(而不是仅一个成本)并使用平均成本进行更新。您可以看到here
他们使用火车模型中的theano函数:
train_model = theano.function(
inputs=[index],
outputs=cost,
updates=updates,
givens={
x: train_set_x[index * batch_size: (index + 1) * batch_size],
y: train_set_y[index * batch_size: (index + 1) * batch_size]
}
)
带有cost
的是数据集批次的平均成本