专属资源池最佳实践-使用Tensorboard监控训练
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使用
ModelArts的Notebook默认提供tensorboard可视化工具,使用可以参考文档: https://support.huaweicloud.com/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桶)。
- 点赞
- 收藏
- 关注作者
评论(0)