• 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 

     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的使用:

    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 

     

  • 相关阅读:
    【码神之路】【Golang】博客网站的搭建【学习笔记整理 持续更新...】
    Linux常用系统性能监控命令
    k8s(3)
    使用mysql语句进行子查询
    计算机毕业设计Java桂林餐饮服务平台(源码+系统+mysql数据库+Lw文档)
    Arthas-monitor命令监控方法调用次数、成功次数、失败次数、平局响应时间和失败率
    Docker的容器管理操作
    Tesseract OCR安装与简单使用
    strncpy,strncat,strncmp字符串函数详解(长度受限制)
    汉语言文学类毕业论文,有什么好写的选题?
  • 原文地址:https://blog.csdn.net/qq_40694323/article/details/126780004