企业电子商务网站建设规划方案,企业推广品牌,衡阳seo优化首选,一站式营销推广文章目录 前言3 可视化工具3.1 TensorBoard 前言
在训练神经网络的过程中需要用到很多的工具#xff0c;最重要的是数据处理、可视化和GPU加速。本章主要介绍PyTorch在这些方面常用的工具模块#xff0c;合理使用这些工具可以极大地提高编程效率。
由于内容较多#xff0c… 文章目录 前言3 可视化工具3.1 TensorBoard 前言
在训练神经网络的过程中需要用到很多的工具最重要的是数据处理、可视化和GPU加速。本章主要介绍PyTorch在这些方面常用的工具模块合理使用这些工具可以极大地提高编程效率。
由于内容较多本文分成了五篇文章1数据处理2预训练模型3TensorBoard4Visdom5CUDA与小结。
整体结构如下
1 数据处理 1.1 Dataset1.2 DataLoader 2 预训练模型3 可视化工具3.1 TensorBoard3.2 Visdom4 使用GPU加速CUDA5 小结
全文链接
PyTorch中常用的工具1数据处理PyTorch常用工具2预训练模型PyTorch中常用的工具3TensorBoardPyTorch中常用的工具4VisdomPyTorch中常用的工具5使用GPU加速CUDA
3 可视化工具
在训练神经网络时通常希望能够更加直观地了解训练情况例如损失函数曲线、输入图片、输出图片等信息。这些信息可以帮助读者更好地监督网络的训练过程并为参数优化提供方向和依据。最简单的办法就是打印输出这种方式只能打印数值信息不够直观同时无法查看分布、图片、声音等。本节介绍两个深度学习中常用的可视化工具TensorBoard和Visdom。
3.1 TensorBoard
最初TensorBoard是作为TensorFlow的可视化工具迅速流行开来的。作为和TensorFlow深度集成的工具TensorBoard能够展示TensorFlow的网络计算图绘制图像生成的定量指标图以及附加数据。同时TensorBoard是一个相对独立的工具只要用户保存的数据遵循相应的格式TensorBoard就能读取这些数据进行可视化。
在PyTorch 1.1.0版本之后PyTorch已经内置了TensorBoard的相关接口用户在手动安装TensorBoard后便可调用相关接口进行数据的可视化TensorBoard的主界面如下图所示。
![使用add_scalar记录标量]](https://img-blog.csdnimg.cn/direct/864745746f6244e080a0793ae578e5a1.png#pic_center)
TensorBoard的使用非常简单首先使用以下命令安装TensorBoard
pip install tensorboard待安装完成后通过以下命令启动TensorBoard其中path为log文件的保存路径
tensorboard --logdirpathTensorBoard的常见操作包括记录标量、显示图像、显示直方图、显示网络结构、可视化embedding等下面逐一举例说明
In: import torchimport torch.nn as nnimport numpy as npfrom torchvision import modelsfrom torch.utils.tensorboard import SummaryWriterfrom torchvision import datasets,transformsfrom torch.utils.data import DataLoader# 构建logger对象log_dir用来指定log文件的保存路径logger SummaryWriter(log_dirruns)In: # 使用add_scalar记录标量for n_iter in range(100):logger.add_scalar(Loss/train, np.random.random(), n_iter)logger.add_scalar(Loss/test, np.random.random(), n_iter)logger.add_scalar(Acc/train, np.random.random(), n_iter)logger.add_scalar(Acc/test, np.random.random(), n_iter)In: transform transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5,),(0.5,))])dataset datasets.MNIST(data/, downloadTrue, trainFalse, transformtransform)dataloader DataLoader(dataset, shuffleTrue, batch_size16)images, labels next(iter(dataloader))grid torchvision.utils.make_grid(images)In: # 使用add_image显示图像logger.add_image(images, grid, 0)In: # 使用add_graph可视化网络class ToyModel(nn.Module):def __init__(self, input_size28, hidden_size500, num_classes10):super().__init__()self.fc1 nn.Linear(input_size, hidden_size) self.relu nn.ReLU()self.fc2 nn.Linear(hidden_size, num_classes) def forward(self, x):out self.fc1(x)out self.relu(out)out self.fc2(out)return outmodel ToyModel()logger.add_graph(model, images)In: # 使用add_histogram显示直方图logger.add_histogram(normal, np.random.normal(0,5,1000), global_step1)logger.add_histogram(normal, np.random.normal(1,2,1000), global_step10)In: # 使用add_embedding进行embedding可视化dataset datasets.MNIST(data/, downloadTrue, trainFalse)images dataset.data[:100].float()label dataset.targets[:100]features images.view(100, 784)logger.add_embedding(features, metadatalabel, label_imgimages.unsqueeze(1))打开浏览器输入http://localhost:6006其中6006应改成读者TensorBoard所绑定的端口就可以看到本文之前的可视化结果。
TensorBoard十分容易上手读者可以根据个人需求灵活地使用上述函数进行可视化。本节介绍了TensorBoard的常见操作更多详细内容读者可参考官方相关源码。