![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pytorch冒险之旅
文章平均质量分 51
桀骜不驯的山里男人
这个作者很懒,什么都没留下…
展开
-
LSTM网络参数解读及用法《pytorch学习篇》
引言:LSTM网络在最近几年相当火爆,然而该论文早在很久以前就已经发表,类似于延时效果,只不过LSTM发挥作用的延时时间段太长了,冷落了很多年才被发掘,lstm主要是用来预测和处理时间序列相关的数据。lstm是rcnn的升级版,rcnn也同样能够是处理时间序列相关的数据,但是lstm处理效果较好,但同时lstm的缺点是不可以忽略的,有关lstm的缺陷请大牛讲解!!!1》LSTM的格式:代码:rnn = nn.LSTM(10, 20, 2)input = torch.randn(5, 3.原创 2021-11-06 20:24:59 · 352 阅读 · 0 评论 -
基于迁移学习的网络训练《pytorch学习篇》
引言:首先我们需要搞清楚,什么是迁移学习,迁移学习为什么怎么红,有纳尼作用?然后弄明白如何使用,即将理论转化为实践。小琼独家所有,请勿侵权!!!《不搞花里胡哨,直接开干》1》迁移学习 迁移学习就是,利用原来的先验知识,接着后续的学习,举个例子:小琼本人三年级小学生,昨天学会了使用图像的读取方式(img=cv2.imread(path)),然而今天我编程实现某个功能,需要用到读取图像这个函数,正好昨天学过,所以几天就不需要重新学习这个函数,只需要拿过来使用即可。这就是迁...原创 2021-11-06 16:32:09 · 308 阅读 · 1 评论 -
ResNet50《pytorch学习篇》
引言:resNet50网络作为res网络家族中的一员,特别强调的是残差网络是何大神提出的,轰动世界的大江南北,主要是因为:当时的卷积神经网络主要通过不断地增加卷积层来提取图像的特征,但是这会引发一个问题-----梯度爆炸问题或者梯度消失问题,也就是说卷积层的数量设置,必须有一定的限制,否则会出现物极必反的现象,然而此时,和大神就提出了残差网络,成功地解决了此类问题,也为自己在国际深度学习的领域奠定了基础。今天主要是学习一下是如何实现的,以一个简单的resNet网络为例子学习,下面一起来看看吧!!!(物极必.原创 2021-10-30 13:37:07 · 1395 阅读 · 0 评论 -
将numpy类型图像转化为tensor数据显示《pytorch学习篇》
引言:在训练网络中时常需要将图像格式进行转化,很麻烦,今天记录一下,下面一起来看看吧!!!1.将numpy----》tensor废话少说,直接开干!代码:import cv2import torchimport numpy as nppath=r'./cat.jpg'img=cv2.imread(path)print(img.shape)img1 = torch.from_numpy(img1)print(img1.shape)#待续。。。#2.结.原创 2021-10-26 19:03:15 · 895 阅读 · 0 评论 -
torch.from_numpy().permute()函数《pytorch学习篇》
引言:今天主要记录一下关于permute()函数的使用。1.permute()函数 首先这个函数主要使用于维度转换,作用:按照指定的方式,对原数据进行排列,一般用于图像的通道数变换。(what?什么什么?没听明白?你说的是。。。)再来:例子(我相信你喜欢)概述:我们使用permute函数改变图像的维度顺序。(可能还有其它作用,待续吧!哈哈)代码:import cv2import mathimport torchpath=r'./a.jpg'img=c...原创 2021-10-20 20:17:53 · 3279 阅读 · 0 评论 -
卷积图像融合的关键操作《pytorch学习篇》
引言:在很多的深度学习网络都需要用到特征融合,尤其是残差网络,典型的融合结构,但是如何实现呢?不着急,torch给我们提供了丰富的函数库,下面我们一起来看看吧!!!。1.torch.cat()函数此函数主要用于将两个或者多个维度相同的数组进行有机融合。例如:import torchdata1=torch.tensor([1,2,5,6])data2=torch.tensor([2,5,9,3])data=torch.cat((data1,data2),0)print(da.原创 2021-10-19 20:12:02 · 1125 阅读 · 0 评论 -
关于卷积逆变换《pytorch学习篇》
引言:在我们进行关于卷积的学习过程中,总是充满好奇,尤其是在学习深度学习的过程中,哇哦!太神奇了,你输入一张图像给深度学习网络,它就会输出一张标有类别的输出图像(例如图像中有一只猫,输出图像就会使用矩形框标出猫所在的位置,并且在矩形框的上方给出识别结果:猫 这个种类)。但是关于卷积的部分学习,我只是知道:对一幅图像使用一个卷积核从上到下、从左到右不停地滑动,最后的输出图像就是卷积后的图像,但是对于输入图像的尺度总是不断地在缩小(不包括padding状态,因为它给图像填充的是黑白两种值,没有特殊的函数,并..原创 2021-10-19 17:25:01 · 477 阅读 · 0 评论 -
torch.unsqueeze()函数解析《pytorch学习》
引言:此函数常用于维度计算当中,网络搭建过程中,在下不才,将此函数理解为维度加一函数,也就是扩充在原来基础上再扩充一个一维 维度的函数。如果在引言部分你只是懵懵懂懂,那下面就展示几个通俗易懂的例子吧!(默认情况下,图像的一般表述为(C*W*H)其中C代表通道数,C就是常说的三RGB通道,W代表的是图像的宽度,H代表图像的高度,下面以这个讲解)1.首先在一维维度的空间张量,在开头加上/扩充一个维度。(Y,X)1》在Y轴方向的扩张代码:data1=torch.tensor([1,2,.原创 2021-10-08 17:43:32 · 1149 阅读 · 0 评论 -
torch.meshgrid()函数《pytorch学习》
引言:torch.meshgrid()函数的作用在下只理解出一层含义,就是数据扩张,就是把一维数据扩张,然后可以和其他数据联合,,可以构成网状数据。1.数据扩张。 在下理解就是x轴的数据扩张成三个x轴数据,y轴的数据扩张成三个y轴数据,然后可构成一张3*3大小的网状,可以利用索引取相应的值。例如;代码:data1=torch.tensor([2,5,6])print(data1)data2=torch.tensor([6,9,4])print(data2)gx,...原创 2021-10-08 16:03:57 · 694 阅读 · 0 评论 -
torch.tensor.permute()函数《pytorch学习》
引言:首先我个人理解为这个函数是一个张量维度变换、张量矩阵转置的函数。1.张量维度变换。官方给出的是这个样子:Tensor.permute(*dims)→ Tensor(还是不太懂)于是参考了这里,然后自己整理思绪,探索了一下!下面给出例子!代码:data1=torch.randn((3,2,1))print('data1的数据类型:',type(data1))print('data1的数据维度:',data1.shape)data2=data1.permute(2,1..原创 2021-10-08 14:58:52 · 1058 阅读 · 0 评论 -
tensor.view()函数--自己的理解《pytorch学习》
引言:首先介绍一下,我们会在哪里遇到这个函数呢?最常见的就是在利用pytorch库搭建网络时,时不时的冒出一个,如果不会!你总是看不懂,以后也看不懂,如果有时间,大家一起来看看这个函数吧!1.tensor.view()函数。 (装逼)this fuction is also a resize fuction ,其实按照我们通俗的理解就是reshape,只不过这里是reshape的是张量,也就是将张量重新调整为自己想要的维度(形状大小),我还是不懂,(说了半天也没能理解),举个例子:代码:..原创 2021-10-08 11:14:36 · 5261 阅读 · 2 评论 -
torch.from_numpy() 函数《torch学习篇》
引言:其实函数torch.from_numpy(ndarray)的作用就是将生成的数组(数组是一般理解,标准应该称为array)转换为 张量Tensor,此函数在数字图像处理中应用广泛,尤其是在训练图像数据集时候会经常看到。1.一起来看个例子吧!代码:data1 = numpy.array([12,56,9,6])print('data1的数据类型为:',type(data1))print('data1的值为:',(data1))data2= torch.from_numpy(d.原创 2021-10-08 09:47:18 · 7555 阅读 · 0 评论 -
YOLO网络中的学习率调整可视化
引言:在网络训练过程中,学习率扮演着重要的角色,类似于爬山过程中你所迈的步长,根据不同的地理环境,相应改变自己的步长跨度,例如挡在比较平缓的山地,你可能迈步相对跨度较大,而在崎岖的山路上,下坡路迈步可能很小。在训练网络的过程中,网络同样需要寻求找到全局最优解,如果步长太大可能在错过了最优解、或者在一个小山谷中来回折腾,当步长太小的话,浪费训练时间(类似于在平原中迈小步)。说了这么多就是希望大家能够更好地理解学习率,以及发挥的作用。(终于说完了,替你捏了把汗)首先看一下在网络中的学习...原创 2021-10-05 09:58:01 · 5109 阅读 · 1 评论 -
pytorch训练网络冻结某些层
引言:首先我们应该很清楚地知道冻结网络中的某些层有什么作用?如何进行相关的冻结设置?代码何如呢?话不多说说,首先我们探讨第一个问题:1.冻结网络的某些层有什么作用? 这个问题顾名思义就是冻结网络中的某些层,使网络在训练过程中,这些层都在不参与的状态,即网络中的某些参数设置就不会更改(已有的训练模型,类似于基于迁移学习的过程),如此大大加快了网络的训练过程,减少了训练的时间。此方法多用于基于迁移学习的模型训练与同时分别训练不同的网络。2.冻结网络中的某些层应该如何设置?...原创 2021-10-05 07:29:15 · 4037 阅读 · 1 评论 -
torch的相关函数torch.set_printoptions()
1.关于torch.set_printoptions的见解代码:torch.set_printoptions(precision=None, threshold=None, edgeitems=None, linewidth=None, profile=None, sci_mode=None)参数:precision – Number of digits of precision for floating point output (default = 4).threshold –.原创 2021-10-04 10:11:30 · 1755 阅读 · 0 评论 -
优化器optimizer
1.首先谈的第一个重要的zero_grad() 梯度清零。由于每次梯度计算完成后,网络中的优化器梯度不会自动清零,所以需要手动输入函数进行优化器梯度清零。例子:for i, data in enumerate(dataLoader): # 获取图片和标签 inputs, labels = data inputs, labels = Variable(inputs), Variable(labels) optimizer.zero_grad() ...原创 2021-10-01 09:06:23 · 429 阅读 · 0 评论 -
pytorch损失函数nn.L1Loss()
1.首先给出函数的参数:nn.L1Loss(size_average=True, reduce=False)2.然后举个简单的例子,帮助理解1》设置网络的输出与真实的输出:# 其中output为网络的输出# target为目标输出即对应输入真实的标签output = torch.ones(2, 3, requires_grad=True)*2.5target = torch.ones(1, 3)2》设置损失函数的参数/实例化:损失函数nn.L1Loss() 作...原创 2021-10-01 08:32:05 · 12572 阅读 · 0 评论 -
交叉熵:计算交叉熵损失函数nn.CrossEntropyLoss()
首先要提出的问题是。。。什么是损失函数?干什么的(功能)?类型有哪些?1.什么是损失函数?损失函数(loss function)或代价函数(cost function)是将随机事件或其有关随机变量的取值映射为非负实数以表示该随机事件的“风险”或“损失”的函数。在应用中,损失函数通常作为学习准则与优化问题相联系,即通过最小化损失函数求解和评估模型。例如在统计学和机器学习中被用于模型的参数估计(parametric estimation),在宏观经济学中被用于风险管理(risk ...原创 2021-09-30 21:24:31 · 4200 阅读 · 1 评论 -
pytorch网络优化器(How to use an optimizer)
1.首先需要我们思考的问题是。。。什么是优化器? 优化器能干什么?有哪些?参数怎么设置?下面为大家一一讲解什么:1》什么是优化器? 在小琼看来,是一个优化函数(白说),举个例子:例如求解y=2*x+3的零点,采用试探法,首先x取值为-1,则y=1,取大了,然后再取x=-2,y=-1,那么我们是不是会在【-2,-1】之间再去一个值,而不是在其他区间内取值,这样如法炮制,逐步会逼近函数的零点,然后得出x=?(你们比我厉害,我算不出)。 其实优化器就是干这个的,优化目...原创 2021-09-30 20:16:11 · 136 阅读 · 0 评论 -
How to adjust learning rate
官方解释:torch.optim — PyTorch 1.9.1 documentation1.自我解释:torch.optim.lr_scheduler 官方给出了很多关于调整学习率的方法,但是调整学习率的时候一般会根据你所训练的次数,做出相应的调整,这是代码自动完成的。 学习率的调整应该在优化器更新之前,例如:官方给出的例子model = [Parameter(torch.randn(2, 2, requires_grad=True))]optim...原创 2021-09-30 18:12:58 · 429 阅读 · 0 评论