输入是一个可变大小的数组。我只能在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)中获得批处理中元素数量的结果,然后进行更新?
发布于 2016-03-25 12:55:46
只需使用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]
}
)使用cost是数据集批处理的平均成本
https://stackoverflow.com/questions/36205137
复制相似问题