tf_repos
tf_repos copied to clipboard
DeepFm的训练过程一直输出Parsing ['../../data/criteo/tr.libsvm']
模型不断输出 Parsing ['../../data/criteo/tr.libsvm'] INFO:tensorflow:Calling model_fn. 是什么原因?是因为没有设置max_steps吗?
感觉不太合理啊,即使运行多个epoch,也不应该每次都调用model_fn以及解析数据啊?
https://www.tensorflow.org/api_docs/python/tf/estimator/train_and_evaluate
这里说用train_and_evaluate必须设置max_steps才能终止。input_fn里加throw OutOfRangeError 也是一个方法,但要注意分布式环境的情况。
从这里其实引申出另一个问题:
每次eval完毕,重新调用train的input_fn,意味着文件从头开始读。
“模型不断输出Parsing ['../../data/criteo/tr.libsvm']" 这也是input_fn的第一行,所以每次eval完又重新开始训练了。
这应该是有问题的,还需要想想什么方法解。不改input_fn的情况下可以不eval和设置max_step先用着。
是的,不过我想以上问题,是不是为了支持分布式造成的?
不是吧,我理解Estimator的train_and_evaluate()机制就是到了eval的时候把train停下来,走eval,evalSpec跑完trainSpec开始run,这必定是要调用input_fn的。要实现重新训练从上一状态读起,input_fn的输入应该是一个Iterator,初始化Dataset过后把这个Dataset的Iterator当作参数来输入。那每次到了eval阶段结束的下一次train的输入就是连贯的。这个和支持分布式与否应该没有太大关系,不过分布式这块我还没详细了解过,我也不是太懂!