在Pytorch下安装TensorBoard

在Pytorch下安装TensorBoard

一. TensorBoard简介:

TensorBoard提供了机器学习实验所需的可视化和工具,其使用是为了分析模型训练的效果:

  • 跟踪和可视化指标,例如损失和准确性
  • 可视化模型图(操作和图层)
  • 查看权重,偏差或其他张量随时间变化的直方图
  • 将embedding 投影到较低维度的空间
  • 显示图像,文本和音频数据
  • 分析TensorFlow程序
  • 以及更多

从PyTorch 1.1.0版开始,PyTorch添加了一个tensorboard实用程序包,使我们能够将TensorBoard与PyTorch一起使用。

print(torch.__version__)
1.1.0

二. 为PyTorch安装TensorBoard

要为PyTorch安装TensorBoard,请执行以下步骤:

  1. 确认您正在运行PyTorch版本1.1.0或更高版本。
  2. 确认您正在运行TensorBoard 1.15或更高版本。
  3. 请注意,PyTorch使用的TensorBoard与为TensorFlow创建的TensorBoard相同。使用以下命令检查系统上安装的TensorBoard的版本,一旦安装了TensorBoard 1.15或更高版本,我们就可以开始了!
  4. 使用以下命令安装TensorBoard。
pip install tensorboard==1.14.0
tensorboard --version

这里如果不小心手残,没有选好版本号,导致安装了多个版本的tensorboard。那么需要卸载掉高版本的tensorboard,然后重新指定tensorboard的版本来安装,具体操作指令如下: 

pip uninstall tensorboard
pip uninstall tensorboard-plugin-wit

三. PyTorch的TensorBoard入门

TensorBoard是一个字体结尾的Web界面,实际上从文件中读取数据并显示它。要使用TensorBoard,我们的任务是将我们要显示的数据保存到TensorBoard可以读取的文件中。

为了使我们更轻松,PyTorch创建了一个名为SummaryWriter的实用程序类。要访问此类,我们使用以下导入:

from torch.utils.tensorboard import SummaryWriter

 导入该类后,我们可以创建该类的实例,然后将其用于将数据从程序中获取到文件系统中,然后由TensorBoard进行使用。

如在运行时出现如下报错,很有可能是python的版本过低,应执行下列操作,先卸载,再重装:

ImportError: No module named 'torch.utils.tensorboard'
pip uninstall torchvision 
pip uninstall torch

pip install torch===1.2.0 torchvision===0.4.0 -f https://download.pytorch.org/whl/torch_stable.html

 如果报错为:

ImportError: TensorBoard logging requires TensorBoard with Python summary writer installed. This should be available in 1.14 or above.

则说明TensorBoard的安装版本过低,需执行如下指令:

pip install tensorboard==1.14.0

如报错为:

ImportError: No module named 'past'

 则缺少了future包的安装,需执行:

pip install future

下面就可以开始TensorBoard的使用啦~

(1)网络图和训练集图像

SummaryWriter类带有许多方法,我们可以调用这些方法来有选择地选择和选择我们希望TensorBoard可以使用的数据。首先,我们将网络和一批图像传递给编写者。

tb = SummaryWriter()

network = Network()
images, labels = next(iter(train_loader))
grid = torchvision.utils.make_grid(images)

tb.add_image('images', grid)
tb.add_graph(network, images)
tb.close()

该代码为TensorBoard创建一个名为tb的SummaryWriter实例。然后,创建我们的PyTorch网络的实例,并从我们的PyTorch数据加载器对象中解压缩一批图像和标签。

然后,将图像和网络添加到TensorBoard将使用的文件中。实际上,可以说网络图和图像的batch都已添加到TensorBoard中。

(2)运行TensorBoard

要启动TensorBoard,我们需要在终端上运行tensorboard命令。这将启动一个本地服务器,该服务器将为TensorBoard UI和我们的SummaryWriter写入磁盘的数据提供服务。

默认情况下,PyTorch SummaryWriter对象将数据写入在当前工作目录中创建的名为./runs的目录中的磁盘。

当运行tensorboard命令时,我们传递一个参数来告诉tensorboard数据在哪里。就像这样:

tensorboard --logdir=runs

TensorBoard服务器将启动并正在侦听端口6006上的http请求。这些详细信息将显示在控制台中。

通过浏览至以下位置访问TensorBoard UI:

http://localhost:6006

在这里,我们将能够看到我们的网络图和图像数据。目前,这确实为我们提供了视觉效果。

对于远程访问安装了防火墙的服务器上TensorBoard的情况,我们需要在远程访问服务器时,输入如下代码进行端口映射,把服务器上的6006端口映射到本地:

ssh -L 6006:127.0.0.1:6006 username@ip

之后登录服务器账户,运行指令即可,还可以通过port来指定TensorBoard端口,这是针对6006端口被他人占用的情况,此时,远程访问的端口映射也需要进行相应的修改。通过port来指定TensorBoard端口所对应的代码如下:

ssh -L 16006:127.0.0.1:16006 username@ip
tensorboard --logdir=runs --port 16006

在经过上述操作之后,只需要在本地的浏览器输入http://127.0.0.1:16006即可进行访问。在访问时,如果出现loss又回头的情况,有可能是tensorboard在指定的logdir目录下读取到了多个log文件,所以可以在日志文件夹下删除不是本次正在运行创建的日志文件,之后重新启动服务器,并刷新浏览器即可。

 

重点参考文献:

https://cloud.tencent.com/developer/article/1671162

 

你可能感兴趣的:(pytorch实战,pytorch,可视化)