
pytorch
文章平均质量分 68
Code_LiShi
北理工PHD在读
展开
-
torch中 squeeze 和 unsqueeze 的不同用法
如果维度是 1 ,那么,1 仅仅起到扩充维度的作用,而没有其他用途,因而,在进行降维操作时,为了加快计算,是可以去掉这些 1 的维度。在多维张量中,如果某一个维度是1,那么这个维度是为了扩充维度,所以为了加快计算,进行降维操作时可以去掉1的维度。不指定维度,则会将所有为1 的维度全部降维,保留不是1 的维度。. dim 选择需要降维的维度,默认是None。torch.unsqueeze 是为了升维。dim: 指定在某个维度进行升维。. input:输入的张量。input: 插入的张量。原创 2023-12-14 15:59:43 · 1032 阅读 · 0 评论 -
为什么每次optimizer.zero_grad()
因此,通过在每个训练步骤开始时调用 optimizer.zero_grad(),我们确保每一次参数更新都只考虑了从最新数据计算出的梯度,这样每次更新都是独立的,与前一次迭代的数据无关。如果不清零梯度,当第二个批次的数据来临时,计算出的梯度 ∇w2∇w2 和 ∇b2∇b2 将会加到 ∇w1∇w1 和 ∇b1∇b1 上,因此更新会基于 ∇w1+∇w2∇w1+∇w2 和 ∇b1+∇b2∇b1+∇b2。这意味着你的模型是基于之前所有数据的累积信息进行更新的,而不是只基于最新数据。原创 2023-12-04 15:06:36 · 467 阅读 · 0 评论 -
labelImg
使用labelimg框图闪退报错(TypeError: arguments did not match any overloaded call)PyQt5:是用于创建GUI应用程序的跨平台工具包,它将Python与Qt库融为一体。Lxml:是一个Python库,使用它可以轻松处理XML和HTML文件。在绘制矩形框的时候,这里如果python版本过高,会报错,所以这里python版本设置为3.10以下,3.9比较好。在anaconda虚拟环境中安装labelImg。进入conda虚拟环境DL2中。原创 2023-11-21 17:21:08 · 181 阅读 · 0 评论 -
pytorch中对nn.BatchNorm2d()函数的理解
机器学习中,进行模型训练之前,需对数据做归一化处理,使其分布一致。在深度神经网络训练过程中,通常一次训练是一个batch,而非全体数据。每个batch具有不同的分布产生了internal covarivate shift问题——在训练过程中,数据分布会发生变化,对下一层网络的学习带来困难。Batch Normalization强行将数据拉回到均值为0,方差为1的正太分布上,一方面使得数据分布一致,另一方面避免梯度消失。原创 2023-11-10 21:19:11 · 1169 阅读 · 0 评论 -
深度学习经典网络:GoogleNet
Inception就是把多个卷积或池化操作,放在一起组装成一个网络模块,设计神经网络时以模块为单位去组装整个网络结构。模块如下图所示在未使用这种方式的网络里,我们一层往往只使用一种操作,比如卷积或者池化,而且卷积操作的卷积核尺寸也是固定大小的。但是,在实际情况下,在不同尺度的图片里,需要不同大小的卷积核,这样才能使性能最好,或者或,对于同一张图片,不同尺寸的卷积核的表现效果是不一样的,因为他们的感受野不同。原创 2023-11-07 15:49:41 · 270 阅读 · 0 评论 -
感受野(Receptive Field)理解和计算
在卷积神经网络中,感受野(Receptive Filed)是经过神经网络后生成的指特征图上的某个像素点所对应输入图像的区域。针对上面的图,经过conv2 卷积神经网络后,生成了22 的特征图,针对这个22 特征图的一个像素来说,它是由conv1 生成的特征图做第一个22 的卷积得到的。而经过conv1生成的特征图的22 的这个区域是由于conv1 对Raw image做了四次卷积运算得到的。所以conv2 特征图的一个像素对应原图的范围是5。原创 2023-11-02 16:23:22 · 146 阅读 · 0 评论 -
Matplotlib详解(plt 和ax分别是什么)
如果将Matplotlib绘图和我们平常画画相类比,可以把Figure想象成一张纸(一般被称之为画布),Axes代表的则是纸中的一片区域(当然可以有多个区域,这是后续要说到的subplots),下面是一张更形象一点的图。这时就需要做点注释。首先,我们应该要了解一张用Matplotlib画出来的图的具体构造,引用一张官方的图。原创 2023-10-29 16:23:20 · 3258 阅读 · 0 评论 -
Python中json的用法
Json本质上一个带有特定格式的字符串,json是一种在各个编程语言中流通的数据格式,负责不同编程语言的数据传递和交互。国际通用语言-英语中国56个民族的通用语言-普通话JSON的特定格式如下一种是也可以是这种列表格式的json内元素只能是字典。原创 2023-10-28 15:49:31 · 189 阅读 · 0 评论 -
Python中的*args 和 **kwargs
args 不定参数(不定的意思是指,预先并不知道,函数使用者会传递多少个参数给你)*args 是用来发送一个非键值对的可变数量的参数列表给一个函数。*args 的用法:当传入的参数个数未知,且不需要知道参数名称时。原创 2023-10-27 20:08:09 · 212 阅读 · 0 评论 -
深度学习中的epoch, batch 和 iteration
mnist 数据集有60000张图片作为训练数据,10000张图片作为测试数据。假设现在选择 ==Batch_Size =100 ==对模型进行训练。实际上,梯度下降的几种方式的根本区别就在于上面公式中的Bathch_Size 不同,原创 2023-10-26 15:43:21 · 461 阅读 · 0 评论 -
Pytorch:model.train()和model.eval()用法和区别,以及model.eval()和torch.no_grad()的区别
model.train()的作用是启用。如果模型中有BN层(Batch Normalization)和Dropout,需要在训练时添加model.train()。model.train()是保证BN层能够用到每一批数据的均值和方差。对于Dropout,model.train()是随机取一部分网络连接来训练更新参数。原创 2023-10-25 17:04:11 · 851 阅读 · 1 评论 -
PyTorch模型的保存与加载
通过model.parameters()这个生成器来访问所有参数。通过model.state_dict()来为每一层和它的参数建立一个映射关系并存储在字典中,其键值由每个网络层和其对应的参数张量构成。原创 2023-10-24 17:12:59 · 175 阅读 · 0 评论 -
多通道图片的卷积过程
如果输入图片是三维的(三个channel),例如(8,8,3),那么每一个filter的维度就是(3,3,3),每一个filter的channel要与图片的channel数目一样。所以求卷积的过程是将每个通道分别求卷积,然后将三个通道相加得到最后的特征图。最后特征图的维度的最后一个channel与利用了多少个filter有关。同时有4个filter图中的输入图像是(8,8,3),filter有4个,大小均为(3,3,3),得到的输出为(6,6,4)。原创 2023-10-24 16:08:10 · 188 阅读 · 0 评论 -
【pytorch 中 torch.max 和 torch.argmax 的区别】
troch.max 和 torch.argmax 的用法原创 2023-10-18 15:59:50 · 1173 阅读 · 0 评论