吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(4-1)-- 卷积神经网络基础

吴恩达Machine Learning课程学习笔记1 监督机器学习 回归和分类(P1-41) 机器学习的定义:"Field of study that gives computers the ability to learn without being explicitly programmed.无需明确编程,赋予计算机学习能力的研究领域"(Arthur Samuel 1959)。机器学习可应用于语音识别、计算机视觉、增强现实、自动驾驶、大规模工业、电子商务、医疗保健等领域。 阅读详情

作者: 大树先生
博客: http://blog.youkuaiyun.com/koala_tree
知乎:https://www.zhihu.com/people/dashuxiansheng
GitHub:https://github.com/KoalaTree
2017 年 11 月 6 日


Ng新课终于发布了,撒花!以下为在Coursera上吴恩达老师的 DeepLearning.ai 课程项目中,第四部分《卷积神经网络》第一周课程“卷积神经网络基础”关键点的笔记。本次笔记几乎涵盖了所有视频课程的内容。在阅读以下笔记的同时,强烈建议学习吴恩达老师的视频课程,视频请至 Coursera 或者 网易云课堂。


同时我在知乎上开设了关于机器学习深度学习的专栏收录下面的笔记,以方便大家在移动端的学习。欢迎关注我的知乎:大树先生。一起学习一起进步呀!_


卷积神经网络 — 卷积神经网络基础

1. 计算机视觉

计算机视觉(Computer Vision)包含很多不同类别的问题,如图片分类、目标检测、图片风格迁移等等。

还在路上,稍等...

对于小尺寸的图片问题,也许我们用深度神经网络的结构可以较为简单的解决一定的问题。但是当应用在大尺寸的图片上,输入规模将变得十分庞大,使用神经网络将会有非常多的参数需要去学习,这个时候神经网络就不再适用。

卷积神经网络在计算机视觉问题上是一个非常好的网络结构。

2. 边缘检测示例

卷积运算是卷积神经网络的基本组成部分。下面以边缘检测的例子来介绍卷积运算。

所谓边缘检测,在下面的图中,分别通过垂直边缘检测和水平边缘检测得到不同的结果:

还在路上,稍等...

垂直边缘检测:

假设对于一个 6 × 6 6\times6 6×6 大小的图片(以数字表示),以及一个 3 × 3 3\times3 3×3 大小的 filter(卷积核) 进行卷积运算,以“ ∗ * ∗”符号表示。图片和垂直边缘检测器分别如左和中矩阵所示:

还在路上,稍等...

filter 不断地和其大小相同的部分做对应元素的乘法运算并求和,最终得到的数字相当于新图片的一个像素值,如右矩阵所示,最终得到一个 4 × 4 4\times4 4×4 大小的图片。

边缘检测的原理:

以一个有一条垂直边缘线的简单图片来说明。通过垂直边缘 filter 我们得到的最终结果图片可以明显地将边缘和非边缘区分出来:

还在路上,稍等...

卷积运算提供了一个方便的方法来检测图像中的边缘,成为卷积神经网络中重要的一部分。

多种边缘检测:

垂直和水平边缘检测

还在路上,稍等...

更复杂的filter

还在路上,稍等...

对于复杂的图片,我们可以直接将filter中的数字直接看作是需要学习的参数,其可以学习到对于图片检测相比上面filter更好的更复杂的filter,如相对于水平和垂直检测器,我们训练的 filter 参数也许可以知道不同角度的边缘。

通过卷积运算,在卷积神经网络中通过反向传播算法,可以学习到相应于目标结果的filter,将其应用于整个图片,输出其提取到的所有有用的特征。

还在路上,稍等...

卷积和互相关:

在数学定义上,矩阵的卷积(convolution)操作为首先将卷积核同时在水平和垂直方向上进行翻转,构成一个卷积核的镜像,然后使用该镜像再和前面的矩阵进行移动相乘求和操作。如下面例子所示:

还在路上,稍等...

在深度学习中,我们称为的卷积运算实则没有卷积核变换为镜像的这一步操作,因为在权重学习的角度,变换是没有必要的。深度学习的卷积操作在数学上准确度来说称为互相关(cross-correlation)。

3. Padding

没有Padding的缺点:

  • 每次卷积操作,图片会缩小;
    就前面的例子来说, 6 × 6 6\times6 6×6 大小的图片,经过 3 × 3 3\times3 3×3 大小的 filter,缩小成了 4 × 4 4\times4 4×4 大小
    图片: n × n n\times n n×n --> ( n − f + 1 ) × ( n − f + 1 ) (n-f+1)\times (n-f+1) (n−f+1)×(n−f+1)
  • 角落和边缘位置的像素进行卷积运算的次数少,可能会丢失有用信息。

其中,n表示图片的长或宽的大小,f表示filter的长或宽的大小。

加Padding:

为了解决上面的两个缺点,我们在进行卷积运算前为图片加padding,包围角落和边缘的像素,使得通过filter的卷积运算后,图片大小不变,也不会丢失角落和边沿的信息。

还在路上,稍等...

以p表示 Padding 的值,则输入 n × n n\times n n×n大小的图片,最终得到的图片大小为 ( n + 2 p − f + 1 ) × ( n + 2 p − f + 1 ) (n+2p-f+1)\times (n+2p-f+1) (n+2p−f+1)×(n+2p−f+1),为使图片大小保持不变,需根据filter的大小调整p的值。

Valid / Same 卷积:

  • Valid:no padding;( n × n n\times n n×n --> ( n − f + 1 ) × ( n − f + 1 ) (n-f+1)\times (n-f+1) (n−f+1)×(n−f+1))
  • Same:padding,输出与输入图片大小相同,( p = ( f − 1 ) / 2 p=(f-1)/2 p=(f−1)/2)。在计算机视觉中,一般来说padding的值为奇数(因为filter一般为奇数)

4. 卷积步长(stride)

卷积的步长是构建卷积神经网络的一个基本的操作。

如前面的例子中,我们使用的 stride=1,每次的卷积运算以1个步长进行移动。下面是 stride=2 时对图片进行卷积的结果:

还在路上,稍等...

以s表示stride的大小,那么在进行卷积运算后,图片的变化为: n × n n\times n n×n --> ⌊ n + 2 p − f s + 1 ⌋ × ⌊ n + 2 p − f s + 1 ⌋ \left\lfloor \dfrac{n+2p-f}{s}+1 \right\rfloor\times \left\lfloor \dfrac{n+2p-f}{s}+1 \right\rfloor ⌊sn+2p−f​+1⌋×⌊sn+2p−f​+1⌋。

注意,在当 p a d d i n g ≠ 1 padding\ne 1 padding​=1时,若移动的窗口落在图片外面时,则不要再进行相乘的操作,丢弃边缘的数值信息,所以输出图片的最终维度为向下取整。

5. 立体卷积

卷积核的通道数:

对于灰色图像中,卷积核和图像均是二维的。而应用于彩色图像中,因为图片有R、G、B三个颜色通道,所以此时的卷积核应为三维卷积核。

还在路上,稍等...

卷积核的第三个维度需要与进行卷积运算的图片的通道数相同。

多卷积核:

单个卷积核应用于图片时,提取图片特定的特征,不同的卷积核提取不同的特征。如两个大小均为 3 × 3 × 3 3\times3\times3 3×3×3 的卷积核分别提取图片的垂直边缘和水平边缘。

还在路上,稍等...

由图可知,最终提取到彩色图片的垂直特征图和水平特征图,得到有2个通道的 4 × 4 4\times4 4×4大小的特征图片。

Summary:

图片: n × n × n c n\times n\times n_{c} n×n×nc​ ∗ * ∗ f × f × n c f\times f\times n_{c} f×f×nc​ —> n − f + 1 × n − f + 1 × n c ′ n-f+1\times n-f+1\times n'_{c} n−f+1×n−f+1×nc′​

其中, n c n_{c} nc​ 表示通道的数量, n c ′ n'_{c} nc′​表示下一层的通道数,同时也等于本层卷积核的个数。

6. 简单卷积网络

单层卷积网络的例子:

和普通的神经网络单层前向传播的过程类似,卷积神经网络也是一个先由输入和权重及偏置做线性运算,然后得到的结果输入一个激活函数中,得到最终的输出:

z [ 1 ] = w [ 1 ] a [ 0 ] + b [ 1 ] a [ 1 ] = g ( z [ 1 ] ) z^{[1]}=w^{[1]}a^{[0]}+b^{[1]}\\a^{[1]}=g(z^{[1]}) z[1]=w[1]a[0]+b[1]a[1]=g(z[1])

不同点是在卷积神经网络中,权重和输入进行的是卷积运算。

还在路上,稍等...

单层卷积的参数个数:

在一个卷积层中,如果我们有10个 3 × 3 × 3 3\times3\times3 3×3×3 大小的卷积核,那么加上每个卷积核对应的偏置,则对于一个卷积层,我们共有的参数个数为:

( 3 × 3 × 3 + 1 ) × 10 = 280 (3\times3\times3+1)\times10 = 280 (3×3×3+1)×10=280

还在路上,稍等...

无论图片大小是多少,该例子中的卷积层参数个数一直都是280个,相对于普通的神经网络,卷积神经网络的参数个数要少很多。

标记的总结:

如果 l l l 表示一个卷积层:

  • f [ l ] f^{[l]} f[l]:filter 的大小;

  • p [ l ] p^{[l]} p[l]:padding;

  • s [ l ] s^{[l]} s[l]:步长(stride);

  • 卷积核的个数: n C [ l ] n^{[l]}_{C} nC[l]​;

  • filter大小: f [ l ] × f [ l ] × n C [ l − 1 ] f^{[l]}\times f^{[l]}\times n^{[l-1]}_{C} f[l]×f[l]×nC[l−1]​;

  • 激活值(Activations): a [ l ] — > n H [ l ] × n W [ l ] × n C [ l ] a^{[l]}—>n^{[l]}_{H}\times n^{[l]}_{W}\times n^{[l]}_{C} a[l]—>nH[l]​×nW[l]​×nC[l]​;

  • 权重(Weights): f [ l ] × f [ l ] × n C [ l − 1 ] × n C [ l ] f^{[l]}\times f^{[l]}\times n^{[l-1]}_{C}\times n^{[l]}_{C} f[l]×f[l]×nC[l−1]​×nC[l]​;

  • 偏置(bias): n C [ l ] — — ( 1 , 1 , 1 , n C [ l ] ) n^{[l]}_{C}——(1,1,1,n^{[l]}_{C}) nC[l]​——(1,1,1,nC[l]​)

  • Input: n H [ l − 1 ] × n W [ l − 1 ] × n C [ l − 1 ] n^{[l-1]}_{H}\times n^{[l-1]}_{W}\times n^{[l-1]}_{C} nH[l−1]​×nW[l−1]​×nC[l−1]​;

  • Output: n H [ l ] × n W [ l ] × n C [ l ] n^{[l]}_{H}\times n^{[l]}_{W}\times n^{[l]}_{C} nH[l]​×nW[l]​×nC[l]​;

  • 其中, n H [ l ] = ⌊ n H [ l − 1 ] + 2 p [ l ] − f [ l ] s [ l ] + 1 ⌋ n^{[l]}_{H} = \left\lfloor \dfrac{n^{[l-1]}_{H}+2p^{[l]}-f^{[l]}}{s^{[l]}}+1 \right\rfloor nH[l]​=⌊s[l]nH[l−1]​+2p[l]−f[l]​+1⌋, n W [ l ] = ⌊ n W [ l − 1 ] + 2 p [ l ] − f [ l ] s [ l ] + 1 ⌋ n^{[l]}_{W} = \left\lfloor \dfrac{n^{[l-1]}_{W}+2p^{[l]}-f^{[l]}}{s^{[l]}}+1 \right\rfloor nW[l]​=⌊s[l]nW[l−1]​+2p[l]−f[l]​+1⌋;

简单卷积网络示例:

多层卷积构成卷积神经网络,下面是一个卷积神经网络的例子:

还在路上,稍等...

卷积网络层的类型:

  • 卷积层(Convolution),Conv;
  • 池化层(Pooling),Pool;
  • 全连接层(Fully connected):Fc;

7. 池化层

最大池化(Max pooling):

最大池化是对前一层得到的特征图进行池化减小,仅由当前小区域内的最大值来代表最终池化后的值。

还在路上,稍等...

在最大池化中,有一组超参数需要进行调整,其中, f f f 表示池化的大小, s s s表示步长。

  • 池化前: n × n n\times n n×n;
  • 池化后: ⌊ n + 2 p − f s + 1 ⌋ × ⌊ n + 2 p − f s + 1 ⌋ \left\lfloor \dfrac{n+2p-f}{s}+1 \right\rfloor\times \left\lfloor \dfrac{n+2p-f}{s}+1 \right\rfloor ⌊sn+2p−f​+1⌋×⌊sn+2p−f​+1⌋。

平均池化(Average pooling):

平均池化与最大池化唯一不同的是其选取的是小区域内的均值来代表该区域内的值。

还在路上,稍等...

池化 Summary:

池化层的超参数:

  • f f f:filter的大小;
  • s s s:stride大小;
  • 最大池化或者平均池化;
  • p p p:padding,这里要注意,几乎很少使用。

注意,池化层没有需要学习的参数。

8. 卷积神经网络示例

这里以 LeNet-5 为例,给出一个完整的卷积神经网络。

还在路上,稍等...

构建深度卷积的模式:

  • 随着网络的深入,提取的特征图片大小将会逐渐减小,但同时通道数量应随之增加;
  • Conv——Pool——Conv——Pool——Fc——Fc——Fc——softmax。

卷积神经网络的参数:

还在路上,稍等...

根据上表我们可以看出,对于卷积卷积神经网络的参数:

  • 在卷积层,仅有少量的参数;
  • 在池化层,没有参数;
  • 在全连接层,存在大量的参数。

9. 使用卷积神经网络

参数少的优势:

与普通的全连接神经网络相比,卷积神经网络的参数更少。如图中的例子,卷积神经网络仅有 6 × ( 5 × 5 + 1 ) = 156 6\times(5\times5+1)=156 6×(5×5+1)=156个参数,而普通的全连接网络有 3072 × 4704 ≈ 14 M 3072\times4704\approx 14M 3072×4704≈14M个参数。

还在路上,稍等...
  • 参数共享:一个特征检测器(filter)对图片的一部分有用的同时也有可能对图片的另外一部分有用。
  • 连接的稀疏性:在每一层中,每个输出值只取决于少量的输入。

训练卷积神经网络:

还在路上,稍等...

我们将训练集输入到卷积神经网络中,对网络进行训练。利用梯度下降(Adam、momentum等优化算法)最小化代价函数来寻找网络最优的参数。


本周(Week1)的课后编程题请参见:
吴恩达Coursera深度学习课程 DeepLearning.ai 编程作业(4-1)

吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(4-3)-- 目标检测 卷积神经网络 --- 目标检测 阅读详情

相关推荐

吴恩达Coursera深度学习课程 deeplearning.ai 目录

第一部分 深度学习概论 (1-1) 深度学习概论–课程笔记 (1-1) 深度学习概论–编程作业 (1-2) 神经网络基础–课程笔记 (1-2) 神经网络基础–编程作业 (1-3) 浅层神经网络–课程笔记 (1-3) 浅层神经网络–编程作业 (1-4) 深层神经网络–课程笔记 (1-4) 深层神经网络–编程作业 第二部分 深度学习及其优化 (2-1) 深度学习实践–课程笔记 ...

浩宇天罡 2817

深度学习入门指南——2022吴恩达学习笔记Coursera《Machine Learning》篇(已完结,超详细)

由于本人在学习该门课程时已经具备了一些ML、DL方面的基础知识,因此为了避免记录冗余知识,节约时间,本文仅在前人笔记的基础上记录一些对本人而言较为重要的知识点(相当于查漏补缺吧,hh)且吴恩达老师的课程教学基于tensorflow,但学术界目前最常使用的还是pytorch(本人经常用的也是pytoch),因此本笔记仅记录理论知识,不涉及具体的代码实现。

a131529的博客 3257

【论文导读】ICDM2018|SASRec---基于自注意力机制的序列推荐(召回)

前言本次分享2018年发表在ICDM上的论文----「Self-Attentive Sequential Recommendation」。主要是应用self-attention机制来做一...

Blank_Space 8032

深度学习(2)--卷积神经网络(CNN)

卷积神经网络基础概念,输入层,卷积层,池化层,整体网络架构,感受野

GodFishhh的博客 1219

k8s 查看cpu使用率最高的pod

在 Kubernetes 中,可以使用命令查看 Pod 的资源使用情况,从而找到 CPU 使用率最高的 Pod。

u010674101的专栏 3345

告别环境配置烦恼:用Conda一键搞定GATK4、samtools、fastp等生信分析全家桶

本文介绍如何利用Conda快速搭建包含GATK4、samtools、fastp等工具的生物信息学分析环境,解决软件安装和版本冲突问题。通过详细的配置步骤和实战案例,帮助研究者十分钟内完成重测序分析全家桶的环境配置,显著提升上游分析效率。

weixin_30753873的博客 334

卷积神经网络基础知识

卷积神经网络基础知识:输入输出、网络结构、损失函数和评价指标。

weixin_44498476的博客 1万+

2020年大连理工大学《单片机原理及应用》期末试卷

2020年大连理工大学《单片机原理及应用》期末试卷 此试卷为大连理工大学2020年《单片机原理及应用》期末试卷; 大连理工大学2020年《单片机原理及应用》期末试卷; 大连理工大学2020年《单片机原理及应用》期末试卷。 ...

无名何许人的博客 1478

【人工智能基础07】卷积神经网络基础(CNN):卷积神经网络结构、各层计算原理,以及常见卷积神经网络

卷积神经网络

hiliang521的博客 6996

基于3D相机的人体穴位识别与标注系统——完整Python实现方案

摘要 本文提出了一种基于3D相机的人体穴位识别与标注系统完整实现方案。系统采用Intel RealSense D435相机实时采集RGB-D数据,结合MediaPipe Pose模型进行人体33个关键骨骼点的三维姿态估计。通过建立穴位与骨骼关键点的映射关系,利用相机内参和深度信息将二维图像坐标转换为三维空间坐标。系统采用模块化设计,包含数据采集层、算法处理层、坐标转换层和可视化层,实现了穴位定位、三维坐标转换和点云可视化功能。关键技术包括:基于骨度折量法的穴位映射算法、深度图像到三维点云的转换方法,以及Op

AI的内部世界的博客 269

手把手教您如何群晖/飞牛NAS等服务器上一键部署洛雪音乐同步服务,手机电脑无缝同步歌单,支持外网访问

🎵 手机电脑歌单不同步?用Docker在群晖/飞牛NAS等服务器上搭个同步服务器, 3分钟搞定 !支持docker-compose一键部署,手机、电脑、平板收藏夹实时同步,外出也能用域名远程访问 ~ ✨

XiaoqiangClub的博客 4603

完结篇 | 吴恩达deeplearning.ai专项课程精炼笔记全部汇总

个人网站:红色石头的机器学习之路 优快云博客:红色石头的专栏 知乎:红色石头 微博:RedstoneWill的微博 GitHub:RedstoneWill的GitHub 微信公众号:AI有道(ID:redstonewill) 从去年8月份开始,AI界大IP吴恩达在coursera上开设了由5们课组成的深度学习专项课程,掀起了一股人工智能深度学习热潮。这...

红色石头的专栏 7万+

材料带隙预测(图神经网络)(⭐⭐)—— 用晶体图网络预测钙钛矿材料的能带隙,加速光伏材料筛选。技术栈:CGCNN、MEGNet、Materials Project数据集

钙钛矿太阳能电池以其高效率、低成本的优势迅速崛起,但传统“试错法”材料筛选效率极低,严重制约了光伏技术的迭代速度。近年来,基于图神经网络的材料带隙预测方法,特别是晶体图神经网络(CGCNN)和材料图网络(MEGNet),为这一问题提供了革命性的解决方案。本文系统梳理了材料带隙预测从传统计算到深度学习的演进历程,深入剖析了CGCNN与MEGNet的架构设计、数学原理及创新机制,详细阐述了Materials Project数据集的构建、特征工程与处理策略。

2201_76125393的博客 47

吴恩达老师深度学习课程完整笔记

为了方便学习深度学习课程,转载一个吴恩达老师的一个深度学习笔记,转载的网站是下面这个 https://blog.csdn.net/red_stone1/article/details/80207815 从去年8月份开始,AI界大IP吴恩达在coursera上开设了由5们课组成的深度学习专项课程,掀起了一股人工智能深度学习热潮。这里附上deeplearning.ai的官网: deeplearnin...

Miracle8070 6万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(4-2)-- 深度卷积模型

卷积神经网络 --- 深度卷积模型

大树先生的博客 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(1-4)-- 深层神经网络

神经网络和深度学习 ------- 深层神经网络

大树先生的博客 1万+

吴恩达 深度学习 编程作业(4-1)- Convolutional Neural Networks & CNN Application

Part 1:Convolutional Neural Networks: Step by Step Part 2:Convolutional Neural Networks: Application

大树先生的博客 2万+

吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(5-1)-- 循环神经网络

序列模型 --- 循环神经网络

大树先生的博客 1万+

吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(5-3)-- 序列模型和注意力机制

序列模型 --- 序列模型和注意力机制

大树先生的博客 6391

深度学习与AI爱好者的宝库:Coursera与DeepLearning.AI学习平台

Coursera和DeepLearning.AI是AI学习的重要平台。Coursera提供广泛学科课程,合作全球顶尖高校;DeepLearning.AI专注AI技能,强调实战。两者各有优势:Coursera课程丰富,适合灵活学习;DeepLearning.AI系统性强,注重工程实践。推荐学习路径包括吴恩达的深度学习专项课程和生成式AI系列。尽管英语门槛存在,但免费试听和实用内容使它们成为构建AI能力的优质选择,适合从入门到进阶的不同学习者。

rs勿忘初心的博客 2018

【转】完结撒花!吴恩达DeepLearning.ai《深度学习》课程笔记目录总集

一位大佬做的deeolearning.ai的课程笔记,学习完课程后可以看看

a_piece_of_ppx的博客 1103

吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(4-4)-- 特殊应用:人脸识别和神经风格迁移

卷积神经网络 --- 特殊应用:人脸识别和神经风格迁移

大树先生的博客 8226

吴恩达Coursera深度学习课程 deeplearning.ai (4-4) 神经风格转换--编程作业

吴恩达Coursera深度学习课程 deeplearning.ai (4-4) 神经风格转换–编程作业 资料下载,引用:https://blog.csdn.net/u013733326/article/details/80767079 在这次作业中,你将: 实现神经风格的传递算法 使用你的算法生成新的艺术图像 你学习过的大多数算法都是通过优化成本函数来获得一组参数值。在本次学习中,你将通过优化成本函数得到像素值! 导入需要的包: import os import sys import scipy.io im

little_orange__的博客 2208

这 28 张精炼图,将吴恩达的 deeplearning.ai 总结得恰到好处!

点击上方“AI有道”,选择“星标”公众号重磅干货,第一时间送达吴恩达——人工智能领域的大 IP,他在 Coursera 上开设的 deeplearning.ai 深度学习...

红色石头的专栏 872
上一篇: Google 面试题:最优交易次数
下一篇: LeetCode-566:Reshape the Matrix (矩阵整型)-- easy
大树先生的博客
博客等级 码龄9年 2692粉丝 200原创
评论 13
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值