解决TensorBoard报错“log_dir is not a directory“的完整指南

在使用PyTorch的TensorBoard进行训练可视化时,许多开发者会遇到FailedPreconditionError: ./文件名 is not a directory的错误。本文将深入分析这个问题的根源,并提供完整的解决方案,特别是针对中文路径这一常见但容易被忽视的问题。

问题一(目录确实存在的情况下):路径中包含中文

解决:更改文件名为正确的命名格式(注意:连模型的文件名也不要用中文,确保绝对路径全部为正确的命名格式)

问题二:文件不是路径而是文件

解决:

1.检查显示路径确实存在且是目录:

print(f"检查路径类型: {os.path.abspath(Config.tensorboard_path)}")
print(f"是目录吗?: {os.path.isdir(Config.tensorboard_path)}")  # 输出True
print(f"是文件吗?: {os.path.isfile(Config.tensorboard_path)}")  # 输出False

2.清理并重建目录(确保之前未创建路径,如果存在则删除)

if os.path.exists(Config.tensorboard_path):
    shutil.rmtree(Config.tensorboard_path, ignore_errors=True)
os.makedirs(Config.tensorboard_path, exist_ok=True)

3.将相对路径改为绝对路径

tensorboard_path = os.path.abspath(tensorboard_path)

你可能感兴趣的:(tensorflow,python,深度学习)