Python:如何选择最新创建的文件(将Keras检查点上传到GCS)

时间:2018-05-04 12:27:10

标签: python keras glob

我正在使用Keras和CheckPoint()回调来创建以下格式的检查点列表:

- app
--script.py
--checkpoint.01-{model-loss}.h5
--checkpoint.02-{model-loss}.h5
--checkpoint.03-{model-loss}.h5
--checkpoint.02-{model-loss}.h5
...
--checkpoint.10-{model-loss}.h5
..
--checkpoint.99-{model-loss}.h5
--checkpoint.100-{model-loss}.h5
..

我将检查点定义为:

model_path_glob = 'checkpoint.*'
checkpoints = glob.glob(model_path_glob) # gives me a list but in weird order

以上是循环执行的,因此checkpoints会不断更新。 我可以看到len(checkpoints)每次迭代都会正确更改,所以它们都在那里,但是按照奇怪的顺序。

然而,我似乎正在使用checkpoint[-1]将相同的文件上传到服务器,例如前15次迭代将上传检查点1,2,3,..但是它将始终选择第16个迭代。

在我的本地计算机上,它选择第99次迭代,但不会超过它。

1 个答案:

答案 0 :(得分:0)

checkpoints = sorted(glob.glob(model_path_glob), key=os.path.getmtime)将按上次修改排序。我还没试过云虚拟机