据我所知 Estimator
API,方法 train
训练给定数据,直到 input_fn
函数引发异常或直到达到步数 . 因此,如果我想循环直到估计器收敛(对于它的某些定义),我需要自己编写循环并测试我的标准 . 像这样的东西,估算器 e
:
prevloss = 999999999999
while True:
e.train(input_fn)
loss = e.evaluate(input_fn)['loss']
if abs(prevloss - loss) < 1e-4:
break
prevloss = loss
但有一些事情对我来说仍然模糊不清 .
-
什么时候调用输入函数?它应该始终返回相同的数据吗?它的正确用途是什么?
-
每次迭代都会将数据上传到GPU吗?
-
如果是这样,我该如何避免?
-
输入函数返回的数据是否仅作为常量嵌入到图形中?
-
如果是这样,我该如何让它可以喂食?
-
总的来说,启动张量流工作需要0.8秒(即每次迭代不能进行1.6秒),这个循环不会更好地存在于GPU上吗?
-
如果是这样,我该怎么做?