![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Pytorch基础篇
文章平均质量分 65
该专栏主要是为了让萌新快速掌握pytorch的基本知识点
MrRoose
研究方向CV+DL,阿里云专家博主,腾讯云优秀创作者,CSDN计算机视觉领域新星创作者。
深耕ai的同时也在拓展java开发和大数据。愿2024年更进一阶!
展开
-
深度学习-防止模型过拟合的方法总结
大家细想便会发现,的确,对于神经网络的各层输出,由于它们经过了层内操作作用,其分布显然与各层对应的输入信号分布不同,而且差异会随着网络深度增大而增大,可是它们所能“指示”的样本标记(label)仍然是不变的,这便符合了covariate shift的定义。从上图可以很容易地看出,由于L2范数解范围是圆,所以相切的点有很大可能不在坐标轴上,而由于L1范数是菱形(顶点是凸出来的),其相切的点更可能在坐标轴上,而坐标轴上的点有一个特点,其只有一个坐标分量不为零,其他坐标分量为零,即是稀疏的。......转载 2022-08-08 21:27:22 · 415 阅读 · 0 评论 -
卷积神经网络基础(最详细)+如何写代码(Pytorch)+推荐学习顺序+心得感悟
1)很多人在介绍卷积神经网络的时候,包括很多书籍,比如《python深度学习》都想用一个形象的例子来介绍卷积神经网络的作用是提取图像的特征。以《python深度学习》为例,大家都会说,第一层卷积是为了提取一些线条和曲线的特征,再通过一层卷积提取到高级的特征,比如眼睛,鼻子,猫耳朵等。但其实这样的形容是不准确的,换句话来说只能是为了方便感性的了解,所以才举了一个特殊的例子。因为在卷积神经网络中,每一层提取的特征是什么,其实每一次都是不同的。因为每一个模型不同卷积层的参数(W,a,b等)的初始化都...原创 2022-05-11 02:10:38 · 4633 阅读 · 2 评论 -
Pytorch中的转置卷积 nn.ConvTranspose2d
起因在之前的博客中,已经在理论层面上介绍过转置卷积,但一直没有在代码中真正应用过,因为目前在图像分割领域中的上采样操作通常直接用双线性插值来做了。最近探索AutoEncoder,在解码器中要用到转置卷积,涉及到了编码,发现pytorch的实际操作以及参数设置上并没有那么简单,因此写下本文记录一下。探索关于什么是转置卷积,参照我上节给出的博客,这里就不过多叙述了。直接上pytorch实操:conv = nn.Conv2d(3, 8, 3, stride=2, padding=1)Dcon转载 2022-04-22 15:47:03 · 1391 阅读 · 0 评论 -
Pytorch数据预处理——选择与自定义transforms(通过向图片上添加椒盐噪声、高斯噪声增来强数据的数据增强方法)
前言这篇笔记是学习pytorch的数据预处理方式transforms,这篇笔记包括两个要点,第一是在已经选好transform方法transform1,transform2,transform3...,并且都设置好参数数的前提下,如何在每次迭代的时候选择不同组的transform方法或者使用不同的调用顺序,第二是如何自定义transform方法 ,虽然pytorch提供了很多transform方法,但有时可能也需要自己定义。本笔记提供了在图片上添加椒盐和高斯噪声 的数据增强方法。本笔记的知识框架主要来源原创 2022-05-05 13:47:50 · 6508 阅读 · 2 评论 -
Pytorch之Base_calcuate(卷积层,池化层,激活函数,全连接层,顺序容器(Sequential))
torch.nn最基本的需要了解module类,该类是所有网络的基类,你的模型都得继承它类似示例中的提示,继承并复写init和forwardimport torchfrom torch import nnclass new_class(nn.Module): def __init__(self): super(new_class, self).__init__() def forward(self, input): return inpu原创 2022-04-18 17:16:24 · 1287 阅读 · 0 评论 -
Pytorch之Save&Load(保存和加载模型)
模型的保存和加载都在系列化的模块下先看保存的更详细的可以参考这里https://pytorch.org/docs/stable/notes/serialization.html#preserve-storage-sharingtorch.save()并torch.load()让您轻松保存和加载张量:最简单的就是t = torch.tensor([1., 2.])torch.save(t, 'tensor.pth')torch.load('tensor.pth')按照惯例,Py原创 2022-04-18 20:58:39 · 5733 阅读 · 0 评论 -
Pytorch 如何定义Dateset类及需要注意的函数
os.listdir()Python的listdir()方法返回一个列表,其中包含由path指定的目录中的条目的名称。 列表是任意顺序的。它不包括特殊条目’.‘ 和’..‘,即使它们存在于目录中。且目录必须是绝对路径。例:#!/usr/bin/python3import os, sys # Open a filepath = "d:\\tmp\\"dirs = os.listdir( path ) # This would print all the files and dire原创 2022-04-18 11:24:11 · 206 阅读 · 0 评论 -
Pytorch之Tensorboard(可视化)
在torch里使用tensorboard是在这里from torch.utils.tensorboard import SummaryWriter然后如果进入后打开structure可以查看该包内的对象和方法,比如说比较常用的这几个方法add_scalaradd_imageadd_graph等说回来,想要使用tensorboard,先实例化,指定event文件的文件夹writer = SummaryWriter("logs")然后先说一下之后能用的格式Image、li原创 2022-04-18 15:43:23 · 1675 阅读 · 0 评论 -
torch.utils.data.DataLoader函数用法及详解
class DataLoader(object): r""" Data loader. Combines a dataset and a sampler, and provides single- or multi-process iterators over the dataset. Arguments: dataset (Dataset): dataset from which to load the data. batch_size (.转载 2022-04-15 17:07:53 · 3879 阅读 · 0 评论 -
PyTorch】详解nn模块的BatchNorm2d()函数
torch.nn.BatchNorm2d(num_features,eps=1e-05,momentum=0.1,affine=True,track_running_stats=True,device=None,dtype=None)基本原理在卷积神经网络的卷积层之后总会添加BatchNorm2d进行数据的归一化处理,这使得数据在进行Relu之前不会因为数据过大而导致网络性能的不稳定,BatchNorm2d()函数数学原理如下: ...原创 2022-04-16 10:48:52 · 10295 阅读 · 1 评论 -
Pytorch之训练的完整过程(最终篇)
先引入库(事实上是在构建时引入的)note9_train.pyimport torchvisionfrom torch.utils.tensorboard import SummaryWriterfrom note9_LeNet import *from torch import nnfrom torch.utils.data import DataLoader其中note9_LeNet中存放的是之前的模型文件,大多数情况也这么引入note9_LeNet.pyimport tor原创 2022-04-18 21:12:28 · 15431 阅读 · 0 评论 -
functools partial详解
首先从一个例子说起:首先我们定义了一个function add ,它接收两个参数a和b,返回a和b的和。然后我们使用partial ,第一个参数是fun ,即传入我们的函数add,然后 再传入一个参数 ,这里是 1 ,它返回给我们一个新的function (addOne)。我们发现这个新的function 只需要接受一个参数,然后返回这个参数与 1 的和。看起来其实相当于我们在使用add函数时固定了a的值为1(注意是从左到右固定参数的值,你可以自己定义一个减法测试)。那我们是不是 可以固定多个参数的转载 2022-04-16 10:10:26 · 2318 阅读 · 1 评论 -
Pytorch之Transforms(数据预处理)
transforms提供了一系列变换的函数,辅助完成图像处理from torchvision import transformsfrom torch.utils.tensorboard import SummaryWriterfrom PIL import Imageimport cv2先ctrl到transforms的文件里,并点开pycharm左下角的structure查看class层级结构图左的类是transforms提供的图像变换功能,先准备图片和tensorboard原创 2022-04-18 15:58:42 · 962 阅读 · 0 评论 -
Pytorch之loss(损失函数)
损失函数也在torch.nn下,具体可以参考文档,也可以参考官网先根据L1Loss举例我个人感觉这里的描述还是到官网的文档找比较好,公式看的比文档清楚import torchfrom torch import nninputs = torch.tensor([[3, 2, 1],[1, 2, 3]], dtype=torch.float32)target = torch.tensor([[1, 2, 1],[1, 2, 4]], dtype=torch.float32)l原创 2022-04-18 20:03:01 · 5814 阅读 · 0 评论 -
Pytorch之Dataloader(数据集下载及分批次导入)
首先是加载标准数据集torchvision可以直接加载的数据集建议去官网找doc>torchvision>dataset然后点击右面的数据集又详细的使用教程比如这里的CIFAR10当然,也可以直接ctrl+Q查看如何加载加载代码如下import torchvisiontrain_set = torchvision.datasets.CIFAR10(root='./CIFAR10', train=True, download=True)test_set =原创 2022-04-18 16:10:12 · 2230 阅读 · 0 评论 -
Pytorch之Optim(优化器)
使用优化器,接收损失函数的结果,并调整网络参数,完成反向传播根据示例optimizer = torch.optim.SGD(module.parameters(), lr=0.01, momentum=0.9)然后根据提示,清空梯度>网络前传>计算损失>反向传播>优化网络参数在运行区域引入库和之前的Moduleif __name__ == '__main__': module = Module() loss = nn.CrossEn原创 2022-04-18 20:12:25 · 2088 阅读 · 0 评论