深度学习
文章平均质量分 90
管二三
山海自有归期,风雨自有相逢
展开
-
吴恩达深度神经网络笔记—神经风格转换
最后,让我们创建一个最小化样式和内容成本的成本函数。原创 2022-11-25 21:29:51 · 691 阅读 · 1 评论 -
吴恩达深度神经网络笔记—人脸识别
FaceNet是通过最小化三元组损失来训练的,但是由于训练需要大量的数据和时间,所以我们不会从头训练,相反,我们会加载一个已经训练好了的模型,运行下列代码来加载模型,可能会需要几分钟的时间。三元组损失函数将上面的形式实现,它会试图将同一个人的两个图像(对于给定的图和正例)的编码“拉近”,同时将两个不同的人的图像(对于给定的图和负例)进一步“分离”。构建一个数据库,里面包含了允许进入的人员的编码向量,使用的是一个字典来表示,这个字典将每个人的名字映射到他们面部的128维编码上。相同的编码可用于验证和识别。原创 2022-11-25 17:05:23 · 913 阅读 · 0 评论 -
吴恩达深度神经网络笔记—YOLO
输入图像为(608,608,3)输入的图像先要通过一个CNN模型,返回一个(19,19,5,85)的数据。在对最后两维降维之后,输出的维度变为了(19,19,425)根据以下规则选择锚框:预测分数阈值:丢弃分数低于阈值的分类的锚框。非最大值抑制:计算交并比,并避免选择重叠框。最后给出YOLO的最终输出。原创 2022-11-23 19:26:12 · 723 阅读 · 0 评论 -
吴恩达深度神经网络笔记—残差网络ResNet
使用GPU的话,博主已经在手势数据集上训练了自己的RESNET50模型的权重,你可以使用下面的代码载并运行博主的训练模型,加载模型可能需要1min。坏处就在于训练的时候会产生梯度消失,非常深的网络通常会有一个梯度信号,该信号会迅速的消退,从而使得梯度下降变得非常缓慢。使用捷径的方式使得每一个残差块能够很容易学习到恒等式功能,这意味着我们可以添加很多的残差块而不会损害训练集的表现。它的主要作用是仅仅应用(学习后的)线性函数来减少输入的维度,以便在后面的加法步骤中的维度相匹配。首先我们要实现基本的残差块。原创 2022-11-17 19:32:10 · 826 阅读 · 0 评论 -
吴恩达深度神经网络笔记—Keras入门
Keras是为了使深度学习工程师能够很快地建立和实验不同的模型的框架,正如TensorFlow是一个比Python更高级的框架,Keras是一个更高层次的框架,并提供了额外的抽象方法。最关键的是Keras能够以最短的时间让想法变为现实。然而,Keras比底层框架更具有限制性,所以有一些非常复杂的模型可以在TensorFlow中实现,但在Keras中却没有。看看如何在几个小时内建立一个深入的学习算法。创建一个模型实体。原创 2022-11-13 22:25:30 · 422 阅读 · 0 评论 -
吴恩达深度神经网络笔记—搭建卷积神经网络模型(TensorFlow)
当我们将train数据分成一个个minibatch然后传入网络进行训练时,每一个minibatch都将是一个op,这样的话,一副graph上的op未免太多,也会产生巨大的开销;于是就有了tf.placeholder,我们每次可以将 一个minibatch传入到x = tf.placeholder(tf.float32,[None,32])上,下一次传入的x都替换掉上一次传入的x,这样就对于所有传入的minibatch x就只会产生一个op,不会产生其他多余的op,进而减少了graph的开销。原创 2022-10-24 16:46:35 · 710 阅读 · 0 评论 -
吴恩达深度神经网络笔记—搭建卷积神经网络模型
我们要实现一个拥有卷积层(CONV)和池化层(POOL)的网络,它包含了前向和反向传播。先利用numpy来实现这些功能,后续更改为TensorFlow。模型结构如下:对于每个前向函数,都有对应的反向等价函数。因此,在前向模块的每一步,你都将在缓存中存储一些参数。这些参数用于在反向传播过程中计算梯度。原创 2022-10-12 20:30:33 · 649 阅读 · 1 评论 -
吴恩达深度神经网络笔记—TensorFlow入门
了解一个深度学习框架,它将允许您更容易地构建神经网络。像TensorFlow、PaddlePaddle、Torch、Caffe、Keras等机器学习框架可以显著加速机器学习的开发。原创 2022-10-08 12:01:30 · 625 阅读 · 1 评论 -
吴恩达深度神经网络调优笔记—优化算法
另一方面,Adam明显优于小批量梯度下降和具有动量的梯度下降,如果在这个简单的模型上运行更多时间的数据集,这三种方法都会产生非常好的结果,然而,我们已经看到Adam收敛得更快。由于小批量梯度下降只看到了一个子集的参数更新,更新的方向有一定的差异,所以小批量梯度下降的路径将“振荡地”走向收敛,使用动量可以减少这些振荡,动量考虑了过去的梯度以平滑更新, 我们将把以前梯度的方向存储在变量v中,从形式上讲,这将是前面的梯度的。它的一个变体是随机梯度下降(SGD),它相当于每个小批次只有一个示例的小批次梯度下降。原创 2022-10-06 15:43:28 · 368 阅读 · 0 评论 -
吴恩达深度神经网络调优笔记—梯度校验
你是一个致力于让全球移动支付可用的团队的一员,并被要求构建一个深度学习模型来检测欺诈——无论何时有人进行支付,你都希望看到支付是否可能是欺诈的,比如用户的账户是否已被黑客接管。但是实现反向传播是相当具有挑战性的,有时还会有bug。因为这是一个任务关键型应用程序,所以公司的CEO希望真正确定反向传播的实现是否正确。你的CEO说:“给我一个证明,证明你的反向传播确实有效!”为了保证这一点,你将使用“梯度校验”。导数的定义:利用这个定义以及一个极小的ε来证明反向传播的代码是正确的。原创 2022-10-04 19:52:32 · 444 阅读 · 0 评论 -
吴恩达深度神经网络调优笔记—正则化
在深度学习模型进行训练时,如果你的数据不是很大,就极有可能会产生过拟合的问题。它在训练集上准确率会很好,但是当你进行测试集测试时,准确率会变差。这个时候我们就需要利用正则化。例子:假设你现在是一个AI专家,你需要设计一个模型,可以用于推荐在足球场中守门员将球发至哪个位置可以让本队的球员抢到球的可能性更大。说白了,实际上就是一个二分类,一半是己方抢到球,一半就是对方抢到球。如图:看一下数据集通过对比正则化和非正则化模型来了解优劣。原创 2022-09-30 21:05:39 · 397 阅读 · 0 评论 -
吴恩达猫咪识别—深度神经网络构建笔记
卷起来卷起来,学习学习原创 2022-09-22 19:01:04 · 458 阅读 · 0 评论 -
吴恩达深度神经网络调优笔记—初始化
精心选择的初始化可以:加速梯度下降的收敛增加梯度下降收敛到较低的训练(和泛化)误差的几率数据集如下:接下去我们根据3个不同的初始化来进行比较:1.零初始化2.随机数初始化3.使用抑梯度异常初始化。原创 2022-09-25 20:32:04 · 276 阅读 · 0 评论