专属资源池最佳实践-使用Tensorboard监控训练

举报
yangzilong 发表于 2022/09/17 16:41:44 2022/09/17
【摘要】 TensorBoard是人工智能训练可视化的一个通用工具,算法人员在训练模型时经常会用到。本博客简单介绍一个支持在Pytorch引擎下训练模型并监控loss曲线的案例。 本文主要作为“Notebook与训练任务联动”的拓展篇。用户也可以尝试通过其他数据同步方式。

TensorBoard是人工智能训练可视化的一个通用工具,算法人员在训练模型时经常会用到。本博客简单介绍一个支持在Pytorch引擎下训练模型并监控loss曲线的案例。

本文主要作为“Notebook与训练任务联动”的拓展篇,是“ModelArts专属池使用”的一个子场景细化。用户也可以尝试通过其他数据同步方式。


代码改造

训练代码记录tensorboard日志是需要进行改造的。可以参考Pytorch的官方文档: https://pytorch.org/tutorials/intermediate/tensorboard_tutorial.html#tracking-model-training-with-tensorboard

也可以参考中文文档: https://zhuanlan.zhihu.com/p/103630393

主要修改点如下: 


# step 1
from torch.utils.tensorboard import SummaryWriter

# step 2
writer = SummaryWriter(log_dir=args.output)

for epoch in range(start_epoch, end_epoch):
        ...
        loss = criterion(outputs, targets)
        
        # step 3
        writer.add_scalar('train_loss', loss, epoch)


Tensorboard使用

ModelArtsNotebook默认提供tensorboard可视化工具,使用可以参考文档: https://support.huaweicloud.cn/devtool-modelarts/develop-modelarts-0069.html

最简单的方法,就是进入到有tensorboard日志的目录,然后新建Tensorboard窗口。操作方法如截图:

展示效果如:

 

代码样例

参考“Notebook与训练任务联动”博客,用修改后的代码替换“main.py”即可。

terminal里使用以下命令顺便数据和代码:

mkdir -p dog_cat_case
cd dog_cat_case
wget https://ma-sa.obs.cn-north-4.myhuaweicloud.com/yangzilong/demos/train_with_tb.py
wget https://ma-sa.obs.cn-north-4.myhuaweicloud.com/yangzilong/demos/dog_cat_1w.zip
unzip dog_cat_1w.zip

terminal里使用以下命令启动训练:

cd /home/ma-user/work/dog_cat_case
/home/ma-user/anaconda3/envs/PyTorch-1.8/bin/python train_with_tb.py -a resnet50 -b 128 --epochs 5 dog_cat_1w/

 

其他数据加载方式

利用Notebook挂载PFS桶,并追踪TB的日志信息。挂载操作如截图:

挂载后Notebook可以通过“/data”目录来访问,如需在工作目录查看,可以执行如下命令:

ln -snf /data /home/ma-user/work/data

tensorboard的日志上传,可以在训练代码里自主进行定时同步。也可以使用训练任务对输出目录的自动同步的机制(注意,默认每30s同步一次,需要将输出目录指定到PFS桶)。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。