theano - 如何拥有许多相同的功能

theano - how to have many of the same function

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

只需使用 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]
    }
)

with cost 是数据集 batch

的平均成本