Keras-Tuner配合TensorBoard使用时提示未找到hparams数据
Keras-Tuner + TensorBoard 超参日志加载异常解决方案
清理旧日志的正确操作
- 第一步先杀掉所有正在运行的TensorBoard进程,不然文件被占用删不干净,还会残留缓存:
# Windows 系统执行 taskkill /im tensorboard.exe /f # Linux/macOS 系统执行 pkill -f tensorboard - 直接删除存放旧日志的整个文件夹,不要只删零散文件,残留的event文件还是会被TensorBoard扫描到。比如旧日志存放在
logs/t0路径,就直接删除整个目录:# Windows cmd/powershell 执行 rmdir /s /q logs\t0 # Linux/macOS 执行 rm -rf logs/t0
注意:删除前确认目录内没有需要留存的实验记录即可
加载指定新日志的正确方式
- 先核对日志路径:你代码里Keras-Tuner的超参记录存放在初始化时传入的
directory参数(也就是你定义的LOG_DIR)下,TensorBoard回调写入的训练日志在logs/hyp_tune/路径,启动时不要写错路径。 - 启动命令加上
--purge_orphaned_data参数,强制清理之前缓存的旧日志索引,避免串读:tensorboard --logdir=logs/hyp_tune/ --purge_orphaned_data=true - 如果需要同时查看多组实验,给不同日志加别名区分,不要直接指向日志上级目录让TensorBoard无差别递归扫描:
启动后侧边栏Runs列表会按你设置的别名分组显示,不会出现日志混杂的问题。tensorboard --logdir=普通模型基线:logs/t0,超参搜索实验:logs/hyp_tune/
常见避坑点
- TensorBoard默认会递归扫描你传入的
--logdir路径下所有子目录的event文件,不要把新旧日志都塞到同一个父目录下不做区分,很容易出现误加载。 - 如果页面打开后还是显示旧内容,直接按
Ctrl+F5(Windows)/Cmd+Shift+R(macOS)强制刷新浏览器清除页面缓存即可,不需要重跑代码、重启Notebook。 - 你之前遇到的指定加载t1日志却显示t0内容的问题,就是旧日志索引缓存+路径递归扫描共同导致的,按上面的流程操作即可解决,不需要刻意把新日志覆盖写入旧日志目录。
内容的提问来源于stack exchange,提问作者haneulkim
相关产品推荐
相关产品推荐

