自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 问答 (1)
  • 收藏
  • 关注

原创 循环神经网络(一)---

前面介绍过多层全连接网络和卷积神经网络,可以发现这些网络不需要记忆的特性也能处理对应的任务,下面举一个具体的例子引出循环神经网络。首先我们来看看下面这两句话,如图5.1与图5.2所示。第一句话表达到达北京的意思,第二句话表达离开北京的意思。对于这样一个任务,如果网络只输入 “beijing” 这个词而没有记忆的特性,那么对于这两句话,网络会输出相同的结果。但是如果网络能够记忆 “beijing” 前面的词,它就会预测出不同的结果,所以说神经网络需要记忆的特性。

2024-08-02 18:30:00 1338

原创 卷积神经网络随记

一般而言,几个小滤波器卷积层的组合比一个大滤波器卷积层要好,比如层层堆叠了3个3x3的卷积层,中间含有非线性激活层,在这种排列下面,第一个卷积层中每个神经元对输入数据的感受野是3x3,第二层卷积层对第一层卷积层的感受野也是3x3,这样对于输入数据的感受野就是5x5,同样,第三层卷积层上对第二层卷积层的感受野是3x3,这样第三层卷积层对于第一层输入数据的感受野就是7x7。要提取卷积模块并使用print打印出来,可以遍历模型的层,检查每一层是否为卷积层(nn.Conv2d),如果是,则打印出该层的详细信息。

2024-07-31 19:30:00 2142

原创 深度学习代码错误随记

这个错误是因为在创建MNIST数据集时,传入了一个不支持的关键字参数'transforms'。要解决这个问题,你需要将'transforms'参数替换为正确的参数名。在PyTorch中,MNIST数据集的正确参数名是'transform'。解决办法:这个错误是因为你试图将一个在GPU上的tensor转换为numpy数组,但是这是不可能的。你需要先将tensor转移到CPU上,然后再转换为numpy数组。解决方法:这个错误是因为在计算损失时,输入和目标的大小不匹配。转换为 numpy 数组,然后再进行计算。

2024-07-31 18:30:00 956

原创 卷积神经网络(六)---实现 cifar10 分类

最后在 cifar10 的数据集上跑100个 epoch,实现66.61%的训练集准确率,68%的验证集准确率,因为这里只跑了100次,所以还有一定的提升空间。cifar10 数据集有60000张图片,每张图片的大小都是 32x32 的三通道的彩色图,一共是10种类别、每种类别有6000张图片,如图4.27所示。因为这里我是按照自己的想法写的普通版本的 cifar10 分类识别,所以准确率最后并不是很高,如果有人读懂了上面的方法,可以进行试一试。首先进行图像增强,使用前面介绍的增强方式。

2024-07-30 19:30:00 438

原创 卷积神经网络(五)---图像增强的方法

如果拍摄照片的照相机位置发生了改变,那么拍得的图片对于我们而言,变化很小,但是对于计算机而言,图片的像素变化是很大的。拍照时的光照条件也是很重要的一个影响因素:光照太弱,照片里的物体会和背景融为一体,它们的像素点就会很接近,计算机就无法正确识别出物体,如图4.24所示。除此之外,物体本身的变形也会对计算机识别造成障碍,比如一只猫是趴着的,计 算机能够识别它,但如果猫换了一个姿势,变成躺着的状态,那么计算机就无法识别了,如图 4.25所示。

2024-07-30 18:30:00 366

原创 卷积神经网络(四)---再实现MNIST手写数字识别

上面这个简单的卷积神经网络是运用之前所学到的知识来建立的,里面有4层卷积,2层最大池化,卷积之后使用批标准化加快收敛速度,使用ReLU激活函数增加非线性,最后使用全连接层输出分类得分。最后再测试一下网络的结果,可以看到测试集准确率已经达到了99.27%,比之前使用的3层全连接神经网络要高。可以看到通过增加网络的深度和复杂化网络的结构提高网络的准确率是可行的,下面我们将从数据方面出发来提高网络的准确率。

2024-07-29 20:00:00 382

原创 卷积神经网络(三)---案例分析

上面部分介绍了 PyTorch 中的卷积模块,接下来将会介绍几个卷积神经网络的案例,通过案例入手来介绍卷积神经网络的结构设计。

2024-07-29 19:00:00 772

原创 卷积神经网络(二)---PyTorch卷积模块

有时候提取出的层结构并不够,还需要对里面的参数进行初始化,那么如何提取出网络的参数并对其初始化呢?首先 nn.Module() 里面有两个特别重要的关于参数的属性,分别是 named_parameters() 和 parameters()。named_parameters() 是给出网络层的名字和参数的迭代器,parameters() 会给出一个网络的全部参数的迭代器。可以得到每一层参数的名字,如图 4.15所示。图 4.15 得到每一层参数的名字如何对权重做初始化呢?

2024-07-26 18:30:00 1090

原创 卷积神经网络(一)---原理和结构

首先介绍卷积神经网络的参数。这些参数是由一些可学习的滤波器集合构成的,每个滤波器在空间上(宽度和高度)都比较小,但是深度和输入数据的深度保持一致。举例来说,卷积神经网络的第一层卷积一个典型的滤波器的尺寸可以是5x5x3(宽和高都是5),或者是3x3x3(宽和高都是3),这里的宽度和高度可以任意定义,但是深度必须是3,因为深度要和输入一致,而输入的图片是3通道的。在前向传播的时候,让每个滤波器都在输入数据的宽度和高度上滑动(卷积),然后计算整个滤波器和输入数据任意一处的内积。

2024-07-25 19:00:00 1684

原创 多层全连接神经网络随记

在这个例子中,`enumerate(train_loader, 0)`表示从`train_loader`的第一个元素开始遍历,并将当前元素的索引赋值给变量`i`,同时将元素本身赋值给变量`data`。例如,在深度学习中,较快的收敛速度意味着模型经过更少的训练迭代就能找到一组较好的参数配置,这可以在较短的时间内获得较高的性能表现。- **计算**:在每个`epoch`结束时,通常会计算模型在该`epoch`上的准确率,这涉及将模型对验证集或测试集中每个样本的预测与真实标签进行比较,并统计正确预测的数量。

2024-07-25 18:30:00 815

原创 多层全连接神经网络(八)---实现MNIST手写数字分类

在 PyTorch 里面可以很简单地定义三层全连接神经网络。对于这个三层网络,需要传递进去的参数包括:输入的维度、第一层网络的神经元个数、第二层网络神经元的个数,以及第三层网络(输出层)神经元的个数。

2024-07-24 05:00:00 914

原创 多层全连接神经网络(七)---处理数据和训练模型的技巧

数据预处理中一个最常见的处理办法就是每个特征维度都减去相应的均值实现中心化,这样可以使得数据变成0均值,特别对于一些图像数据,为了方便我们将所有的数据都减去一个相同的值。

2024-07-23 16:00:00 756

原创 多层全连接神经网络(六)---各种优化算法的变式

梯度下降算法原理此处不做过多说明。

2024-07-22 16:00:00 820

原创 多层全连接神经网络(五)---反向传播算法

对于有需要讲解链式法则的朋友,后续会补充。

2024-07-20 05:00:00 231

原创 多层全连接神经网络(四)---简单的前向网络

神经网络神经元概念部分有需要会单独再讲。

2024-07-19 19:00:00 865

原创 多层全连接神经网络(三)---分类问题

机器学习中的监督学习主要分为回归问题和分类问题,我们之前已经讲过回归问题了,它希望预测的结果是连续的,那么分类问题所预测的结果就是离散的类别。这时输入变量可以是离散的,也可以是连续的,而监督学习从数据中学习一个分类模型或者分类决策函数,它被称为分类器(classifier)。分类器对新的输入进行输出预测,这个过程即称为分类(classification)。例如,判断邮件是否为垃圾邮件,医生判断病人是否生病,或者预测明天天气是否下雨等。

2024-07-18 20:00:00 833

原创 多层全连接神经网络(二)

线性回归的原理,如果有需要,可以单独拿出来讲。

2024-07-17 21:00:00 701

原创 多层全连接神经网络(一)

PyTorch 里面处理的最基本的操作对象就是 Tensor,Tensor 是张量的英文,表示的是一个多维的矩阵,比如零维就是一个点,一维就是向量,二维就是一般的矩阵,多维就相当于一个多维的数组,这和 numpy 是对应的,而且 PyTorch 的 Tensor 可以和 numpy 的 ndarray 相互转换,唯一不同的是 PyTorch 可以在 GPU 上运行,而 numpy 的 ndarray 只能在 CPU 上运行。

2024-07-16 21:30:00 680

原创 深度学习框架介绍

首先要介绍的当然是 Google 开源的TensorFlow,这是一款使用C++语言开发的开源数学计算软件,使用数据流图(Data Flow Graph)的形式进行计算。图中的节点代表数学运算,而图中的线条表示多维数据数组(tensor)之间的交互。TensorFlow灵活的架构可以部署在一个或多个CPU、GPU的台式及服务器中,或者使用单一的API应用在移动设备中。

2024-07-15 19:00:00 739

原创 6.2 通过构建情感分类器训练词向量

在上一节中,我们简要地了解了词向量,但并没有去实现它。在本节中,我们将下载一个名为IMDB的数据集(其中包含了评论),然后构建一个用于计算评论的情感是正面、负面还是未知的情感分类器。在构建过程中,还将为 IMDB 数据集中存在的词进行词向量的训练。我们将使用一个名为 torchtext 的库,这个库使下载、向量化文本和批处理等许多过程变得更加容易。训练情感分类器将包括以下步骤。

2024-06-26 21:30:00 726

原创 6 序列数据和文本的深度学习

文本是常用的序列化数据类型之一。文本数据可以看作是一个字符序列或词的序列。对大多数问题,我们都将文本看作词序列。深度学习序列模型(如RNN及其变体)能够从文本数据中学习重要的模式。这些序列模型还可以作为各种系统的重要构建块,例如问答(Question and Answering,OA)系统。虽然这些模型在构建这些应用时非常有用,但由于语言固有的复杂性,模型并不能真正理解人类的语言。这些序列模型能够成功地找到可执行不同任务的有用模式。将深度学习应用于文本是一个快速发展的领域,每月都会有许多新技术出现。

2024-06-26 18:30:00 696

原创 理解CNN模型如何学习

深度学习模型常常被认为是不可解释的。但是人们正在探索不同的技术来解释这些模型内发生了什么。对于图像,由卷积神经网络学习的特征是可解释的。我们将探索两种流行的技术来理解卷积神经网络。

2024-06-25 19:30:00 709

原创 计算预卷积特征

为了更好地理解,让我们将卷积块(在示例中为vgg.features块)视为具有了已学习好的权重且在训练期间不会更改的函数。幸运的是,VGG16的PyTorch实现包含了两个序列模型,所以只选择第一个序列模型的特征就可以了。获得了 train 和 validation 集的卷积特征后,让我们创建 PyTorch 的 Dataset 和 DataLoader 类,这将简化训练过程。在上面的代码中,preconvfeat 方法接受数据集和 vgg 模型,并返回卷积特征以及与之关联的标签。

2024-06-25 19:00:00 293

原创 创建和探索VGG16模型

PyTorch在torchvision库中提供了一组训练好的模型。这些模型大多数接受一个称为 pretrained 的参数,当这个参数为True 时,它会下载为ImageNet 分类问题调整好的权重。现在有了所有权重已经预训练好且可马上使用的VGG16模型。当代码第一次运行时,可能需要几分钟,这取决于网络速度。权重的大小可能在500MB左右。我们可以通过打印快速查看下 VGG16模型。当使用现代架构时,理解这些网络的实现方式非常有用。模型摘要包含了两个序列模型:features和classifiers。

2024-06-24 19:45:00 711

原创 从零开始构建CNN模型

CNN架构的随后几层中的滤波器识别更高级别的特征,例如眼睛和手指,最后几层学习识别确切的类别。在迁移学习中,我们尝试通过冻结架构的大部分层的学习参数来捕获算法的学习内容。在这个例子中,我们只训练最后几个线性层并保持卷积层不变,因为卷积学习的特征主要用于具有类似属性的各种图像相关的问题。因此,我们将学习如何使用预训练好的模型来构建只需要很少数据的最先进的图像分类器。我们将研究另一种称为迁移学习的技术,它可以帮助我们训练更准确的模型,以及加快训练的速度。我们将使用相同的体系结构,并进行一些小的更改,如下所示。

2024-06-24 18:15:00 496

原创 深度学习之计算机视觉

全连接层和卷积层的根本区别在于权重在中间层中彼此连接的方式。图5.1描述了全连接层或线性层是如何工作的。在计算机视觉中使用线性层或全连接层的最大挑战之一是它们丢失了所有空间信息,并且就全连接层使用的权重数量而言复杂度太高。例如,当将224像素的图像表示为平面阵列时,我们最终得到的数组长度是150,528(224x224x3通道)。当图像扁平化后,我们失去了所有的空间信息。让我们来看看CNN的化版本是什么样子的,如图5.2 所示。所有卷积层所做的是在图像上施加一个称为滤波器的权重窗口。

2024-06-20 21:30:00 1884

原创 机器学习项目的工作流

为了定义问题,需要准备---输入数据和问题类型。数据中隐藏的模式有助于将输入映射到输出;我们拥有的数据足以让模型进行学习;未来或未知的数据将接近历史数据所描述的模式。

2024-06-20 21:00:00 949

原创 数据预处理与特征工程、过拟合与欠拟合

常用的数据预处理步骤。

2024-06-19 19:30:00 226

原创 评估机器学习模型

特定的算法在训练集中表现非常优越,但在验证集或测试集上却表现不佳的现象称为过拟合(overfitting),或者说算法缺乏泛化的能力。存在一种相反的现象,即算法在训练集上的表现不佳,这种现象称为欠拟合(underfitting)

2024-06-19 17:00:00 163

原创 牛客网刷题第四天 | HJ51 输出单向链表中倒数第k个结点、HJ55 挑7

牛客网大佬思路:采用头插法实现,这样可以得出结论,倒数第k个 === 整数第k个正常思路:尾插法,即每次新结点在链表的结尾插入,采用双指针法,快指针与慢指针相差k-1个,当快指针到达链表尾部时,慢指针所指即为倒数第k个节点。

2023-05-20 10:26:40 170

原创 牛客网刷题第三天 | HJ32 密码截取、HJ33 整数与IP地址间的转换、

首先确定回文串,就是找中心然后向两边扩散看是不是对称的就可以了。。一个元素可以作为中心点,两个元素也可以作为中心点。

2023-05-16 10:07:57 384

原创 牛客网刷题第一天 | HJ29 字符串加解密、HJ31 单词倒排

大写字母的 ASCII 码值范围是 65 到 90,而小写字母的 ASCII 码值范围是 97 到 122。然看清题目要求。

2023-05-14 19:22:59 198

原创 牛客网刷题第一天 | HJ23 删除字符串中出现次数最少的字符、HJ26 字符串排序、

牛客网刷题第一天 | HJ23 删除字符串中出现次数最少的字符、HJ26 字符串排序、

2023-05-12 11:01:01 471

原创 代码随想录算法训练营总结篇

代码随想录算法训练营总结篇

2023-04-16 10:17:41 1358

原创 代码随想录算法训练营第六十天 | 84. 柱状图中最大的矩形

代码随想录算法训练营第六十天 | 84. 柱状图中最大的矩形

2023-04-15 09:58:19 192

原创 代码随想录算法训练营第五十九天 | 503. 下一个更大元素 II、42. 接雨水

代码随想录算法训练营第五十九天 | 503. 下一个更大元素 II、42. 接雨水

2023-04-14 10:15:57 665

原创 代码随想录算法训练营第五十八天 | 739. 每日温度、496. 下一个更大元素 I

代码随想录算法训练营第五十八天 | 739. 每日温度、496. 下一个更大元素 I

2023-04-13 10:16:51 232

原创 代码随想录算法训练营第五十七天 | 647. 回文子串、516. 最长回文子序列、动态规划总结

代码随想录算法训练营第五十七天 | 647. 回文子串、516. 最长回文子序列、动态规划总结

2023-04-12 10:13:48 408

原创 代码随想录算法训练营第五十六天 | 583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结

代码随想录算法训练营第五十六天 | 583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结

2023-04-11 10:31:59 607

原创 代码随想录算法训练营第五十五天 | 392. 判断子序列、115. 不同的子序列

代码随想录算法训练营第五十五天 | 392. 判断子序列、115. 不同的子序列

2023-04-10 10:28:12 486

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除