Lao,Changxin
Lao,Changxin
好的,多谢~ 从我这边实验多份数据的结果看,还是因为输入的特征维度过大,需要的存储也更大,这么看在大规模稀疏特征集合下用GPU效率上并没有什么收益
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的输入就是连贯的。这个和支持分布式与否应该没有太大关系,不过分布式这块我还没详细了解过,我也不是太懂!
Hadoop版本:3.1.0不行吧,readme上写的支持只有2.6 2.7 2.8,估计是Hadoop版本不行,机器上没有ln指令
@lshmouse 感谢commit,我在使用您的pr时遇到了一个问题,可以通过Kerberos启动任务了,但是Container应该是由于没有token认证的原因,无法直接读取hdfs数据,请问该如何解决呢?