1、导入类
要将训练过程中的数据保存到TensorBoard,你可以使用PyTorch的SummaryWriter
类。这个类可以将训练过程中的各种信息记录到TensorBoard日志文件中,然后你可以使用TensorBoard工具来可视化这些信息。
from torch.utils.tensorboard import SummaryWriter
2、创建实例和保存
在训练开始前创建一个SummaryWriter
对象,用于保存数据
if __name__ == "__main__":
log_dir = './logs' # 指定日志保存路径
writer = SummaryWriter(log_dir=log_dir) # 创建SummaryWriter对象
train(fcn)
writer.close() # 关闭SummaryWriter
3、添加数据实例fcn
在每个epoch的训练循环内部,添加以下代码来记录Train Acc和Train Mean IU:
# 在循环内部,计算Train Acc和Train Mean IU后添加以下代码
writer.add_scalar('Train Acc', train_acc / len(train_data), epoch)
writer.add_scalar('Train Mean IU', train_miou / len(train_data), epoch)
4、查看数据
打开终端,导航到存储TensorBoard日志的目录。这是你在SummaryWriter
中指定的日志保存路径,例如:
cd /path/to/your/logs
在终端中运行以下命令来启动TensorBoard:
tensorboard --logdir=./
这将启动TensorBoard服务器,并监听默认端口(通常是6006)。点击跳出来的 链接或者你可以在浏览器中输入以下地址来访问TensorBoard的Web界面:
http://localhost:6006/
补充:from torch.utils.tensorboard import SummaryWriter 与tensorboard库有什么区别
from torch.utils.tensorboard import SummaryWriter
实际上是从PyTorch库中导入的SummaryWriter
类,用于将数据写入到TensorBoard日志文件中。这与直接使用tensorboard
库不同,下面是一些区别:
-
集成性质:
torch.utils.tensorboard.SummaryWriter
是 PyTorch 内置的,专门用于与 PyTorch 代码一起使用的。这样你可以更方便地将 PyTorch 中的训练指标与 TensorBoard 结合起来。而tensorboard
库则是 TensorFlow 的官方库,它是独立于任何深度学习框架的通用可视化工具。 -
语法和接口:
SummaryWriter
与 PyTorch 的操作风格和语法更加一致,适合在 PyTorch 代码中使用。而tensorboard
库的接口则更加适合在 TensorFlow 代码中使用。 -
配置和设置: 使用
torch.utils.tensorboard.SummaryWriter
可以利用 PyTorch 的配置和设定,如选择设备(CPU或GPU)等。而在使用tensorboard
库时,你可能需要进行额外的配置和设置以适配不同的深度学习框架。 -
依赖:
torch.utils.tensorboard.SummaryWriter
依赖于 PyTorch,因此如果你已经在使用 PyTorch,那么你不需要安装额外的依赖库。而tensorboard
库则需要单独安装,并且可能会引入一些 TensorFlow 相关的依赖。
总之,如果你正在使用 PyTorch,并且希望将训练指标与 TensorBoard 集成在一起,那么 from torch.utils.tensorboard import SummaryWriter
是更适合的选择。如果你不依赖于任何特定的深度学习框架,或者希望与 TensorFlow 集成,那么你可以考虑使用 tensorboard
库。