这篇教程Pytorch用Tensorboard来观察数据写得很实用,希望能帮到您。 上一章讲数据的处理,这一章讲数据处理之后呈现的结果,即你有可能看到Loss 的走向等,这样方便我们调试代码。
1.Tensorboard有两个常用的方法: - 一个是
add_scalar() 显:示曲线 - 一个是
add_image() 显示图像
首先安装Tensorboard 在你的编译环境(conda activate XXX )中输入命令
1.使用add_scalar()输入代码from torch.utils.tensorboard import SummaryWriter #调包writer = SummaryWriter('logs') # 这里你创建了一个logs的文件装你的add_scalar生成的曲线,#其中writer.add_scalar()第一个量是曲线的名字, #第二个量是纵坐标scalar_value,第三个量是横坐标global_step(也可以理解为损失值得步长)for i in range(100): writer.add_scalar("quadratic", i ** 2, i)writer.close() 打开这个Tensorboard文件 tensorboard --logdir=logs#1.这个logdir的文件名必须要与之前所创建的文件名一致,不然很容易报错,No dashboards are active for the current data set.#2.这个tensorboard输入的命令,必须是在logs文件的上一层文件中,不然也很容易报错,No dashboards are active for the current data set. 结果现实: 
2.使用add_image()输入代码注意:add_image() 中函数一般有三个量: 第一个是图像的名字,第二个是图像(必须是tensor或者numpy.ndarray),第三个是步长(可理解为训练或者测试阶段到哪幅图像了); 其中,图像的shape 必须是CHW,但是有opencv 读取的图像shape 是HWC, 所以得使用dataformats 转换以下将图像的shape转换为HWC 下面的代码测试了两张图(一张是来自aligned 的图像,一张是来自original 的图像)用来模拟训练或者测试阶段程序运行到哪张图 from torch.utils.tensorboard import SummaryWriterimport cv2writer = SummaryWriter('logs')aligned_img_path = "D://data//basic//Image//aligned//test_0001_aligned.jpg"original_img_path = "D://data//basic//Image//original//test_0001.jpg"aligned_img = cv2.imread(aligned_img_path)original_img = cv2.imread(original_img_path)print(type(aligned_img)) # numpyprint(aligned_img.shape)# writer.add_image("img", aligned_img, 1, dataformats='HWC') #此图已经在我第一次测试add_image()用过了writer.add_image("img", original_img, 2, dataformats='HWC')#此图是我在第二个测试writer.close() 实现结果: tensorboard中出现了IMAGES,并且step1是aligned的图,而step2是original的图 

到此这篇关于Pytorch用Tensorboard来观察数据的文章就介绍到这了,更多相关Pytorch使用Tensorboard内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net! Pytorch关于Dataset Pytorch中的Tensorboard与Transforms搭配使用 |