问题描述
由于远程服务器上无法显示实时生成的图片,通常比较笨的方法是通过保存图片,然后下载到本地,这个方法费时又费力。因此,这里我决定介绍一种通过tesorboardX的方法来显示matplotlib画出的图像。
具体步骤
- 如果是在docker上首先需要对tensorboard的6006端口进行映射。
- 对应示例代码
import torch
from torch.autograd import Variable
import torch.nn.functional as F
import matplotlib.pyplot as plt
plt.switch_backend('agg')
from tensorboardX import SummaryWriter
# fake data
x = torch.linspace(-5, 5, 200)
x = Variable(x)
x_np = x.data.numpy()
y_relu = F.relu(x).data.numpy()
y_sigmoid = F.sigmoid(x).data.numpy()
y_tanh = F.tanh(x).data.numpy()
y_softplus = F.softplus(x).data.numpy()
# y_softmax = F.softmax(x)
fig = plt.figure(1, figsize=(8, 6))
plt.subplot(221)
plt.plot(x_np, y_relu, c='red', label='relu')
plt.ylim((-1, 5))
plt.legend(loc='best')
plt.subplot(222)
plt.plot(x_np, y_sigmoid, c='red', label='sigmoid')
plt.ylim((-0.2, 1.2))
plt.legend(loc='best')
plt.subplot(223)
plt.plot(x_np, y_tanh, c='red', label='tanh')
plt.ylim((-1.2, 1.2))
plt.legend(loc='best')
plt.subplot(224)
plt.plot(x_np, y_softplus, c='red', label='softplus')
plt.ylim((-0.2, 6))
plt.legend(loc='best')
writer = SummaryWriter('log')
writer.add_figure(tag='activation_function', figure=fig)
writer.close()
- 在程序对应的文件夹下的目录下使用命令:tensorboard --logdir=log/
- 可以在浏览器中使用:remote server address:[port number]访问tensorboard,具体结果如下: