【发布时间】:2018-05-29 04:16:37
【问题描述】:
我正在尝试运行一个训练循环,定期确定当前的平均损失并将其打印到控制台。为了确定损失,我想使用不同的批量大小。所以它是这样的:
dataset = create_dataset().shuffle(1000).repeat().batch(minibatch_size)
iterator = dataset.make_one_shot_iterator() # using this iterator in the graph
while ...:
session.run(...) # perform training
if epoch % 10 = 0:
test_avg_loss = session.run(avg_loss) # want a different number of items here
我希望在训练期间小批量大小为 10,但我想用 100 个数据点进行测试,以获得对平均损失的更好估计。如何让数据集在这里返回不同数量的项目?我尝试将placeholder 传递给batch,但似乎不受支持。错误是:
'ValueError : 无法按值捕获占位符(名称:batchSize,类型:占位符)。'
如果这似乎是一个更好的解决方案,我愿意完全使用不同的代码结构。我知道出于性能原因不使用feedDict 传递数据很重要,因此使用dataset 似乎是可行的方法。我不是在寻求某种 hack,但我想知道这样做的正确方法是什么。
【问题讨论】:
标签: python tensorflow