伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

PyTorch的TensorBoard用法示例

来源:本站原创 浏览:158次 时间:2021-07-28

原文: https://www.emperinter.info/2020/07/30/tensorboard-in-pytorch/
缘由

自己上次安装好PyTorch以及训练了一下官方的数据,今天看到了这个TensorBoard来可视化的用法,感觉不错就尝试玩了一下!自己只是尝试了一下追踪模型训练的过程,其他自己去看官网教程吧!

用法

具体详细说明请参考https://pytorch.org/tutorials/intermediate/tensorboard_tutorial.html

简单说就是:

  • 设置TensorBoard。

  • 写入TensorBoard。

  • 运行

  • 打开http://localhost:6006/

例子

我把训练的图片分类的loss用tensorboard给可视化出来了:

步骤
  • 设置TensorBoard。

简单说是设置基本tensorboard运行需要的东西,我这代码中的imshow(img)和matplotlib_imshow(img, one_channel=False)都是显示图片的函数,可以统一替换,我自己测试就没改了!

# helper function to show an image# (used in the `plot_classes_preds` function below)def matplotlib_imshow(img, one_channel=False):    if one_channel:        img = img.mean(dim=0)    img = img / 2 + 0.5     # unnormalize    npimg = img.cpu().numpy()    if one_channel:        plt.imshow(npimg, cmap="Greys")    else:        plt.imshow(np.transpose(npimg, (1, 2, 0)))    # 设置tensorBoard# default `log_dir` is "runs" - we'll be more specific herewriter = SummaryWriter('runs/image_classify_tensorboard')# get some random training imagesdataiter = iter(trainloader)images, labels = dataiter.next()# create grid of imagesimg_grid = torchvision.utils.make_grid(images)# show images# matplotlib_imshow(img_grid, one_channel=True)imshow(img_grid)# write to tensorboardwriter.add_image('imag_classify', img_grid)# Tracking model training with TensorBoard# helper functionsdef images_to_probs(net, images):    '''    Generates predictions and corresponding probabilities from a trained    network and a list of images    '''    output = net(images)    # convert output probabilities to predicted class    _, preds_tensor = torch.max(output, 1)    # preds = np.squeeze(preds_tensor.numpy())    preds = np.squeeze(preds_tensor.cpu().numpy())    return preds, [F.softmax(el, dim=0)[i].item() for i, el in zip(preds, output)]def plot_classes_preds(net, images, labels):    '''    Gener����,Ը��ates matplotlib Figure using a trained network, along with images    and labels from a batch, that shows the network's top prediction along    with its probability, alongside the actual label, coloring this    information based on whether the prediction was correct or not.    Uses the "images_to_probs" function.    '''    preds, probs = images_to_probs(net, images)    # plot the images in the batch, along with predicted and true labels    fig = plt.figure(figsize=(12, 48))    for idx in np.arange(4):        ax = fig.add_subplot(1, 4, idx+1, xticks=[], yticks=[])        matplotlib_imshow(images[idx], one_channel=True)        ax.set_title("{0}, {1:.1f}%\n(label: {2})".format(            classes[preds[idx]],            probs[idx] * 100.0,            classes[labels[idx]]),                    color=("green" if preds[idx]==labels[idx].item() else "red"))    return fig

  • 写入TensorBoard。

这个在训练的每一阶段写入tensorboard

        if i % 2000 == 1999:    # print every 2000 mini-batches            print('[%d, %5d] loss: %.3f' %                  (epoch + 1, i + 1, running_loss / 2000))            # 把数据写入tensorflow            # ...log the running loss            writer.add_scalar('image training loss',                            running_loss / 2000,                            epoch * len(trainloader) + i)            # ...log a Matplotlib Figure showing the model's predictions on a            # random mini-batch            writer.add_figure('predictions vs. actuals',                            plot_classes_preds(net, inputs, labels),                            global_step=epoch * len(trainloader) + i)

  • 运行
tensorboard --logdir=runs

  • 打开http://localhost:6006/ 即可查看

完整版代码参考

如需了解完整代码请访问:https://www.emperinter.info/2020/07/30/tensorboard-in-pytorch/

import torchimport torchvisionimport torchvision.transforms as transformsimport matplotlib.pyplot as pltimport numpy as npimport torch.nn as nnimport torch.nn.functional as Fimport torch.optim as optimfrom datetime import datetimefrom torch.utils.tensorboard import SummaryWriter..........................................


  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net