
PyTorch深度学习从入门到项目实战
文章平均质量分 97
原价99.9,限时29.9🔥火爆订阅中(五日后恢复原价)。本专栏从神经网络的基础知识入手,涵盖了深度学习的 50 多种应用。使用 PyTorch 从头开始构建神经网络,然后学习目标检测、图像分割、自编码器和 GAN 等模型,并将结合自然语言处理、强化学习和计算机视觉技术解决图像字幕等现实问题。
优惠券已抵扣
余额抵扣
还需支付
¥29.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
盼小辉丶
记录学习历程,分享学习心得,关注深度学习,欢迎交流学习.
展开
-
PyTorch深度学习实战(1)——神经网络与模型训练过程详解
在本节中,我们将了解传统机器学习与人工神经网络间的差异,并了解如何在实现前向传播之前连接网络的各个层,以计算与网络当前权重对应的损失值;实现反向传播以优化权重达到最小化损失值的目标。并将实现网络的所有关键组成——前向传播、激活函数、损失函数、链式法则和梯度下降,从零开始构建并训练了一个简单的神经网络。原创 2023-05-28 08:06:45 · 74303 阅读 · 185 评论 -
PyTorch深度学习实战(2)——PyTorch基础
PyTorch 是广泛应用于机器学习领域中的强大开源框架,因其易用性和高效性备受青睐。在本节中,将介绍使用 PyTorch 构建神经网络的基础知识。首先了解 PyTorch 的核心数据类型——张量对象。然后,我们将深入研究用于张量对象的各种操作。PyTorch 提供了许多帮助构建神经网络的高级方法及组件,并提供了利用 GPU 更快地训练神经网络的张量对象。原创 2023-06-04 07:54:46 · 48936 阅读 · 49 评论 -
PyTorch深度学习实战(3)——使用PyTorch构建神经网络
PyTorch 是一个用于构建深度神经网络的库,具有灵活性和可扩展性,可以轻松自定义模型。在本节中,我们将使用 PyTorch 库构建神经网络,利用张量对象操作和梯度值计算更新网络权重,并利用 Sequential 类简化网络构建过程,最后还介绍了如何使用 save、load 方法保存和加载模型,以节省模型训练时间。原创 2023-06-13 07:42:47 · 70403 阅读 · 315 评论 -
PyTorch深度学习实战(4)——常用激活函数和损失函数详解
激活函数和损失函数是深度学习模型中重要组成部分,激活函数和损失函数的选择很大程度上决定了深度神经网络的性能和精度,需要根据具体问题的特点和数据分布等因素进行选择。在本节中,将介绍深度学习中常见的激活函数和损失函数,并说明不同函数的常见应用场景。原创 2023-06-23 08:06:46 · 5548 阅读 · 17 评论 -
PyTorch深度学习实战(5)——计算机视觉基础
利用神经网络进行图像分析能够自动学习特征、处理非线性关系、具有鲁棒性和泛化能力,并且支持端到端学习和可扩展性,这使其成为当今计算机视觉领域的主要技术手段之一。本节介绍了计算机视觉的基本概念以及图像在计算机中的表示方法,为计算机视觉的高级任务奠定了基础。原创 2023-07-12 07:12:38 · 7687 阅读 · 46 评论 -
PyTorch深度学习实战(6)——神经网络性能优化技术
神经网络性能优化技术是指通过改进神经网络的结构、参数初始化、正则化和训练过程等方面来提高其性能和泛化能力的方法。优化技术的选择和调试需要根据具体问题进行,通过不断实验和调整,找到最适合网络的优化策略。本节首先训练了一个简单的全连接网络,然后在此基础上介绍了简单有效的神经网络性能提升技巧。原创 2023-07-25 07:07:58 · 4726 阅读 · 146 评论 -
PyTorch深度学习实战(7)——批大小对神经网络训练的影响
在神经网络中,批( batch )是指一次输入网络进行训练或推断的一组样本。批处理( batch processing )是指将这一组样本同时输入网络进行计算的操作。本节中首先介绍批( Batch )的基本概念,并且介绍批大小在神经网络训练过程中的影响。原创 2023-07-31 07:18:28 · 6543 阅读 · 72 评论 -
PyTorch深度学习实战(8)——批归一化
批归一化( Batch Normalization )是一种常用的神经网络优化技术,用于在神经网络的训练过程中对每批输入进行归一化操作。它的主要目的是缓解梯度消失或梯度爆炸的问题,并且加速模型的收敛。在本节中,首先介绍批归一化的基本原理,然后通过实验观察其在网络训练过程中的重要作用。原创 2023-08-02 07:16:17 · 4754 阅读 · 118 评论 -
PyTorch深度学习实战(9)——学习率优化
学习率( learning rate )是神经网络训练中一个重要的超参数,用于控制模型更新参数的步长大小,它决定了每次迭代中模型参数更新的幅度。学习率的选择对于训练的结果具有重要影响,学习率过高会导致模型震荡不收敛甚至发散,无法有效优化目标函数;而学习率过低则会导致收敛速度缓慢,需要更多的迭代才能达到较好的效果。本节首先介绍学习率如何影响模型训练,并通过修改学习率观察不同学习率对模型性能的影响。原创 2023-08-06 07:49:50 · 4420 阅读 · 108 评论 -
PyTorch深度学习实战(10)——过拟合及其解决方法
过拟合是指机器学习模型在训练集上表现很好,但在测试集或未见过的数据上表现较差的现象。过拟合是由于模型在训练过程中过度拟合了训练数据的特点和噪声,导致了对训练样本的过度依赖和泛化能力不足。为了解决过拟合问题,选择适当的方法需要对具体问题和数据进行分析,并在模型构建和调优过程中进行实验和验证。在实践中,通常需要权衡模型的复杂度和泛化能力,以获得更好的结果。原创 2023-08-08 07:10:13 · 4289 阅读 · 92 评论 -
PyTorch深度学习实战(11)——卷积神经网络
卷积神经网络 (Convolutional Neural Network, CNN) 是一种广泛应用的深度学习模型。通过参数共享、局部感知和空间结构等优势,能够更好地处理图像数据,并在图像识别、目标检测和图像生成等任务中展现出强大的能力。在本节中,介绍了卷积的计算方法以及卷积神经网络的基本组件,并使用 PyTorch 构建了卷积神经网络以深入了解其工作原理。原创 2023-08-14 07:09:05 · 14695 阅读 · 143 评论 -
PyTorch深度学习实战(12)——数据增强
数据增强是指通过对原始数据进行一系列变换和处理,生成更多、更丰富的训练样本的技术方法。数据增强在机器学习和深度学习领域中被广泛应用,它可以有效地解决数据不足的问题,提高模型的泛化能力和鲁棒性。我们已经了解了卷积神经网络 (Convolutional Neural Network, CNN) 有助于解决图像平移问题,但如果平移的范围过大同样可能影响模型的性能。在本节中,我们将学习如何使用数据增强确保模型能够得到正确的预测结果,即使图像移动较大范围。原创 2023-08-21 14:57:22 · 4796 阅读 · 103 评论 -
PyTorch深度学习实战(13)——可视化神经网络中间层输出
通过可视化特征学习的结果,我们可以以直观的方式观察网络在处理数据时发生的变化,利用可视化方法能够探索中间层的输出,理解网络如何对输入数据进行编码和转换。我们可以通过观察特征图、梯度分布、降维可视化等手段来揭示网络中学到的有用模式、边缘检测、颜色分布等。在本节中,我们将探索神经网络究竟学到了什么,使用卷积神经网络 (Convolutional Neural Networks, CNN) 对包含 X 和 O 图像的数据集进行分类,并检查网络层输出了解激活结果。原创 2023-08-24 12:52:40 · 6281 阅读 · 143 评论 -
PyTorch深度学习实战(14)——类激活图
类激活图 (Class Activation Map, CAM) 是一种可视化技术,用于解释深度学习模型在图像分类任务中的决策过程。它能够显示出对于分类结果影响最显著的图像区域,从而提供对模型决策的可解释性。通过观察类激活图,可以理解模型在分类决策中注重的区域和特征,这有助于我们分析和解释模型的决策依据,以及验证模型是否关注了正确的特征。本节中,将介绍类激活图的基本概念,并使用训练好的模型生成图像的类激活图。原创 2023-09-07 07:40:20 · 5505 阅读 · 119 评论 -
PyTorch深度学习实战(15)——迁移学习
迁移学习通过利用相关任务或领域的知识,帮助解决新任务或领域中的学习挑战,可以提高模型的泛化能力、加速模型训练,并在实际应用中取得良好的效果。在图像分类、目标检测、机器翻译等任务中,迁移学习已经展现出巨大的应用价值。在本节中,介绍了迁移学习的基本概念,并使用 PyTorch 构建了迁移学习模型,利用预训练模型 VGG 加速学习过程并提高性能。原创 2023-09-11 07:56:21 · 5047 阅读 · 110 评论 -
PyTorch深度学习实战(16)——面部关键点检测
面部关键点的定位通常是许多面部分析方法和算法中的关键步骤。在本节中,我们介绍了如何通过训练卷积神经网络来检测面部的关键点,首先通过预训练模型提取特征,然后利用微调模型预测图像中人物的面部关键点,并利用 face_alignment 库来获取图像中人物面部的 2D 和 3D 关键点。原创 2023-09-18 07:56:30 · 3700 阅读 · 79 评论 -
PyTorch深度学习实战(17)——多任务学习
多任务学习可以同时处理和学习多个相关任务,在实践中,通过在多个任务上进行联合训练,模型可以学习到更通用的特征表示,从而改善每个任务的性能,这种共享知识的方式可以减少对大量任务特定数据的需求,使得训练更加高效,同时任务之间的相互促进和共享知识可以帮助模型更好地理解数据的内在结构和模式。原创 2023-09-20 07:37:41 · 3822 阅读 · 105 评论 -
PyTorch深度学习实战(18)——目标检测基础
目标检测是计算机视觉领域中的重要任务,它旨在从图像或视频中准确地定位和识别出感兴趣的目标物体,目标是将输入图像中的目标区域框出,并为每个目标提供正确的类别标签,在许多应用领域都有广泛的应用,包括智能监控、自动驾驶、人脸识别等。在本节中,介绍了如何利用 ybat 准备训练数据集、使用 SelectiveSearch 库实现区域提议算法、对模型的预测执行非极大值抑制以及衡量模型性能。原创 2023-09-29 06:16:19 · 5999 阅读 · 82 评论 -
PyTorch深度学习实战(19)——从零开始实现R-CNN目标检测
R-CNN (Region-based Convolutional Neural Network) 是 R-CNN 系列目标检测算法的初代模型,其将“深度学习”和传统的“计算机视觉”的相结合,在深度学习的框架下实现了高效的物体检测和识别。R-CNN 的核心思想是将目标检测任务分解为候选区域提取、特征提取、目标分类和边界框回归四个步骤。R-CNN 中的 “Region-based” 指的就是区域提议(候选区域),用于在图像中识别对象。在本节中,我们将利用区域提议来完成图像中目标对象的检测和定位。原创 2023-10-07 08:50:58 · 5769 阅读 · 100 评论 -
PyTorch深度学习实战(20)——从零开始实现Fast R-CNN目标检测
Fast R-CNN 改进了 R-CNN,引入 RoI (Region of Interest) 池化层极大地提高了检测速度和准确性。Fast R-CNN 极大地推动了目标检测领域的发展,为后续的一系列算法奠定了基础,在准确性和速度之间取得了良好的平衡,成为了目标检测算法的重要里程碑。在本节中,我们将介绍 Fast R-CNN 的工作原理,然后在自定义数据集上训练 Fast R-CNN 目标检测模型。原创 2023-10-13 07:42:24 · 4034 阅读 · 69 评论 -
PyTorch深度学习实战(21)——从零开始实现Faster R-CNN目标检测
Faster R-CNN 提出了一种全新的目标检测框架,将候选框生成和目标分类合并到一个网络中,实现了端到端的训练,可以同时优化候选框生成和目标分类任务,提高了检测的准确性和效率。同时,利用共享的卷积特征可以加速特征提取的计算,进一步提高了检测速度。在本节中,将介绍 Faster R-CNN 的工作原理,然后在自定义数据集上训练 Faster R-CNN 目标检测模型。原创 2023-10-16 08:50:42 · 5500 阅读 · 116 评论 -
PyTorch深度学习实战(22)——从零开始实现YOLO目标检测
YOLO (You Only Look Once) 是一种实时目标检测算法,它以其高效性和准确性而闻名。相比于传统的目标检测方法,YOLO 的主要特点是在单个前向传递中同时完成目标检测和分类,YOLO 通过全局感受野捕捉了整个图像中的上下文信息,对小尺寸物体的检测效果较好。在本节中,将介绍 YOLO 的工作原理,然后在自定义数据集上训练 YOLO 目标检测模型。原创 2023-10-19 08:28:09 · 5789 阅读 · 92 评论 -
PyTorch深度学习实战(23)——从零开始实现SSD目标检测
SSD (Single Shot MultiBox Detector) 是一种基于单次前向传递的实时目标检测算法,它在速度和准确性之间取得了很好的平衡。SSD 的核心思想是在卷积神经网络的不同层级上设置多个特征图用于预测目标。这些特征图在空间上具有不同的尺度,可以检测不同大小的目标。每个特征图上的每个位置都预测一组边界框和对应的类别概率。在本节中,将介绍 SSD 的工作原理,然后在自定义数据集上训练 SSD 目标检测模型。原创 2024-02-08 07:42:15 · 5205 阅读 · 65 评论 -
PyTorch深度学习实战(24)——使用U-Net架构进行图像分割
图像分割 (Image segmentation) 是计算机视觉领域中的一个重要任务,旨在将图像划分为具有语义信息的不同区域或对象。与目标检测任务不同,图像分割要求像素级别的精确定位和分类,将每个像素标记为属于哪个类别或属于哪个区域。在本节中,我们将介绍图像分割的基本概念,并训练一个基于 U-Net 架构的图像分割模型。原创 2023-10-30 08:04:18 · 4492 阅读 · 96 评论 -
PyTorch深度学习实战(25)——从零开始实现Mask R-CNN实例分割
Mask R-CNN 是一种在目标检测任务中引入了语义分割的强大框架,通过在 Faster R-CNN 基础上进行扩展,添加了额外的分支网络,不仅可以准确地检测对象的位置和类别,还可以生成每个实例的精确像素级别的语义分割掩码。其模块化的设计可以轻松地应用于不同的任务和数据集,并且可以通过添加更多的分支进行功能扩展,如实例关键点检测等。原创 2023-11-01 07:40:41 · 5726 阅读 · 62 评论 -
PyTorch深度学习实战(26)——多对象实例分割
Detectron2 支持一系列与目标检测和人体姿态估计等相关的任务,此外,Detectron2 还增加了对语义分割和全景分割的支持。通过利用 Detectron2,我们能够通过使用少量代码构建目标检测、分割和姿态估计模型。在本节中,我们将介绍如何从 Google 开放图像数据集中获取数据,将数据转换为 Detectron2 可接受的 COCO 格式,并训练模型执行实例分割,最后,介绍如何使用训练后的模型对新图像进行推理。原创 2024-02-12 07:47:03 · 3634 阅读 · 52 评论 -
PyTorch深度学习实战(27)——自编码器(Autoencoder)
自编码器 (Autoencoder) 是一种无监督学习的神经网络模型,用于数据的特征提取和降维,它由一个编码器 (Encoder) 和一个解码器 (Decoder) 组成,通过将输入数据压缩到低维表示,然后再重构出原始数据。在本节中,我们将学习如何使用自编码器,以在低维空间表示图像,学习以较少的维度表示图像有助于修改图像,可以利用低维表示来生成新图像。原创 2023-12-13 08:48:23 · 4900 阅读 · 93 评论 -
PyTorch深度学习实战(28)——卷积自编码器(Convolutional Autoencoder)
卷积自编码器是一种基于卷积神经网络结构的自编码器,适用于处理图像数据。在本节中,我们介绍了卷积自编码器的模型架构,使用 PyTorch 从零开始实现在 MNIST 数据集上训练了一个简单的卷积自编码器,并使用 t-SNE 技术在二维平面中表示了所有测试图像的潜变量。原创 2023-12-21 08:05:28 · 8349 阅读 · 104 评论 -
PyTorch深度学习实战(29)——变分自编码器(Variational Autoencoder, VAE)
变分自编码器 (Variational Autoencoder, VAE) 是一种结合了自编码器和概率建模的生成模型,通过编码器将输入数据映射到潜在空间中的概率分布,并通过解码器将从潜在空间采样得到的潜在变量映射回原始数据空间,实现了数据的生成和特征学习。原创 2023-12-25 07:38:54 · 3775 阅读 · 87 评论 -
PyTorch深度学习实战(30)——对抗攻击(Adversarial Attack)
研究表明,深度学习模型容易受到输入数据中细微扰动的影响,从而导致模型输出错误的预测。在图像领域,此类扰动通常很小对于人眼而言甚至无法察觉,但它们却能够愚弄深度学习模型。针对深度学习模型的这种对抗攻击,限制了深度学习的成功在更广泛领域的应用。本节中,我们将介绍对抗攻击 (Adversarial Attack) 的基本概念,并使用 PyTorch 实现对抗攻击生成可欺骗神经网络的图像。原创 2023-12-27 08:06:16 · 3341 阅读 · 76 评论 -
PyTorch深度学习实战(31)——神经风格迁移
神经风格迁移 (Neural Style Transfer) 是一种基于深度学习的技术,用于将两个不同图像的风格进行合成,生成新的图像。它通过将一个参考图像的风格应用于另一个内容图像,以创造出独特而富有艺术感的合成图像。在本节中,首先介绍了神经风格迁移的核心思想与风格迁移图像的生成流程,然后利用 PyTorch 从零开始实现了神经风格迁移算法,可以通过修改模型中的超参数来生成不同观感的图像。原创 2023-12-29 08:15:17 · 4540 阅读 · 90 评论 -
PyTorch深度学习实战(32)——Deepfakes
Deepfakes 可以用于创造出艺术作品和娱乐内容,能够将一个人的表演或特征应用到不同的情境中,为电影、视频和游戏等领域带来创新和丰富多样的体验。也可以为电影制片人和视觉特效团队提供了更加高效和经济的方式来实现人物替换和数字化特效。在本节中,我们介绍了 Deepfakes 的基本原理并进行实现。原创 2024-01-15 07:56:10 · 3794 阅读 · 92 评论 -
PyTorch深度学习实战(33)——生成对抗网络(Generative Adversarial Network, GAN)
生成对抗网络 (Generative Adversarial Networks, GAN) 是一种由两个相互竞争的神经网络组成的深度学习模型,它由一个生成网络和一个判别网络组成,通过彼此之间的博弈来提高生成网络的性能。生成对抗网络使用神经网络生成与原始图像集非常相似的新图像,它在图像生成中应用广泛,且 GAN 的相关研究正在迅速发展,以生成与真实图像难以区分的逼真图像。在本节中,我们将学习 GAN 网络的原理并使用 PyTorch 实现 GAN。原创 2024-01-22 07:39:09 · 5340 阅读 · 106 评论 -
PyTorch深度学习实战(34)——DCGAN详解与实现
DCGAN 是优秀的图像生成模型,其生成网路和判别网络都是使用卷积层和反卷积层构建的深度神经网络。生成网络接收一个随机噪声向量作为输入,并通过逐渐减小的反卷积层将其逐渐转化为与训练数据相似的输出图像;判别网络则是一个用于分类真实和生成图像的卷积神经网络。在本节中,我们学习了如何构建并训练 DCGAN 生成人脸图像。原创 2024-01-25 08:45:42 · 4474 阅读 · 99 评论 -
PyTorch深度学习实战(35)——条件生成对抗网络(Conditional Generative Adversarial Network, CGAN)
条件生成对抗网络通过整合条件信息和潜在空间噪声,能够根据特定的条件生成具有一定属性或风格的合成数据,为许多创造性和应用型任务提供了强大的工具和手段。本节中,介绍了条件生成对抗网络的基本原理,并利用 PyTorch 实现条件生成对抗网络生成指定性别的人脸图像。原创 2024-01-28 08:02:42 · 5099 阅读 · 89 评论 -
PyTorch深度学习实战(36)——Pix2Pix详解与实现
Pix2Pix 是基于生成对抗网络的图像转换框架,能够将输入图像转换为与之对应的输出图像,能够广泛用于图像到图像转换的任务,如风格转换、图像修复、语义标签到图像的转换等。Pix2Pix 的核心思想是通过对抗训练将输入图像和目标输出图像进行配对,使生成网络可以学习到输入图像到输出图像的映射关系。在本节中,将学习使用 Pix2Pix 根据给定轮廓生成图像。原创 2024-01-31 07:38:50 · 5562 阅读 · 108 评论 -
PyTorch深度学习实战(37)——CycleGAN详解与实现
CycleGAN 是一种用于无监督图像转换的深度学习模型,它通过两个生成器和两个判别器的组合来学习两个不同域之间的映射关系。CycleGAN 引入循环一致性损失,确保图像转换是可逆的,从而提高生成图像的质量。通过对抗训练和循环一致性损失,CycleGAN 可以实现在没有配对标签的情况下进行图像域转换。本节介绍了 CycleGAN 的基本原理,并实现该模型用于将苹果图像转换为橙子图像,或反之将橙子图像转换为苹果图像。原创 2024-02-22 07:24:03 · 5310 阅读 · 99 评论 -
PyTorch深度学习实战(38)——StyleGAN详解与实现
StyleGAN 是生成对抗网络 的变体,是一种无监督学习模型,用于生成逼真且高分辨率的图像。StyleGAN 能够生成非常高分辨率人脸图像的关键在于,在增加分辨率的步骤中逐步增加生成网络和判别网络的复杂性,以便在每一步中,两个模型都可以很好地完成任务。本节中,介绍了如何通过确保每个分辨率的特征由一个独立的输入(称为风格向量)来控制,从而操纵生成图像的风格,以及如何通过将图像之间的风格进行交换来操作不同图像的风格。原创 2024-03-05 07:17:29 · 5048 阅读 · 88 评论 -
PyTorch深度学习实战(39)——小样本学习(Few-shot Learning)
小样本学习 (Few-shot Learning) 旨在解决在训练集中只有很少样本的情况下进行分类和推理的问题。在小样本学习中,我们希望通过利用已有的少量样本和先验知识来进行泛化,以便在面对新的、未见过的类别时能够做出准确的预测。这就要求模型能够从有限的训练样本中提取出有用的信息,并能够将这些信息应用到新类别的样本中去。在本节中,将介绍孪生、原型和关系网络的原理,并使用 PyTorch 实现孪生网络。原创 2024-03-18 08:25:58 · 5932 阅读 · 73 评论 -
PyTorch深度学习实战(40)——零样本学习(Zero-Shot Learning)
零样本学习 (Zero-Shot Learning) 旨在解决传统监督学习中,当训练数据中不存在某个类别的样本时,如何对该类别进行分类的问题。在传统监督学习中,分类模型需要通过训练数据学习到每个类别的特征和模式,并在测试阶段根据这些学习到的知识对新样本进行分类。然而,在现实世界中,我们无法获得所有可能类别的训练样本,因此零样本学习成为了一种重要的解决方案。在本节中,我们将学习零样本学习的基本概念,并使用 PyTorch 实现零样本学习模型。原创 2024-04-01 08:18:26 · 5061 阅读 · 73 评论