- 博客(34)
- 收藏
- 关注
原创 PyTorch学习笔记之二十一个项目玩转pytorch(三):从零构建图像分类模型
本文 学习笔记均来自于上述同款书名通过经典项目入门 PyTorch,通过前沿项目提升 PyTorch,基于PyTorch玩转深度学习,本书适合人工智能、机器学习、深度学习方面的人员阅读,也适合其他 IT 方面从业者,另外,还可以作为相关专业的教材。有需要的宝子们可以去拼多多购买,有便宜的PyTorch 是基于 Torch 库的开源机器学习库,它主要由 Meta(原 Facebook)的人工智能研究实验室开发,在自然语言处理和计算机视觉领域都具有广泛的应用。
2023-08-23 11:56:48
470
原创 pytorh学习笔记:根据图示写相应神经网络以及对相应的debug进行修改
该博客说是因为我们forward函数出了错误,再细看网络发现在NetWork中,forward函数中的self没有像正确定义后出现紫色字样,这是因为我们把forward函数定义在了def __init__中,正确 做法应该是俩个def齐平。这是我重新写的一个网络结构,但是出现了相当多的报错,有小伙伴能在不看的情况下把这些报错都改过来吗,有的话评论区扣1,好了回归正题。各位小伙伴大家好,很高兴又能和你见面,,在这篇博客中我将记录我再暑期学习中出现的debug以及修改debug的过程。
2023-08-19 22:34:58
209
原创 PyTorch学习笔记之二十一个项目玩转pytorch(二):ImageNet图像识别模型与CIFAR-10
CIFAR-10数据集共有60000张32*32的RGB彩色图片, 分为10个类别,每个类别有6000张图片。其中训练集图片为50 000张,测试集有10000张图片。训练集和测试集的生成方法是,分别从每个类别中随机挑选1 000张图片加入测试集,其余图片便加入训练集。与MNIST手写字符数据集比较来看,CIFAR-10数据集是彩色图片,图片内容是真实世界的物体,噪声更大,物体的比例也不一样,所以在识别上比MNIST困难很多。特点总结:(1)CIFAR-10是RGB的图片。
2023-08-19 21:15:10
1488
1
原创 PyTorch学习笔记之二十一个项目玩转pytorch(一):数字识别
原始的MNIST数据共包含4个文件文件名大小用途≈9.45Mb训练图像数据≈0.03Mb训练图像的标签≈1.57Mb测试图像数据≈4.4Kb测试图像的标签我们可以通过自行下载数据集,然后自行处理,也可以使用打包好的在pytorch中,torch.nn是专门为神经网络设计的模块化接口,nn库可以用来定义和运行神经网络,nn.Module是nn库中十分重要的类,包含网络各层的定义及forward函数.
2023-08-19 15:43:30
1492
4
原创 PyTorch教程数字识别中为什么是 self.fc1 = nn.Linear(16*5*5, 120)一事
所以任何以32*32为起点的都是在讨论batch_size,而别人给的代码中给出了x.view,将batch_size提到第一维,其他维数相乘,这里算作Linear层的输入,那为什么其他维数相乘是16*5*5呢?为什么全部连接第一层输入是16*5*5,在csdn中查了一番,感觉其他博主说的都没有解决我心中的疑惑,于是问了下我朋友,发现我们掉进了一个陷阱中。虽然他给出了input是32*32,但是人家书中给出的完整代码是。首先,在书中给出了网络结构是。
2023-08-19 14:56:24
799
1
原创 暑期作业笔记:代码以及debug修复
该博客说是因为我们forward函数出了错误,再细看网络发现在NetWork中,forward函数中的self没有像正确定义后出现紫色字样,这是因为我们把forward函数定义在了def __init__中,正确 做法应该是俩个def齐平。这是我重新写的一个网络结构,但是出现了相当多的报错,有小伙伴能在不看的情况下把这些报错都改过来吗,有的话评论区扣1,好了回归正题。各位小伙伴大家好,很高兴又能和你见面,,在这篇博客中我将记录我再暑期学习中出现的debug以及修改debug的过程。
2023-08-18 21:53:21
131
原创 PyTorch学习笔记:Vision Transformer(ViT)模型原理及PyTorch逐行实现
虽然变压器架构已成为自然的事实标准语言处理任务,其对计算机视觉的应用仍然有限。在 视觉,注意力要么与卷积网络结合使用,要么用于替换卷积网络的某些组件,同时保持其整体结构到位。我们表明,这种对CNN的依赖是不必要的直接应用于图像补丁序列的纯转换器可以执行在图像分类任务上做得很好。
2023-08-18 15:22:37
1046
原创 PyTorch学习笔记:GRU的原理及其手写复现
首先再开始之前,我想问一下在座的各位实现过GRU的源码吗,不会的扣1,会的小伙伴们扣脚指头,嘿嘿,开玩笑的,我也不知道,那么接下来我们一起学习如何写吧!其次 ,对于上一篇LSTM,其实还存在另外一种四个门都存在c(t-1),有兴趣的小伙伴可以 自行修改代码以实现或者可以查看视频讲解需要注意的,例如LSTM存在prej_size,存在俩个初始状态(在原公式中找下标有t-1的)
2023-08-16 16:23:13
754
原创 补充LeNet,resnet,mobilenet的出处(val)
在之前的博客中只给了原作者github的链接放出来,但是可能有小伙伴不知道在哪里,所以我在这将数据集直接放出来,便于各位小伙伴进行代码的理解。
2023-08-14 23:00:27
131
原创 补充LeNet,resnet,mobilenet的出处(train)
在之前的博客中只给了原作者github的链接放出来,但是可能有小伙伴不知道在哪里,所以我在这将数据集直接放出来,便于各位小伙伴进行代码的理解。
2023-08-14 22:49:49
148
原创 补充LeNet,resnet,mobilenet的出处
在之前的博客中只给了原作者github的链接放出来,但是可能有小伙伴不知道在哪里,所以我在这将数据集直接放出来,便于各位小伙伴进行代码的理解。其中(2)点击链接下载花分类数据集(本文已上传以及分好后的数据集)
2023-08-14 22:44:05
291
原创 PyTorch学习笔记:LSTM和LSTMP的原理及其手写复现
首先再开始之前,我想问一下在座的各位实现过LSTM吗,不会的扣1,会的小伙伴们扣脚指头,嘿嘿,开玩笑的,我也不知道,那么接下来我们一起学习如何写吧!30、PyTorch LSTM和LSTMP的原理及其手写复现_哔哩哔哩_bilibili循环神经网络(超详细|附代码训练)_后来后来啊的博客-优快云博客长短时记忆网络(LSTM)(超详细 |附训练代码)_后来后来啊的博客-优快云博客递归神经网络(超详细|附训练代码)_后来后来啊的博客-优快云博客。
2023-08-14 21:30:44
1627
2
原创 Pytorch学习笔记:RNN的原理及其手写复现
应用多层 Elman RNN 与tanh或ReLU非线性到 输入序列。对于输入序列中的每个元素,每个层计算以下内容 功能(计算公式):即ht是t时刻的隐藏状态,xt是t时刻的输入状态,h(t-1)是t-1时刻的隐藏状态,h0则表示初始时刻的隐藏状态.并提供了俩种激活函数tanh和ReLU,一般状态下用的tanh激活函数首先需要对RNN进行 实例化,提供以下参数。
2023-08-12 23:42:29
1094
原创 深入剖析PyTorch DataLoader源码
首先再开始之前,我想问一下在座的各位知道DataLoader的原理吗,不会的扣1,会的小伙伴们扣脚指头,嘿嘿,开玩笑的,我也不知道,那么接下来我们一起学习如何写吧!(强烈建议,因为孩子也不知道博主讲到哪了,太快了(哭))官方给出了代码。
2023-08-11 13:34:57
260
原创 Pytorch的Dataset和DataLoader详细使用教程
理想情况下,我们需要我们的数据集代码 与我们的模型训练代码分离,以获得更好的可读性和模块化。根据索引,它识别图像在磁盘上的位置,将其转换为张量,使用 检索 中 CSV 数据的相应标签,调用其上的转换函数(如果适用),并返回 元组中的张量图像和相应的标签。因为我们指定了 ,在我们遍历所有批次后,数据将被洗牌(用于更细粒度的控制 数据加载顺序,看看。首先再开始之前,我想问一下在座的各位知道怎么写一个Dataset吗,不会的扣1,会的小伙伴们扣脚指头,嘿嘿,开玩笑的,我也不知道,那么接下来我们一起学习如何写吧!
2023-08-11 11:18:23
902
2
原创 MobileNetv1,v2网络详解并使用pytorch搭建MobileNetV2及基于迁移学习训练(超详细|附训练代码)
主要是为了在移动端float16的低精度的时候,也能有很好的数值分辨率,如果对ReLu的输出值不加限制,那么输出范围就是0到正无穷,而低精度的float16无法精确描述其数值,带来精度损失。ReLU和ReLU6图表对比:残差模块(1) 整个过程为 “压缩 - 卷积 - 扩张”,呈沙漏型;(2) 卷积操作为:卷积降维 (1×1) - 标准卷积提取特征 (3×3) - 卷积升维 (1×1);(3) 统一使用 ReLU 激活函数;倒残差模块。
2023-08-10 16:35:15
5104
2
原创 使用pytorch搭建ResNet并基于迁移学习训练(超详细 |附训练代码)
最近在完成学校暑假任务时候,推荐的b站视频中发现了一个非常好的 计算机视觉 + pytorch实战 的教程,相见恨晚,能让初学者少走很多弯路。因此决定按着up给的教程路线:图像分类→目标检测→…一步步学习用 pytorch 实现深度学习在 cv 上的应用,并做笔记整理和总结。up主教程给出了pytorch和tensorflow两个版本的实现,我暂时只记录pytorch版本的笔记。
2023-08-09 16:38:45
9649
3
原创 VGG网络详解及感受野的计算(超详细 |附训练代码)
最近在完成学校暑假任务时候,推荐的b站视频中发现了一个非常好的 计算机视觉 + pytorch实战 的教程,相见恨晚,能让初学者少走很多弯路。因此决定按着up给的教程路线:图像分类→目标检测→…一步步学习用 pytorch 实现深度学习在 cv 上的应用,并做笔记整理和总结。up主教程给出了pytorch和tensorflow两个版本的实现,我暂时只记录pytorch版本的笔记。
2023-08-08 14:40:56
1008
原创 pytoch学习: AlexNet网络结构详解与花分类数据集下载(官方demo实现分类器LeNet)(超详细 |附训练代码)
最近在b站发现了一个非常好的 计算机视觉 + pytorch实战 的教程,相见恨晚,能让初学者少走很多弯路。因此决定按着up给的教程路线:图像分类→目标检测→…一步步学习用 pytorch 实现深度学习在 cv 上的应用,并做笔记整理和总结。up主教程给出了pytorch和tensorflow两个版本的实现,我暂时只记录pytorch版本的笔记。
2023-08-07 17:01:05
865
1
原创 为什么每计算一次batch,就需要调用一次optimizer.zero_grad()
越大训练效果越好,梯度累加则实现了 batchsize 的变相扩大,如果accumulation_steps 为 8,则batchsize '变相' 扩大了8倍,使用时需要注意,学习率也要适当放大。总结来说:梯度累加就是,每次获取1个batch的数据,计算1次梯度,梯度不清空,不断累加,累加一定次数后,根据累加的梯度更新网络参数,然后清空梯度,进行下一次循环。更新1:关于BN是否有影响,BN的估算是在forward阶段就已经完成的,并不冲突。这种模式提供给用户更多的自由度,把梯度玩出花样,比如说。
2023-08-07 14:58:37
261
1
原创 pycharm中如何查看已经定义好的函数
众所周知,在pycharm中有很多已经定义好的函数,这个函数下载好后就可以直接使用,但是我们该如何查看定义好函数的源码呢?再点击定义好的函数就可以查看函数的源码。好啦,几天水一篇,嘻嘻。其实这个很简单,只需要按住。
2023-08-06 23:18:36
110
原创 PyTorch的state_dict、parameters、modules、nn.Sequential及ModuleList源码学习(学习笔记)
以下代码是我的学习笔记,如有出错或者不懂,请指正,同时推荐可以观看以上视频来解惑↑↑↑。
2023-08-06 16:31:20
130
原创 简单了解保存及加载模型
在了解其他模型之前应先搞清楚训练模型的加载已及保存引用vgg16,并保存参数和优化器的状态以及buffer的变量之列的,如代码所示以上是保存代码的权重保存完权重后,就需要加载模型了首先我们需要创建一个参数一样的实例model,加载状态字典,加载进model里面首先自定义一个网络NET,然后进行实例化得到net,再进行权重的更新,最后保存checkpoint,优化器,在此之后对模型和优化器进行load,并且对当前训练周期和loss进行设置.
2023-08-06 15:36:57
93
原创 深入剖析pytorch nn.Module源码
视频推荐:PyTorch的nn.Module是一个基类,用于定义神经网络模型。它提供了一些方法和属性,使得我们可以方便地定义、训练和使用神经网络模型。我们定义的模型也该继承这个类(class)如上,nn.conv2d将二维子module加入到父module中去。
2023-08-04 17:01:44
357
1
原创 递归神经网络(超详细|附训练代码)
另外两个词『Germany』和『France』因为表示的都是地点,它们的向量与上面两句话的向量的距离,就比另外两个表示时间的词『Monday』和『Tuesday』的向量的距离近得多。比如,在左边的这棵树中,向量p2是短语『外语学院的学生』的表示,而向量p1是短语『外语学院的』的表示。然后,我们把产生的父节点的向量和其他子节点的向量再次作为网络的输入,再次产生它们的父节点。的输入是两个子节点(也可以是多个),输出就是将这两个子节点编码后产生的父节点,父节点的维度和每个子节点是相同的。对于这种复杂的结构,
2023-08-03 16:13:00
6218
原创 长短时记忆网络(LSTM)(超详细 |附训练代码)
那么,从这个时刻开始再往之前走,得到的梯度(几乎为零)就不会对最终的梯度值有任何贡献,这就相当于无论t-3时刻之前的网络状态h是什么,在训练中都不会对权重数组W的更新产生影响,也就是网络事实上已经忽略了t-3时刻之前的状态。由于遗忘门的控制,它可以保存很久很久之前的信息,由于输入门的控制,它又可以避免当前无关紧要的内容进入记忆。LSTM的前向计算都这么复杂,那么,可想而知,它的训练算法一定是非常非常复杂的。从上面的代码我们可以看到,门的计算都是相同的算法,而门和的计算仅仅是激活函数不同。
2023-08-02 23:24:49
107840
5
原创 简单学习定义循环神经网络(RNN)
与传统的前馈神经网络不同,RNN在每个时间步都会接收输入和前一时间步的隐藏状态,并输出当前时间步的隐藏状态和预测结果。这种循环结构使得RNN能够对序列中的上下文信息进行建模,从而更好地处理序列数据的特征和依赖关系。RNN的一个重要变体是长短期记忆网络(Long Short-Term Memory,LSTM),它通过引入门控机制解决了传统RNN在处理长序列时的梯度消失和梯度爆炸问题。RNN的核心思想是通过循环连接将当前时刻的输入与上一时刻的隐藏状态进行结合,从而实现对序列信息的建模。
2023-08-01 17:37:34
579
1
原创 循环神经网络(超详细|附代码训练)
如果用2-Gram进行建模,那么电脑在预测的时候,只会看到前面的『了』,然后,电脑会在语料库中,搜索『了』后面最可能的一个词。从上图我们可以看到,softmax layer的输入是一个向量,输出也是一个向量,两个向量的维度是一样的(在这个例子里面是4)。语言模型要求的输出是下一个最可能的词,我们可以让循环神经网络计算计算词典中每个词是下一个词的概率,这样,概率最大的词就是下一个最可能的词。例如,我们对标签『我』进行向量化,得到的向量中,只有第2019个元素的值是1,其他位置的元素的值都是0。
2023-07-31 15:45:01
7131
3
原创 卷积神经网络(超详细|配代码讲解)
展示的神经网络,我们看到输入层的宽度和高度对应于输入图像的宽度和高度,而它的深度为1。说卷积神经网络是最重要的一种神经网络也不为过,它在最近几年大放异彩,几乎所有图像、语音识别领域的重要突破都是卷积神经网络取得的,比如谷歌的GoogleNet、微软的ResNet等,打败李世石的AlphaGo也用到了这种网络。第一个全连接层的每个神经元,和上一层5个Feature Map中的每个神经元相连,第二个全连接层(也就是输出层)的每个神经元,则和第一个全连接层的每个神经元相连,这样得到了整个网络的输出。
2023-07-30 20:31:42
11355
5
原创 神经网络和反向传播算法(超详细|附上训练代码)
在上一篇文章中,我们已经掌握了机器学习的基本套路,对模型、目标函数、优化算法这些概念有了一定程度的理解,而且已经会训练单个的感知器或者线性单元了。在这篇文章中,我们将把这些单独的单元按照一定的规则相互连接在一起形成,从而奇迹般的获得了强大的学习能力。。最后,我们依然用代码实现一个神经网络。如果您能坚持到本文的结尾,将会看到我们用自己实现的神经网络去识别手写数字。现在请做好准备,您即将双手触及到深度学习的大门。
2023-07-27 19:16:25
1727
1
原创 线性单元和梯度下降(超详细|附训练代码)
在上一篇文章中,我们已经学会了编写一个简单的感知器,并用它来实现一个线性分类器。你应该还记得用来训练感知器的『感知器规则』。然而,我们并没有关心这个规则是怎么得到的。本文通过介绍另外一种『感知器』,也就是『线性单元』,来说明关于机器学习一些基本的概念,比如模型、目标函数、优化算法等等。这些概念对于所有的机器学习算法来说都是通用的,掌握了这些概念,就掌握了机器学习的基本套路。
2023-07-11 23:18:53
787
原创 初识感知机(超详细|配合编程实战更易理解)
初听可能跟会有一些疑惑.感知机perceptron)是神经网络的基础结构。下图是一个感知机的例子:输入权值一个感知器可以接收多个输入,每个输入上有一个权值,此外还有一个偏置项,就是上图中的。激活函数感知器的激活函数可以有很多选择,比如我们可以选择下面这个阶跃函数f输出感知器的输出由下面这个公式来计算看完这若有点懵,那么我们举个例子我们设计一个感知器,让它来实现and运算。程序员都知道,and是一个二元函数(带有两个参数和),下面是它的真值表X1X2Y000010100。
2023-07-10 13:04:21
869
1
原创 张量的认识以及常用函数的列举(Tensor)
此为学习笔记,若有出错请指正张量其实类似于数组,也分为1-n维x_data即为张量,且type(x_data)类型为torch.Tensor,查看内部类型为x_data.dtype也可以从numpy中创建生成2*2的张量(但无法给出dtype)
2023-07-10 00:25:28
1070
1
深度学习 pytorch从图像分类→神经网络学习深入→目标检测→语义分割,简易版本学习推荐
2023-08-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人