Pytorch框架学习
文章平均质量分 68
网络框架学习,希望能两个礼拜学完,2021.8.1至2021.8.15
夏目学习
conda create -n XiamuStudy
展开
-
Week4:[任务三] 第二节 优化器optimizer(二)
为了使得梯度下降需要加上负的梯度方向,也就是减去梯度g(wi)初始位置x0,y0,求取在x0处y的导数,将x0的值带入得到梯度x1;将x1带入函数y,得到y1,继续求取函数y在x1处的导数,将x1的值带入得到梯度x2;将x2带入函数y,得到y2。若将y视为损失函数,可以看出:y0->y1->y2发现y的值并没有减小,反而增大,是因为尺度太大,需要乘以一个系数来缩小尺度学习率lr来减小更新的步伐学习率过小会导致收敛速度减慢,学习率过大(如0.5,0.3)会导致模型不..原创 2021-08-15 10:05:36 · 198 阅读 · 0 评论 -
Week4:[任务三] 第一节 优化器optimizer(一)
【目录】 什么是优化器 optimizer的属性 optimizer的方法 1、什么是优化器 优化器在机器学习中的作用 在损失函数中会得到一个loss值,即模型输出与真实值之间的一个差异对于loss值我们通常会采取pytorch中的自动求导autograd模块去求取模型当中的参数的梯度grad优化器拿到梯度grad后,进行一系列的优化策略去更新模型参数,使得loss值不断下降 导数、方向导数与梯度 学习参数通常是指权值或者偏置bias,更..原创 2021-08-15 10:05:12 · 297 阅读 · 0 评论 -
Week4:[任务二] 第二节 pytorch的14种损失函数
【目录】nn.L1Loss、nn.MSELoss nn.SmoothL1Loss SmoothLoss是对L1Loss的一个平滑 nn.PoissonNLLLoss 泊松分布如果输入已经是对数形式,则直接取指数如果输入不是对数形式,则需要求取对数,为了防止log结果为nan,选取一个很小的数避免底数为0# ---------------------------------- 8 Poisson NLL Loss --------------------.原创 2021-08-15 10:04:50 · 261 阅读 · 0 评论 -
Week4:[任务二] 第一节 损失函数
【目录】 损失函数概念 交叉熵损失函数 NLL/BCE/BCEWithLogits Loss 1、损失函数概念损失函数Loss Function 计算模型输出与真实标签之间的差异代价函数Cost Function 计算训练集中所有样本的模型输出与真实标签差异的平均值目标函数Objective Function 是最终要达到的,其中的正则项Regularization是为了避免模型过拟合,对模型进行的一些约束Loss继承自Module,可以看做一个网络层.原创 2021-08-15 10:04:01 · 215 阅读 · 0 评论 -
Week4:[任务一] 第一节 权值初始化
1、梯度消失与爆炸W2的梯度依赖于H1,即依赖于上一层的输出值原创 2021-08-15 10:03:41 · 89 阅读 · 0 评论 -
Week1:[任务二] 第二节 张量的操作及线性回归
张量的操作:拼接、切分、索引和变换 张量的数学运算 线性回归1、张量操作① 张量的拼接torch.cat(tensors,dim,out) torch.stack(tensors,dim,out)② 张量的切分torch.chunk(input,chunks,dim)torch.split(tensor,split_size_or_sections,dim)③ 张量的索引torch.index_select(input,dim,index,out)...原创 2021-08-07 22:43:50 · 88 阅读 · 0 评论 -
Week1:[任务二] 第一节 张量简介与创建
张量Tensor是什么? 张量Tensor的创建:直接创建,依据数值创建,依据概率创建1.Tensor的概念张量是一个多维数组,其中涵盖标量(0维张量),向量(1维张量),矩阵(2维张量),RGB图像(3维张量),多维数组即为多维张量。2.张量的创建① 直接创建torch.tensortorch.tensor(list/numpy,device = 'cuda') #默认是在CPU上,放在GPU上写cudatorch.from_numpy(ndarray)②依..原创 2021-08-07 22:43:26 · 89 阅读 · 0 评论 -
Week1:[任务一] 第二节 PyTorch安装版本及环境版本匹配问题
1.Anaconda安装时注意事项将anaconda添加到系统变量 添加中科大或者清华镜像源,这样在用conda安装包时下载速度会更快一些 Anaconda的主要用处:管理虚拟环境,可以配置不同版本的解释器和工具包(例如一个环境的pytorch用CPU版本,一个环境用GPU版本)2.Pycharm使用时注意事项先在终端创建虚拟环境,在环境中安装所需的包 通过File->Settings进行解释器选择,找到该创建的项目名称->Python Interpreter可以对虚拟环境进原创 2021-08-07 22:42:53 · 444 阅读 · 0 评论 -
Week3:[任务三] nn网络层-池化、线性、激活函数网络层
【目录】 池化层——Pooling Layer 线性层——Linear Layer 激活函数层——Activation Layer 1、池化层据观察可得,池化后的图片与池化前相比较,细节信息并没有丢失(若非强调,池化都是指最大池化下采样)最大池化下采样:一个下采样的过程,将一个大尺寸的图像变为一个尺寸小的图像池化的作用:冗余信息的剔除,并且减小后面的计算量 nn.MaxPool2d最大池化 向上取整ceil_mode = True;默认的为向下取.原创 2021-08-15 10:07:13 · 621 阅读 · 0 评论 -
Week3:[任务二] 第一节 nn网络层-卷积层
【目录】 1d/2d/3d卷积 卷积-nn.Conv2d() 转置卷积-nn.ConvTranspose 1、1d/2d/3d卷积卷积核是特征匹配器,应用到图像中对图像的每一个像素进行检测,判断其与卷积核的模式是否相似。2、nn.Conv2d空洞卷积:卷积核是间隔开的,主要用于分割任务,主要是用于提升感受野。最终输出响应值的时候需要加上偏置这一项 nn.Conv2d输出图像特征尺寸计算 二维卷积Conv2的para..原创 2021-08-15 10:06:29 · 263 阅读 · 0 评论 -
Week3:[任务一] 第二节 模型创建与nn.Moudle
【目录】 网路层容器(Containers) AlexNet构建 1、容器Containersnn.ModuleList 可以像python list一样迭代 nn.Sequential 早期将一个大的模型划分为特征提取模块(Conv1、pool1)和分类模块(fc1)LeNet网络封装为特征提取器和分类器两部分,分别用sequential进行包装,然后将两个sequential再包装为一个sequential。class LeNetSequen.原创 2021-08-06 22:30:32 · 183 阅读 · 0 评论 -
Week3:[任务一] 第一节 模型创建与nn.Moudle
目录 网络模型创建步骤 nn.Module属性 1、网络模型创建步骤每一个卷积层、池化层和全连接层等都是一些模块(即网络层都是一些子模块);各网络模型都是由子模块组成的;节点就是张量数据(在网络模型图中就是正方形的),边就是运算; 模型构建的两个要素 构建子模块是在_ _init()_ _中拼接子模块实际是前向传播的一个实现在forward()中 torch.nn是torch的一个神经网络模块 nn.Model类的的8个属性..原创 2021-08-12 09:45:50 · 310 阅读 · 0 评论 -
Week2:[任务二] 第二节 transforms图像增强(二)
【目录】 transforms方法操作 transforms—图像变换 自定义transforms方法 亮度:>1会更亮一些对比度:>1会更硬朗一些,白的地方更白,黑的地方更黑饱和度:>1会更鲜艳一些色相:会更改图像的色彩随机遮挡是对张量进行操作,之前的是直接对image图像进行操作宽比长、长比宽一般设置为3倍左右(0.33,3.33)不然会丢失一些像素scale即随机遮挡的面积一般设置为(0.02,0.33)value为遮挡的图像的颜.原创 2021-08-12 09:45:06 · 276 阅读 · 0 评论 -
Week2:[任务二] 第一节 Transforms图像增强(一)
【目录】数据增强Transforms——裁剪Transforms——翻转和旋转1、数据增强2、Transforms——裁剪 transforms.CenterCrop transforms.RandomCrop transforms.RandomResizedCrop scale随机裁减面积比例,默认取值范围为(0.08,1)比如说,0.6代表原始图像面积的百分之六十进行裁剪。将scale设置为(0.5,0.5)是裁剪一半的面积然后进行..原创 2021-08-12 09:44:48 · 134 阅读 · 0 评论 -
Week2:[任务一] 第二节 图像预处理-Transforms
目录 Transforms运行机制 数据标准化——transforms.normalize 1、Transforms图像预处理是为了提高模型的泛化能力,类比于“五年高考三年模拟”,五年高考是原始图像,三年模拟则是预处理之后的新增图像,为了提高模型的适应能力 transform.compose()用于对各种图像变换进行有序的封装,执行起来依次执行图像变换 在做验证的时候不需要对图像进行增强,在做训练时需要图像增强2、数据标准化——transforms.norma.原创 2021-08-12 09:44:32 · 137 阅读 · 0 评论 -
Week2:[任务一] 第一节 DataLoader与DataSet
数据处理工作 架构框图 DataLoader(数据迭代器)由Sampler和DataSet组成Sampler的功能是生成索引,DataSet是根据索引去读取图片以及标签 DataLoader Epoch、Iteration与Batchsize之间的关系 torch.utils.data.Dataset 数据读取过程关键函数 数据读取流程图 首先在for循环中使用DataLoader,然后使用DataLoaderIter决...原创 2021-08-12 09:44:12 · 221 阅读 · 0 评论 -
Week1:[任务三] 第二节 autograd与逻辑回归
自动求导系统逻辑回归torch.autograd.backward()方法张量中的y.backward方法实际调用的是torch.autograd.backward()方法同一个张量反向传播的迭代,需要将y.backward(retain_graph)设置为Truetensors为用于求导的张量,如lossretain_graph用于保存计算图,因为pytorch为动态图机制,每次运算后都会释放掉,如果想要迭代使用计算图,需要将其置为truecreate_graph创建导数的计算原创 2021-08-07 22:44:40 · 222 阅读 · 0 评论 -
Week1:[任务三] 第一节 计算图与动态图机制
计算图 动态图机制1、计算图计算图为求导提供方便 所有从y通向w导数的边之和叶子节点叶子节点是用户自己创建的节点,requires_grad = True非叶子节点在梯度计算后内存会被释放掉,其梯度不会被保存下来,如果该节点的梯度希望被保存下来,则执行:该节点.retain_grad()grad_fn()grad_fn()用来记录该张量是怎样得到的,便于后面梯度的求导运算。比如说y张量是通过乘法得到的,则y.grad_fn=<MulBackward0>.原创 2021-08-07 22:44:13 · 117 阅读 · 0 评论 -
Week1:[任务一] 第一节PyTorch简介与安装
【目录】 PyTorch简介 Anaconda安装 Pycharm安装 PyTorch安装 1.PyTorch简介PyTorch是FAIR(Facebook AI Research)2017年1月发布的一款深度学习框架。2.软件安装需要安装的三种软件:Python包管理器Anaconda,Python集成开发环境PyCharm,Pytorch 解释器(Interpreter)与工具包(Module)和虚拟环境(Virtual Environ...原创 2021-08-07 22:42:29 · 142 阅读 · 0 评论