0

输入是一个可变大小的数组。我只能在 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) 获取批次中元素数量的结果,然后进行更新?

4

1 回答 1

0

只需使用其中的所有元素dataset.get_next_xi(batch_size)作为输入并创建一个 theano 函数来计算平均成本(而不是只有一个成本)并使用平均成本进行更新。您可以从此处查看示例代码

他们使用训练模型中的 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]
    }
)

withcost是数据集批次的平均成本

于 2016-03-25T12:55:46.433 回答