TensorFlow与Keras机器学习实战
文章平均质量分 94
持续更新的人工智能机器学习领域中TensorFlow与Keras API实战栏目。
TensorFlow是机器学习领域中常用的深度学习框架,Keras则是一个易于使用且高级的神经网络API,它们相辅相成,帮助开发者构建和训练人工智能神经网络模型。
现仅需29.9元,就能驾驭最完整的TF与Keras!
政安晨
专注于人工智能感知交互技术的研究与产品实践,双一流大学软件领域硕士,数十项发明专利授权,18年+行业经验。
展开
-
政安晨:专栏目录【TensorFlow与Keras】【机器学习/深度学习/神经网络/实例实战】
本文篇是作者政安晨的专栏《TensorFlow与Keras实战演绎机器学习》的总纲,专栏文章不断更新,这篇总纲也会随着专栏不断更新。TensorFlow给自己的定位是端到端机器学习平台,是一个开源的机器学习框架,用于构建和训练各种机器学习模型。Keras给自己的定位是一个用 Python 编写的高级神经网络 API,是一个开源的高级神经网络库,用于构建和训练深度学习模型。原创 2024-03-25 05:45:00 · 2110 阅读 · 4 评论 -
政安晨:【Keras机器学习示例演绎】(三十七)—— 在计算机视觉中学习调整大小
本文目标:在计算机视觉中学习调整大小。人们普遍认为,如果我们限制视觉模型像人类一样感知事物,它们的性能就能得到提高。例如,在这项工作中,Geirhos 等人发现,在 ImageNet-1k 数据集上预先训练的视觉模型偏重于纹理,而人类大多使用形状描述符来形成共同的感知。但这种观点是否总是适用,尤其是在提高视觉模型的性能时?原创 2024-05-06 06:30:00 · 487 阅读 · 0 评论 -
政安晨:【Keras机器学习示例演绎】(三十六)—— 用聚合注意力增强信念网络
本文目标:构建补丁-通信网架构并将其注意力图谱可视化。视觉转换器(Dosovitskiy 等人)已成为卷积神经网络的有力替代品。视觉转换器以基于补丁的方式处理图像。然后将图像信息汇总为一个 CLASS 标记。该标记与特定分类决策中最重要的图像片段相关联。原创 2024-05-06 05:45:00 · 427 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(三十五)—— 使用 LayerScale 的类注意图像变换器
本文目标:实现配备关注类和 LayerScale 的图像转换器。在本文中,我们将实现 Touvron 等人在《深入研究图像变换器》(Going deeper with Image Transformers)一书中提出的 CaiT(Class-Attention in Image Transformers)。深度缩放,即增加模型深度以获得更好的性能和泛化,在卷积神经网络(例如 Tan 等人,Dollár 等人)中已经取得了相当大的成功。原创 2024-05-05 06:45:00 · 818 阅读 · 0 评论 -
政安晨:【Keras机器学习示例演绎】(三十四)—— FixRes:修复训练-测试分辨率差异
本文目标:减少训练集和测试集之间的分辨率差异。在训练和测试视觉模型时使用相同的输入图像分辨率是一种常见的做法。然而,正如《修复训练-测试分辨率差异》(Touvron 等人)一书所研究的那样,这种做法会导致性能不达标。数据增强是深度神经网络训练过程中不可或缺的一部分。原创 2024-05-05 05:45:00 · 337 阅读 · 0 评论 -
政安晨:【Keras机器学习示例演绎】(三十三)—— 知识提炼
本文目标:实施经典知识蒸馏。知识蒸馏(Knowledge Distillation)是一种模型压缩程序,在这种程序中,一个小的(学生)模型被训练成与一个大的预训练(教师)模型相匹配。通过最小化损失函数,将知识从教师模型转移到学生模型,目的是匹配软化的教师对数以及地面实况标签。通过在 softmax 中应用 "温度 "缩放函数来软化对数,从而有效地平滑概率分布,并揭示教师所学的类间关系。原创 2024-05-04 06:30:00 · 560 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(三十二)—— 在 Vision Transformers 中学习标记化
本文目标:为 "视觉变换器"自适应生成较少数量的令牌。视觉变换器(Dosovitskiy 等人)和许多其他基于变换器的架构(Liu 等人、Yuan 等人)在图像识别方面取得了显著成果。下面将简要介绍用于图像分类的视觉变换器架构所涉及的组件:—— 从输入图像中提取小块图像。—— 线性投影这些斑块。—— 为这些线性投影添加位置嵌入。—— 通过一系列 Transformer(Vaswani 等人)模块运行这些投影。—— 最后,从最后的 Transformer 模块中提取表示并添加分类头。原创 2024-05-04 05:45:00 · 542 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(三十一)—— 梯度集中,提高训练效果
本文目标:实施梯度集中化,提高 DNN 的训练性能。本示例实现了 Yong 等人提出的深度神经网络新优化技术 "梯度集中化"(Gradient Centralization),并在 Laurence Moroney 的 "马或人 "数据集(Horses or Humans Dataset)上进行了演示。梯度集中化既能加快训练过程,又能提高深度神经网络的最终泛化性能。它通过将梯度向量集中为零均值,直接对梯度进行操作。原创 2024-05-03 06:15:00 · 1307 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(二十九)—— 利用卷积 LSTM 进行下一帧视频预测
本文目标:如何建立和训练用于下一帧视频预测的卷积 LSTM 模型。卷积 LSTM 架构通过在 LSTM 层中引入卷积递归单元,将时间序列处理和计算机视觉结合在一起。在本示例中,我们将探讨卷积 LSTM 模型在下一帧预测中的应用,下一帧预测是指在一系列过去帧的基础上预测下一个视频帧的过程。原创 2024-05-02 07:01:14 · 735 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(二十八)—— 使用 卷积神经网络与循环神经网络 架构进行视频分类
文本目标:在 UCF101 数据集上使用迁移学习和递归模型训练视频分类器。原创 2024-05-02 06:47:41 · 895 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(二十七)—— 利用 NNCLR 进行自我监督对比学习
本文目标:计算机视觉自监督学习方法 NNCLR 的实现。自我监督表示学习旨在从原始数据中获取稳健的样本表示,而无需昂贵的标签或注释。这一领域的早期方法侧重于定义预训练任务,这些任务涉及在一个有大量弱监督标签的领域中的代用任务。为解决此类任务而训练的编码器有望学习到一般特征,这些特征可能对其他需要昂贵注释的下游任务(如图像分类)有用。自监督学习技术的一大类别是使用对比损失的技术,这些技术已被广泛应用于图像相似性、降维(DrLIM)和人脸验证/识别等计算机视觉应用中。原创 2024-05-01 21:49:13 · 321 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(二十六)—— 图像相似性搜索的度量学习
本文目标:在 CIFAR-10 图像上使用相似度量学习的示例。度量学习旨在训练能将输入嵌入高维空间的模型,从而使训练方案所定义的 "相似 "输入彼此靠近。这些模型一经训练,就能为下游系统生成对这种相似性有用的嵌入模型,例如作为搜索的排名信号,或作为另一种监督问题的预训练嵌入模型。原创 2024-05-01 08:23:48 · 543 阅读 · 2 评论 -
政安晨:【Keras机器学习示例演绎】(二十五)—— 使用具有三重损失的连体网络进行图像相似性估计
本文目标:使用三重损失函数训练连体网络,以比较图像的相似性。连体网络是一种网络架构,包含两个或多个相同的子网络,用于为每个输入生成特征向量并进行比较。连体网络可应用于不同的使用场景,如检测重复数据、查找异常数据和人脸识别。本例使用的连体网络有三个相同的子网络。我们将向模型提供三张图片,其中两张是相似的(锚和正样本),第三张是不相关的(负样本)。为了让网络学习,我们使用了三重损失函数。您可以在 Schroff 等人 2015 年发表的 FaceNet 论文中找到有关三重损失的介绍。原创 2024-04-30 06:15:00 · 673 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(二十四)—— 使用具有对比损失的连体网络进行图像相似性估计
本文目标:使用对比损失训练的连体网络进行相似性学习。连体网络是一种神经网络,它在两个或多个姊妹网络之间共享权重,每个网络产生各自输入的嵌入向量。在有监督的相似性学习中,对这些网络进行训练,使不同类别输入的嵌入向量之间的对比度(距离)最大化,同时使相似类别的嵌入向量之间的距离最小化,从而得到反映训练输入的类别划分的嵌入空间。原创 2024-04-30 05:45:00 · 559 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(二十三)—— 语义图像聚类
本文目标:采用近邻算法进行语义聚类(SCAN)。本示例演示了如何在 CIFAR-10 数据集上应用语义近邻聚类(SCAN)算法(Van Gansbeke 等人,2020 年)。该算法包括两个阶段:1. 图像的自监督视觉表征学习,其中我们使用了 simCLR 技术。2.对学习到的视觉表征向量进行聚类,以最大限度地提高相邻向量聚类分配之间的一致性。原创 2024-04-29 06:15:00 · 537 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(二十二)—— Grad-CAM 级激活可视化
本文目标:如何为图像分类模型获取类激活热图。原创 2024-04-29 05:45:00 · 280 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(二十一)—— 调查视觉转换器的表征
本文目标:研究不同 Vision 变形金刚变体所学到的表征。在本示例中,我们将研究不同视觉转换器(ViT)模型学习到的表征。本示例的主要目的是让我们深入了解 ViT 从图像数据中学习的能力。本示例特别讨论了几种不同 ViT 分析工具的实现。注:当我们说 "视觉转换器 "时,我们指的是涉及转换器模块的计算机视觉架构(Vaswani 等人),而不一定是原始的视觉转换器模型(Dosovitskiy 等人)。原创 2024-04-28 06:00:00 · 718 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(二十)—— 综合梯度的模型可解释性
本文目标:如何获得分类模型的综合梯度。综合梯度集成梯度是一种将分类模型的预测归因于其输入特征的技术。它是一种模型可解释性技术:您可以用它来直观显示输入特征与模型预测之间的关系。集成梯度是一种将分类模型的预测归因于其输入特征的技术。原创 2024-04-28 05:45:00 · 99 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(十九)—— 可视化网络学习内容
本文目标:显示 convnet 过滤器响应的视觉模式。在本示例中,我们将研究图像分类模型能学习到哪些视觉模式。我们将使用在 ImageNet 数据集上训练的 ResNet50V2 模型。我们的过程很简单:我们将创建输入图像,最大限度地激活目标层。(选在模型中间的某个位置:层 conv3_block4_out)中的特定滤波器。这些图像代表了过滤器响应模式的可视化。原创 2024-04-27 06:00:00 · 163 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(十八)—— 图像字幕
本文目标:使用 CNN 和 Transformer 实现图像字幕模型。本文将使用 Flickr8K 数据集。该数据集包含 8000 多张图片,每张图片都配以五个不同的标题。原创 2024-04-27 06:00:00 · 329 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(十七)—— 用于图像分类的 RandAugment 可提高鲁棒性
本文目标:用于训练图像分类模型的 RandAugment,具有更强的鲁棒性。数据增强是一种非常有用的技术,有助于提高卷积神经网络(CNN)的平移不变性。RandAugment 是一种用于视觉数据的随机数据增强程序,在 RandAugment 中提出:RandAugment: Practical automated data augmentation with a reduced search space》一书中提出的。它由色彩抖动、高斯模糊、饱和度等强增强变换和随机作物等更传统的增强变换组成。原创 2024-04-26 06:00:00 · 814 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(十六)—— 用于图像分类的混合增强
本文目标:利用混合技术对图像分类进行数据扩增。mixup 是由 Zhang 等人在 mixup.Beyond Empirical Risk Minimization 一书中提出的一种与领域无关的数据增强技术。这项技术的名称相当系统。从字面上看,我们是在混合特征及其相应的标签。实施起来很简单。神经网络很容易记住错误的标签。mixup 通过将不同的特征相互组合(标签也是如此)来放松这一点,这样网络就不会对特征及其标签之间的关系过于自信。原创 2024-04-26 05:45:00 · 290 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(十五)—— 用于图像分类的 CutMix 数据增强技术
本文目标:利用 CutMix 对 CIFAR-10 上的图像分类进行数据扩增。CutMix 是一种数据增强技术,可解决区域剔除策略中存在的信息丢失和效率低下问题。该技术不是删除像素并用黑色或灰色像素或高斯噪声填充,而是用另一幅图像的补丁替换被删除的区域,同时根据合并图像的像素数量按比例混合地面实况标签。CutMix 是在 CutMix 中提出的:利用可定位特征训练强分类器的正则化策略》(Yun et al.)原创 2024-04-25 06:00:00 · 748 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(十四)—— 用于弱光图像增强的零 DCE
本文目标:实施零参考深度曲线估算,实现低-高。零参考深度曲线估算(Zero-Reference Deep Curve Estimation 或 Zero-DCE)将低照度图像增强定义为利用深度神经网络估算图像特定色调曲线的任务。在本示例中,我们训练一个轻量级深度网络 DCE-Net,以估计像素级和高阶色调曲线,从而调整给定图像的动态范围。原创 2024-04-25 05:45:00 · 328 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(十三)—— 利用高效子像素 CNN 实现图像超分辨率
本文目标:在 BSDS500 上使用高效子像素模型实现超分辨率。ESPCN (Efficient Sub-Pixel CNN)由 Shi 于 2016 年提出,是一种在低分辨率版本图像的基础上重建高分辨率版本图像的模型。它利用高效的 "子像素卷积 "层,学习一系列图像升级滤波器。在本代码示例中,我们将实现论文中的模型,并在一个小型数据集 BSDS500 上对其进行训练。原创 2024-04-24 06:00:00 · 203 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(十二)—— 用利用 MIRNet 增强弱光图像效果
本文目标:实现用于弱光图像增强的 MIRNet 架构。图像复原的目标是从劣质版本中恢复出高质量的图像内容,因此在摄影、安防、医疗成像和遥感等领域应用广泛。在本示例中,我们实现了用于弱光图像增强的 MIRNet 模型,这是一种全卷积架构,可学习一组丰富的特征,结合来自多个尺度的上下文信息,同时保留高分辨率的空间细节。原创 2024-04-24 05:45:00 · 130 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(十一)—— 用于图像去噪的卷积自动编码器
本文目标:如何训练用于图像去噪的深度卷积自动编码器。本示例演示了如何实现用于图像去噪的深度卷积自动编码器,将 MNIST 数据集中的嘈杂数字图像映射为干净的数字图像。该实现基于 François Chollet 发表的题为《在 Keras 中构建自动编码器》的原创博文。原创 2024-04-23 07:36:15 · 420 阅读 · 0 评论 -
政安晨:【Keras机器学习示例演绎】(十)—— 用于读取验证码的 OCR 模型
本文目标:如何使用 CNN、RNN 和 CTC loss 实现 OCR 模型。本示例演示了使用功能 API 构建的一个简单 OCR 模型。除了结合 CNN 和 RNN 外,它还说明了如何实例化一个新层,并将其用作实现 CTC 损失的 "端点层"。有关层子类化的详细指南,请查看开发人员指南中的此页面。原创 2024-04-23 06:00:00 · 789 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(九)—— 利用 PointNet 进行点云分类
本文目标:用于 ModelNet10 分类的 PointNet 实现。无序三维点集(即点云)的分类、检测和分割是计算机视觉领域的核心问题。原创 2024-04-22 22:34:02 · 674 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(八)—— 利用 PointNet 进行点云分割
本文目标:实现基于点网的点云分割模型。点云 "是存储几何形状数据的一种重要数据结构类型。由于其格式不规则,在用于深度学习应用之前,通常要将其转换为规则的三维体素网格或图像集合,这一步骤会使数据变得不必要的庞大。PointNet 系列模型通过直接消耗点云解决了这一问题,同时尊重点数据的包络不变性属性。PointNet 系列模型提供了一个简单、统一的架构,适用于从物体分类、部件分割到场景语义解析等各种应用。在本示例中,我们演示了用于形状分割的 PointNet 架构的实施。原创 2024-04-22 05:45:00 · 916 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(七)—— 利用 NeRF 进行 3D 体积渲染
本文目标:NeRF 中显示的体积渲染的最小实现。在本示例中,我们将介绍 Ben Mildenhall 等人的研究论文 NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 的最小实现。作者提出了一种巧妙的方法,即通过神经网络对体积场景函数进行建模,从而合成场景的新颖视图。原创 2024-04-21 14:08:52 · 963 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(六)—— 通过 CT 扫描进行 3D 图像分类
本文目标:训练三维卷积神经网络,预测是否存在肺炎。本示例将展示构建三维卷积神经网络(CNN)所需的步骤,以预测计算机断层扫描(CT)中是否存在病毒性肺炎。二维卷积神经网络通常用于处理 RGB 图像(3 个通道)。三维卷积神经网络与三维卷积神经网络完全相同:它的输入是三维体积或二维帧序列(如 CT 扫描中的切片),三维卷积神经网络是学习体积数据表示的强大模型。原创 2024-04-21 06:15:00 · 719 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(五)—— 利用视觉变换器进行物体检测
本文目标:使用视觉变换器进行物体检测的简单 Keras 实现。Alexey Dosovitskiy 等人撰写的文章 Vision Transformer (ViT) 架构表明,直接应用于图像片段序列的纯变换器可以很好地完成物体检测任务。在本 Keras 示例中,我们实现了对象检测 ViT,并在 Caltech 101 数据集上对其进行训练,以检测给定图像中的飞机。原创 2024-04-21 05:45:00 · 576 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(四)—— 利用迁移学习进行关键点检测
本文目标:利用数据增强和迁移学习训练关键点检测器。关键点检测包括对物体关键部位的定位。例如,人脸的关键部位包括鼻尖、眉毛、眼角等。这些部分有助于以特征丰富的方式表示底层对象。关键点检测的应用包括姿势估计、人脸检测等。在本例中,我们将使用斯坦福 Extra 数据集,利用迁移学习建立一个关键点检测器。原创 2024-04-20 06:00:00 · 986 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(三)—— 利用可组合全卷积网络进行图像分割
本文目标:使用全卷积网络进行图像分割。下面的示例介绍了在牛津国际理工学院宠物数据集上实现用于图像分割的全卷积网络的步骤。该模型是 Long 等人在论文《用于语义分割的全卷积网络》(Fully Convolutional Networks for Semantic Segmentation)(2014 年)中提出的。图像分割是计算机视觉领域最常见、最入门的任务之一,我们将图像分类问题从每张图像一个标签扩展到像素分类问题。在本示例中,我们将组装上述能够执行图像分割的全卷积分割架构。原创 2024-04-20 05:45:00 · 867 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(二)—— 使用 DeepLabV3+ 进行多类语义分割
本文目标:为多类语义分割实现 DeepLabV3+ 架构。语义分割的目标是为图像中的每个像素分配语义标签,这是计算机视觉的一项重要任务。在本示例中,我们实现了用于多类语义分割的 DeepLabV3+ 模型,这是一种全卷积架构,在语义分割基准测试中表现出色。原创 2024-04-19 06:00:00 · 1133 阅读 · 1 评论 -
政安晨:【Keras机器学习示例演绎】(一)—— 利用类 U-Net 架构进行图像分割
本文目标:在宠物数据集上从头开始训练的图像分割模型。原创 2024-04-19 05:45:00 · 866 阅读 · 0 评论 -
政安晨:【Keras机器学习实践要点】(三十二)—— 使用 BigTransfer (BiT) 进行图像分类
本文目标:BigTransfer (BiT) 最先进的图像分类迁移学习。BigTransfer(又称 BiT)是用于图像分类的最先进的迁移学习方法。在训练视觉深度神经网络时,预训练表征的转移提高了样本效率,简化了超参数调整。BiT 重新审视了在大型监督数据集上进行预训练并在目标任务上对模型进行微调的模式。随着预训练数据量的增加,适当选择归一化层和扩展架构容量的重要性。原创 2024-04-18 06:15:00 · 828 阅读 · 1 评论 -
政安晨:【Keras机器学习实践要点】(三十一)—— 使用全局上下文视觉变换器进行图像分类
本文目标:用于图像分类的全局上下文视觉变换器的实现和微调。在本文中,我们将利用多后端 Keras 3.0 来实现 A Hatamizadeh 等人在 ICML 2023 上发表的 GCViT:Global Context Vision Transformer 论文,并利用官方 ImageNet 预训练的权重在 Flower 数据集上对模型进行微调,以完成图像分类任务。本文的一大亮点是与多个后端兼容:TensorFlow、PyTorch 和 JAX,展示了多后端 Keras 的真正潜力。原创 2024-04-15 08:16:48 · 956 阅读 · 1 评论 -
政安晨:【Keras机器学习实践要点】(三十)—— 使用斯温变换器进行图像分类
本文目标:使用 Swin Transformers(计算机视觉的通用骨干)进行图像分类。本示例实现了用于图像分类的 Swin 变换器:使用移位窗口的分层视觉变换器,并在 CIFAR-100 数据集上进行了演示。Swin Transformer(移位窗口变换器)可作为计算机视觉的通用骨干。Swin 变换器是一种分层变换器,其表示是通过移位窗口计算的。移位窗口方案将自我关注计算限制在非重叠局部窗口,同时允许跨窗口连接,从而提高了效率。原创 2024-04-14 05:45:00 · 922 阅读 · 1 评论