Amazon SageMaker Studio Lab中TensorBoard无法加载的解决方法
Amazon SageMaker Studio Lab 内TensorBoard无输出排查方案
- 第一步:先修依赖版本兼容问题
Studio Lab默认预装的TensorBoard、IPython TensorBoard插件常年存在版本不匹配的坑,经常出现命令跑完没报错、也没输出的情况。先在笔记本单元格执行下面的命令,安装实测兼容的版本:
装完一定要重启当前Jupyter内核(顶部菜单栏点Kernel -> Restart Kernel),不重启的话内核还是加载旧版本依赖,做啥都白搭。!pip install --user tensorboard==2.12.3 ipython-tensorboard - 第二步:修正日志目录的传参错误
你写的%tensorboard --logdir tb_log_dir是典型的传参错法:%tensorboard是IPython魔法命令,默认不会直接解析Python变量名,会把tb_log_dir当成字面量路径去找,找不到路径就直接静默失败。
如果你提前用Python定义了日志路径变量,要在变量名前加$符号,让魔法命令读取变量的实际值,正确写法:
启动前先跑一句# 提前创建日志目录,后续训练日志都存在这 tb_log_dir = "./training_logs" # 启动时加$引用变量 %tensorboard --logdir $tb_log_dir!ls $tb_log_dir确认目录里有events.out.tfevents.*格式的日志文件,空目录就算启动成功也加载不出任何监控内容。 - 第三步:清掉后台残留的僵死进程
之前启动失败的TensorBoard会在后台留僵死进程占着端口,新的启动请求直接被堵死,连报错都没有。打开Studio Lab终端(左侧File菜单选New -> Terminal),执行下面的命令杀光所有残留进程:
清完进程再回笔记本重新跑启动命令就行。pkill -f tensorboard - 第四步:绕过默认魔法命令手动嵌入面板
前面三步都试了还是没输出的话,就是Studio Lab默认的iframe嵌入逻辑被拦截了,别用魔法命令自带的输出,手动起服务嵌页面:- 在终端执行启动命令,固定端口、绑定所有地址:
tensorboard --logdir ./training_logs --port 6006 --bind_all - 回笔记本新建单元格,跑下面的代码手动嵌入面板:
from IPython.display import IFrame IFrame(src="/proxy/6006/", width="100%", height=800)
- 在终端执行启动命令,固定端口、绑定所有地址:
你说的单元格输出里两个按钮点了没反应,本质就是TensorBoard后台服务没正常拉起、端口转发不通,按前面步骤把服务正常跑起来,按钮和面板都会恢复正常。
内容的提问来源于stack exchange,提问作者Hassan Abedi
相关产品推荐
相关产品推荐

