我的数据是按时间顺序列出的一组匹配和结果。通常,出于"离线"验证,我运行这样的东西来测试我的算法的工作情况:
# train
for matches_batch, outcomes_bach in train_data:
sess.run(optimizer, feed_dict={matches: matches_batch, outcomes: outcomes_batch})
# offline validation (just compute accuracy on test set)
test_accuracy = sess.run(accuracy, feed_dict={matches: test_matches, outcomes: test_outcomes})
print 'test accuracy = {:.2%}'.format(test_accuracy)
然而,在现实世界中。事情将会完成"在线",我在离线训练一堆火柴,然后每当我预测新的匹配时,我也会通过使用结果运行优化器来更新我的模型参数,如下所示:
# train
for matches_batch, outcomes_bach in train_data:
sess.run(optimizer, feed_dict={matches: matches_batch, outcomes: outcomes_batch})
# online validation (update accuracy and model with each new data point)
test_accuracy = 0.0
for match, outcome in zip(test_matches, test_outcomes):
_, acc = sess.run([optimizer, accuracy], feed_dict={matches: [match], outcomes: [outcome])
test_accuracy += acc / len(test_matches)
print 'test accuracy = {:.2%}'.format(test_accuracy)
问题在于上述在线测试的实现(它是验证方案here的一部分)很慢。
有没有办法通过tensorflow加速这样的在线验证?
答案 0 :(得分:0)
快速浏览一下这篇论文后,我想到了这一点:
对于您的实施意味着什么:
上述两点都应该显着加快速度。
最后,不要使用测试来代替验证,特别是当它涉及到培训时。