在训练和评估了一个自定义的tensorflow估计量之后,我想从同一脚本中删除它保存的所有文件-检查点文件,事件文件,评估文件夹等。我正在尝试通过在包含所有文件的目录上使用shutil.rmtree来执行此操作;但是,它总是抛出此错误:
回溯(最近通话最近): 在调用中,文件“ C:\ Users ____ \ AppData \ Local \ Continuum \ anaconda3 \ lib \ weakref.py”,第548行 返回info.func(* info.args,**(info.kwargs或{})) _cleanup中的文件“ C:\ Users ____ \ AppData \ Local \ Continuum \ anaconda3 \ lib \ tempfile.py”,行797 _shutil.rmtree(名称) rmtree中的第494行的文件“ C:\ Users ____ \ AppData \ Local \ Continuum \ anaconda3 \ lib \ shutil.py” 返回_rmtree_unsafe(路径,错误) _rmtree_unsafe中的第384行的文件“ C:\ Users ____ \ AppData \ Local \ Continuum \ anaconda3 \ lib \ shutil.py” _rmtree_unsafe(全名,错误) _rmtree_unsafe中的第384行的文件“ C:\ Users ____ \ AppData \ Local \ Continuum \ anaconda3 \ lib \ shutil.py” _rmtree_unsafe(全名,错误) _rmtree_unsafe中的第384行的文件“ C:\ Users ____ \ AppData \ Local \ Continuum \ anaconda3 \ lib \ shutil.py” _rmtree_unsafe(全名,错误) _rmtree_unsafe中的文件“ C:\ Users ____ \ AppData \ Local \ Continuum \ anaconda3 \ lib \ shutil.py”,行393 onerror(os.rmdir,path,sys.exc_info()) _rmtree_unsafe中的第391行的文件“ C:\ Users ____ \ AppData \ Local \ Continuum \ anaconda3 \ lib \ shutil.py” os.rmdir(路径)
OSError:[WinError 145]目录不为空:'C:\ Users \ ____ \ AppData \ Local \ Temp \ 4 \ tmpfuioqj79 \ search_1 \ fold_1 \ eval'
我的理解是shutil.rmtree将删除目录及其所有内容,并且当创建和训练模型的脚本完成后,当我从单独的脚本中使用shutil.rmtree时,它可以正常工作。因此,我猜测tensorflow仍在使用文件/目录。我在估算器或保护程序文档中找不到任何建议我在估算器实现培训后需要手动关闭内容的东西。
有人知道如何从执行培训和评估的同一脚本中删除这些文件吗?
编辑:浏览完python进程正在使用的所有文件后,看起来好像只是事件文件,而不是检查点文件仍在使用。