Pytorch--Dropout笔记】的更多相关文章

一.继承nn.Module类并自定义层 我们要利用pytorch提供的很多便利的方法,则需要将很多自定义操作封装成nn.Module类. 首先,简单实现一个Mylinear类: from torch import nn # Mylinear继承Module class Mylinear(nn.Module): # 传入输入维度和输出维度 def __init__(self,in_d,out_d): # 调用父类构造函数 super(Mylinear,self).__init__() # 使用Pa…
Module 是 pytorch 提供的一个基类,每次我们要 搭建 自己的神经网络的时候都要继承这个类,继承这个类会使得我们 搭建网络的过程变得异常简单. 本文主要关注 Module 类的内部是怎么样的. 初始化方法中做了什么def __init__(self): self._backend = thnn_backend self._parameters = OrderedDict() self._buffers = OrderedDict() self._backward_hooks = Or…
本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson3/module_containers.py 这篇文章来看下 PyTorch 中网络模型的创建步骤.网络模型的内容如下,包括模型创建和权值初始化,这些内容都在nn.Module中有实现. 网络模型的创建步骤 创建模型有 2 个要素:构建子模块和拼接子模块.如 LeNet 里包含很多卷积层.池化层.全连接层,当我们构建好所有的子模块之后,按照一定的顺序拼接起来…
本章代码: https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson6/bn_and_initialize.py https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson6/bn_in_123_dim.py https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson6/norma…
记录如何用Pytorch搭建LeNet-5,大体步骤包括:网络的搭建->前向传播->定义Loss和Optimizer->训练 # -*- coding: utf-8 -*- # All codes and comments from <<深度学习框架Pytorch入门与实践>> # Code url : https://github.com/zhouzhoujack/pytorch-book # lesson_2 : Neural network of PT(Py…
书上内容太多太杂,看完容易忘记,特此记录方便日后查看,所有基础语法以代码形式呈现,代码和注释均来源与书本和案例的整理. # -*- coding: utf-8 -*- # All codes and comments from <<深度学习框架Pytorch入门与实践>> # Code url : https://github.com/zhouzhoujack/pytorch-book # lesson_1 : Basic code syntax of PT(Pytorch) im…
原文地址:https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html 什么是pytorch? pytorch是一个基于python语言的的科学计算包,主要分为两种受众: 能够使用GPU运算取代NumPy 提供最大灵活度和速度的深度学习研究平台 开始 Tensors Tensors与numpy的ndarray相似,且Tensors能使用GPU进行加速计算. 创建5 * 3的未初始化矩阵: 创建并随机初始化矩阵: 创建一…
目录 Pytorch Leture 05: Linear Rregression in the Pytorch Way Logistic Regression 逻辑回归 - 二分类 Lecture07: How to make netural network wide and deep ? Lecture 08: Pytorch DataLoader Lecture 09: softmax Classifier part one part two : real problem - MNIST i…
import torch.nn as nn import torch.nn.functional as F class Net(nn.Module): def __init__(self): #nn.Module子类的函数必须在构造函数中执行父类的构造函数 #下式等价于nn.Module.__init__(self) super(Net,self).__init__() # 卷积层‘1’表示输入图片为单通道,‘6’表示输出通道数,‘5’表示卷积核为5*5 self.conv1 = nn.Conv…
一.对Tensor的操作 从接口的角度讲,对Tensor的操作可以分为两类: (1)torch.function (2)tensor.function 比如torch.sum(a, b)实际上和a.sum(b)功能等价. 从存储的角度讲,对Tensor的操作也可以分为两类: (1)不修改自身数据,如a.add(b),加法结果返回一个新的tensor: (2)修改自身数据,如a.add_(b),加法结果仍存在a中,a被改变. 函数名以_结尾的称为inplace方式. 二.Tensor的创建 常见的…
一.Tensor Tensor是Pytorch中重要的数据结构,可以认为是一个高维数组.Tensor可以是一个标量.一维数组(向量).二维数组(矩阵)或者高维数组等.Tensor和numpy的ndarrays相似. import torch as t 构建矩阵:x = t.Tensor(m, n) 注意这种情况下只分配了空间,并没有初始化. 使用[0,1]均匀分布随机初始化矩阵:x = t.rand(m, n) 查看x的形状:x.size() 加法: (1)x + y (2)t.add(x, y…
method 1 import torch from torch.autograd import Variable N, D_in, H, D_out = 64, 1000, 100, 10 x = Variable(torch.randn(N, D_in)) y = Variable(torch.randn(N, D_out), requires_grad=False) # define our model as a sequence of layers model = torch.nn.Se…
PyTorch Tensors are just like numpy arrays, but they can run on GPU.No built-in notion of computational graph, or gradients, or deep learning.Here we fit a two-layer net using PyTorch Tensors: import torch dtype = torch.FloatTensor # step 1: create r…
1. **args, **kwargs的区别 def build_vocab(self, *args, **kwargs): counter = Counter() sources = [] for arg in args: if isinstance(arg, Dataset): sources += [getattr(arg, name) for name, field in arg.fields.items() if field is self] else: sources.append(…
一.visdom可视化工具 安装:pip install visdom 启动:命令行直接运行visdom 打开WEB:在浏览器使用http://localhost:8097打开visdom界面 二.使用visdom # 导入Visdom类 from visdom import Visdom # 定义一个env叫Mnist的board,如果不指定,则默认归于main viz = Visdom(env='Mnist') # 在window Accuracy中画train acc和test acc,x…
一.Pytorch安装 安装cuda和cudnn,例如cuda10,cudnn7.5 官网下载torch:https://pytorch.org/ 选择下载相应版本的torch 和torchvision的whl文件 使用pip install whl_dir安装torch,并且同时安装torchvision 二.初步使用pytorch # -*- coding:utf-8 -*- __author__ = 'Leo.Z' import torch import time # 查看torch版本…
import torch as t import torch.nn as nn import torch.nn.functional as F from torchvision import models # 残差快 残差网络公式 a^[L+] = g(a^[L]+z^[L+]) class ResidualBlock(nn.Module): def __init__(self, inchannel, outchannel, stride=, shortcut=None): #shortcut=…
.简介 torch.autograd.Variable是Autograd的核心类,它封装了Tensor,并整合了反向传播的相关实现 Variable和tensor的区别和联系 Variable是篮子,而tensor是鸡蛋,鸡蛋应该放在篮子里才能方便拿走(定义variable时一个参数就是tensor) Variable这个篮子里除了装了tensor外还有requires_grad参数,表示是否需要对其求导,默认为False Variable这个篮子呢,自身有一些属性 比如grad,梯度varia…
PyTorch结构介绍对PyTorch架构的粗浅理解,不能保证完全正确,但是希望可以从更高层次上对PyTorch上有个整体把握.水平有限,如有错误,欢迎指错,谢谢! 几个重要的类型和数值相关的TensorVariableParameterbuffer(这个其实不能叫做类型,其实他就是用来保存tensor的)Tensor: PyTorch中的计算基本都是基于Tensor的,可以说是PyTorch中的基本计算单元. Variable: Tensor的一个Wrapper,其中保存了Variable的创…
pytorch在torch.nn.init中提供了常用的初始化方法函数,这里简单介绍,方便查询使用. 介绍分两部分: 1. Xavier,kaiming系列: 2. 其他方法分布 Xavier初始化方法,论文在<Understanding the difficulty of training deep feedforward neural networks> 公式推导是从“方差一致性”出发,初始化的分布有均匀分布和正态分布两种. 1. Xavier均匀分布 torch.nn.init.xavi…
本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson1/linear_regression.py 张量的操作 拼接 torch.cat() torch.cat(tensors, dim=0, out=None) 功能:将张量按照 dim 维度进行拼接 tensors: 张量序列 dim: 要拼接的维度 代码示例: t = torch.ones((2, 3)) t_0 = torch.cat([t, t], d…
PyTorch 的诞生 2017 年 1 月,FAIR(Facebook AI Research)发布了 PyTorch.PyTorch 是在 Torch 基础上用 python 语言重新打造的一款深度学习框架.Torch 是采用 Lua 语言为接口的机器学习框架,但是因为 Lua 语言较为小众,导致 Torch 学习成本高,因此知名度不高. PyTorch 的发展 2017 年 1 月正式发布 PyTorch. 2018 年 4 月更新 0.4.0 版,支持 Windows 系统,caffe2…
本章代码: https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson1/tensor_introduce1.py https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson1/tensor_introduce1.py Tensor 的概念 Tensor 中文为张量.张量的意思是一个多维数组,它是标量.向量.矩阵的高维扩展. 标量可以称为 0 维张量,向…
本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson1/computational_graph.py 计算图 深度学习就是对张量进行一系列的操作,随着操作种类和数量的增多,会出现各种值得思考的问题.比如多个操作之间是否可以并行,如何协同底层的不同设备,如何避免冗余的操作,以实现最高效的计算效率,同时避免一些 bug.因此产生了计算图 (Computational Graph). 计算图是用来描述运算的有向无环…
1.torch.nn.state_dict(): 返回一个字典,保存着module的所有状态(state). parameters和persistent_buffers都会包含在字典中,字典的key就是parameter和buffer的names. 例子: import torch from torch.autograd import Variable import torch.nn as nn class Model(nn.Module): def __init__(self): super(…
thumbnail: https://image.zhangxiann.com/jeison-higuita-W19AQY42rUk-unsplash.jpg toc: true date: 2020/2/19 20:17:25 disqusId: zhangxian categories: PyTorch tags: AI Deep Learning 本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson2/…
PyTorch 的数据增强 我们在安装PyTorch时,还安装了torchvision,这是一个计算机视觉工具包.有 3 个主要的模块: torchvision.transforms: 里面包括常用的图像预处理方法 torchvision.datasets: 里面包括常用数据集如 mnist.CIFAR-10.Image-Net 等 torchvision.models: 里面包括常用的预训练好的模型,如 AlexNet.VGG.ResNet.GoogleNet 等 深度学习模型是由数据驱动的,…
本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson3/nn_layers_convolution.py 这篇文章主要介绍了 PyTorch 中常用的卷积层,包括 3 个部分. 1D/2D/3D 卷积 卷积有一维卷积.二维卷积.三维卷积.一般情况下,卷积核在几个维度上滑动,就是几维卷积.比如在图片上的卷积就是二维卷积. 一维卷积 二维卷积 三维卷积 二维卷积:nn.Conv2d() nn.Conv2d(sel…
本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson3/nn_layers_others.py 这篇文章主要介绍了 PyTorch 中的池化层.线性层和激活函数层. 池化层 池化的作用则体现在降采样:保留显著特征.降低特征维度,增大 kernel 的感受野. 另外一点值得注意:pooling 也可以提供一些旋转不变性. 池化层可对提取到的特征信息进行降维,一方面使特征图变小,简化网络计算复杂度并在一定程度上避…
本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson4/grad_vanish_explod.py 在搭建好网络模型之后,一个重要的步骤就是对网络模型中的权值进行初始化.适当的权值初始化可以加快模型的收敛,而不恰当的权值初始化可能引发梯度消失或者梯度爆炸,最终导致模型无法收敛.下面分 3 部分介绍.第一部分介绍不恰当的权值初始化是如何引发梯度消失与梯度爆炸的,第二部分介绍常用的 Xavier 方法与 Kaim…