我修改了Wide and Deep教程(运行python 2.7),以使用回归器而不是分类器,并输出对我的测试数据的预测。我目前正在执行此操作(将numpy导入为np):
predicts = m.predict(input_fn=lambda: input_fn(df_test))
np.savetxt("predict.csv", predicts, delimiter=",")
使用最新的r0.11版本,我将收到有关即将弃用的警告,其中返回值将是可迭代的。为了适应这一点,我尝试了以下操作:
predicts = m.predict(input_fn=lambda: input_fn(df_test), as_iterable=True)
np.savetxt("predict.csv", list(predicts), delimiter=",")
这没有达到预期的效果。CPU似乎无限期地命中了80%并保持这种状态。半小时后,我终于不得不杀死它,而且没有写入任何数据。它试图做什么?
关于如何在返回时如何将这些预测导出到文本文件的任何建议as_iterable=True
?
更新:我试过了:
predicts = m.predict(input_fn=lambda: input_fn(df_test), as_iterable=True)
with open("predict.csv", "w") as f:
for x in predicts:
f.write(str(x)+"\n")
结果似乎是一样的。我怀疑这是一个错误。有人可以确认吗?
使用as_iterable
withinput_fn
有点危险:如果input_fn并非每个人都抱怨用完新数据,则as_iterable将愉快地产生越来越多的输出,通常一次又一次地通过相同的输入运行。
如果input_fn
在“宽和深”教程中查看,就会发现其中没有队列,数据将直接放入常量中。因此,无论您多久使用一次由其创建的张量input_fn
,都将始终获得数据。
只要获取新数据,as_iterable就会拉入输入。在这种情况下,这意味着永远。
这是一个错误,我们应该修复它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句