Pytorch框架的学习(5)

目录

1.torch.nn库

 2.Pytorch与visdom

3.Pytorch与tensorboardX

 4.Pytorch与torchvision


1.torch.nn库

  •  torch.nn是专门为神经网络设计的模块化接口。
  • nn构建于autograd之上,可以用来定义和运行神经网络。
  • nn.Parameter
  • nn.Linear&nn.conv2d等等.
  • nn.functional
  • nn.Module· nn.Sequential

nn.Parameter

  • 定义可训练参数
  •  self.my_param = nn.Parameter(torch.randn(1))
  •  self.register_parameter
  • nn.ParameterList & nn.ParameterDict  参数列表与字典,可以对多个参数进行定义

 nn.Linear&nn.conv2d&nn.ReLU&nn.MaxPool2d(2))&nn.MSELoss等等

  •  各种神经网络层的定义,继承于nn.Module的子类

         self.conv1 = nn.Conv2d(1,6,(5,5))

         调用时: self.conv1(x)

  • 参数为parameter类型

          layer = nn.Linear(1,1)

          layer.weight = nn.Parameter(torch.FloatTensor([[0]]))

          layer.bias = nn.Parameter(torch.FloatTensor([0]))

nn.functional

  • 包含torch.nn库中所有函数,包含大量loss和activation function
  • torch.nn.functional.conv2d(input, weight, bias=None,stride=1, padding=O, dilation=1, groups=1)
  • nn.functional.xxx是函数接口
  • nn.functional.xxx无法与nn.Sequential结合使用
  • 没有学习参数的(eg. maxpool, loss_func, activation func)等根据个人选择使用nn.functional.xxx或nn.Xxx
  • 需要特别注意dropout层 

nn 与nn.functional有什么区别?

  • nn.functional.xxx是函数接口
  • nn.Xxx是.nn.functional.xxx的类封装,并且nn.Xxx都继承于一个共同祖先nn.Module
  • nn.Xxx除了具有nn.functional.xxx功能之外,内部附带nn.Module相关的属性和方法,eg. train(), eval(),load_state_dict, state_dict 

Pytorch框架的学习(5)_第1张图片

Pytorch框架的学习(5)_第2张图片

Pytorch框架的学习(5)_第3张图片

 nn.Module

它是一个抽象概念,既可以表示神经网络中的某个层(layer) ,也可以表示一个包含很多层的神经网络

  • model.parameters()
  • model.buffers()
  • model.state_dict()
  • model.modules()
  • forward(), to()

所有pytorch的nn库的网址:torch.nn — PyTorch 1.12 documentation 

 Parameters VS buffers

  • 一种是反向传播需要被optimizer更新的,称之为parameter
  1. self.register_parameter("param", param)
  2. self.param = nn.Parameter(torch.randn(1))
  • 一种是反向传播不需要被optimizer更新,称之为buffer
  1. self.register_buffer('my_buffer', torch.randn(1))

 2.Pytorch与visdom

     Facebook专门为Pytorch开发的一款可视化工具,开源于2017年3月,提供了大多数的科学运算可视化API:       GitHub - fossasia/visdom: A flexible tool for creating, organizing, and sharing visualizations of live, rich data. Supports Torch and Numpy.

  • 支持数值(折线图,直方图等)、图像、文本以及视频等·支持Pytorch、Torch和Numpy
  • 用户可以通过编程的方式组织可视化空间或者通过用户接口为数据打造仪表板,检查实验结果和调试代码。
  • env:环境&pane:窗

 visdom的使用:

Pytorch框架的学习(5)_第4张图片

3.Pytorch与tensorboardX

  • scalar, image, figure, histogram, audio, text, graph, onnx_graph, embedding, pr_curve and videosummaries等不同的可视化展示方式
  • pip3 install tensorboardX

 4.Pytorch与torchvision

  •  torchvision是独立于pytorch的关于图像操作的一些方便工具库。

      相关网站: https://github.com/pytorch/vision
                         https://pytorch.org/docs/master/torchvision/

  •  torchvision主要包括一下几个包:
  1. vision.datasets:几个常用视觉数据集,可以下载和加载
  2. vision.models:已经训练好的模型,例如: AlexNet, VGG,ResNetvision
  3. transforms:常用的图像操作,例如︰随机切割,旋转,数据类型转换,图像到tensor ,numpy 数组到tensor , tensor到图像等vision.utils、vision.io、vision.ops 

 

你可能感兴趣的:(深度学习,pytorch,神经网络)