自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 Python 的 yield 和 yield from,生成器以及 classic coroutine

yield 有 2 个作用,第一个是用于创建生成器 generator,第二个是创建 classic coroutine 。重点关注生成器即可。对于大多数的 Python 用户,都不需要使用 classic coroutine 。

2024-05-02 20:53:52 871 3

原创 Python 的 super 函数, __mro__ 和多继承

先说结论 —— super 函数在继承中的作用:返回 MRO 中的下一个 class 。

2024-04-07 21:32:50 931

原创 嵌套函数,nonlocal,闭包 closure 和自由变量

先说结论嵌套函数和自由变量的 2 种常见使用场景如下:1. 使用自由变量来记录状态量,或是用来登记 registration 一些输入的对象。这种用法的好处是不需要用 class ,也不需要用全局变量(正如 Google Python Style Guide 的建议,不要用全局变量)。2. 当函数内有部分代码,被重复使用次数大于等于 2 次时,就可以把这部分代码写成一个内部函数,形成嵌套函数。然后调用该嵌套函数即可。并且结合使用自由变量,还可以避免过多的参数传递。

2024-01-28 15:59:43 824

原创 Python 中赋值操作符 = 的作用

先说结论,赋值操作符 = 实际上有 2 个作用:1. 绑定 binding。即将变量和内存中的数据进行绑定。2. 修改可变对象的元素。

2024-01-22 23:20:02 370

原创 Python 中的浮点数比较,以及 decimal 模块

2 个结论:1. 在 Python 中比较浮点数的大小时,必须先用 round() 进行圆整,再比较大小。否则可能出错。2. 如果对精度要求很高,可以使用 decimal 模块。

2023-12-03 19:44:48 690 1

原创 使用 TensorRT 对 YOLOv8 模型进行 int8 量化

对 YOLOv8 模型进行 int8 量化,主要用到 Python 版的 TensorRT。

2023-09-27 23:54:39 3714 72

原创 用 Vision Transformer 做物体探测任务 object detection

Transformer 最开始是应用于 NLP 的翻译任务,而后续的实践则证明了 Vision Transformer 也能够用于物体探测等 CV 任务。下面是用 Vision Transformer 实现了一个不使用卷积、无预设框 anchor free 的物体探测器,用该探测器在 COCO 数据集上做探测任务的效果。训练环境配置: Keras/TensorFlow 2.9,Python 3.10,WIN 10,Anaconda,Pycharm 以及 Jupyter Lab.

2022-09-17 22:00:44 2350 1

原创 cooperative multitasking 和 preemptive multitasking

Python 的并发编程中,主要使用 2 种多任务机制:cooperative multitasking 和 preemptive multitasking。协程并发用到 cooperative multitasking,而多线程和多进程则用到 preemptive multitasking。

2022-08-23 17:05:07 377

原创 Python 中的并发编程和异步编程

在程序中,如果有大量的 CPU bound 任务,或是有大量的 I/O bound 任务,则可以使用并发编程和异步编程,极大地提高代码的运行速度。

2022-08-22 18:15:10 1140

原创 用 Keras/TensorFlow 2.9 创建深度学习模型的方法总结

前言Keras 中有 3 种方法可以创建深度学习模型:1. keras.Sequential 模型。 2.函数式 API。3.子类法 subclassing keras.Model。因为可用的方法很多,灵活性大,实际使用时容易出错。但是如果建模的目标,是能够表达任意结构的深度学习模型,并且能够看到模型的完整内部结构,那么在创建模型时,有 3 个简单的原则可以使用。.........

2022-06-04 19:30:13 4908 2

原创 使用 COCO 数据集训练 YOLOv4-CSP 模型

前言如果完全按照 YOLO 的论文,并不能直接训练出一个好用的物体探测 object detection 模型。这是因为我们并不知道原作者使用的超参数是什么。所以需要自行编写损失函数,尝试各种超参,对模型进行训练。下面是我用 COCO 2017 数据集中的少量图片,对 YOLOv4-CSP 模型进行训练的结果。 使用框架为 Keras/TensorFlow 2.9。

2022-06-01 17:56:30 3019

原创 用 Keras/TensorFlow 2.8 创建 COCO 的 average precision 指标

文章目录前言1. AP 的算法原理。2. 在 Keras 中的实现。3. 创建状态量。4. update_state 方法。4.1 更新第一个状态量 showed_up_classes 。4.2 更新另外两个状态量。5. result 方法。6. 测试盒 testcase。7. 使用方法。8. 下载链接。THE END前言YOLO 系列(包括 YOLOv4-CSP,YOLOv4 等)的探测器 detector,它们的损失函数由 3* 部分组成。如果这 3 部分的每一个部分都使用一个指标,将得到 3

2022-03-22 16:04:28 1828

原创 用 DeepLab-V3+ 模型做 Cityscapes 的 segmentation 任务,in Keras/TensorFlow 2.8

文章目录前言1. DeepLab-V3+ 的主体架构。2. 使用 Cityscapes 数据集。3. 环境配置和使用方法。4. 参考代码。5. github 下载链接。前言DeepLab-V3+ 是一个很好的 segmentation 架构。→ arXiv 论文链接在此可以用 Inception-ResNet V2 作为脊柱 backbone,搭建一个 DeepLab-V3+ 模型,在 Cityscapes 数据集上做 segmentation 任务,效果如下。在训练集上的效果:说明:每一行

2022-03-08 22:55:47 6078

原创 Keras/TensorFlow 交叉熵损失函数中的 from_logits 参数

文章目录1. from_logits 的两种使用方法。2. from_logits=True 是一个简便操作。3. logit 与 sigmoid 互为反函数。1. from_logits 的两种使用方法。在 Keras 的二元交叉熵损失函数(binary crossentropy,下面简称为 bce)中,有 from_logits 这个参数。在使用时需要分下面 2 种情况:如果输入给 bce 的是一个 logit 值(大小范围 [-∞, +∞] ),则应该设置 from_logits=Tru

2022-03-03 11:05:16 5504 4

原创 用 Keras/TensorFlow 2.8 创建 YOLOv4-CSP 模型

用 Keras/TensorFlow 2.8 创建 YOLOv4-CSP 模型前言1. YOLOv4-CSP 的整体结构图。2. 脊柱部分 backbone。3. 颈部 neck。4. 头部 head。5. 使用方法。6. TF 2.8 和环境配置。7. 参考博客。8. 下载地址。前言YOLOv4 的原作团队,把 YOLOv4 升级到了 Scaled-YOLOv4,用 COCO 数据集训练,最高能够实现 55.5% AP。2021 年的第二版 Scaled-YOLOv4 论文地址链接Scaled

2022-03-02 22:11:38 1389

原创 使用混合精度 mixed precision 给 Keras 加速

可以使用混合精度 mixed precision 给 Keras 加速,3个操作步骤如下:使用算力在 7.0以上的GPU,比如 NVIDIA的 RTX 3090, 3080等。在建立模型之前,设置 global_policy 为 mixed_float16。policy = tf.keras.mixed_precision.Policy('mixed_float16')tf.keras.mixed_precision.set_global_policy(policy)# 另一种写法是只用下面这

2021-11-16 22:58:29 2148

原创 Python 和 Numpy 的阶乘函数,以及对数组求阶乘

最近用Python求阶乘,发现3点:Python 的阶乘函数在内置的数学库中,即 math.factorial()。只对标量scalar进行计算,即只能针对一个数进行计算。Numpy 没有自身的阶乘函数,它是直接调用Python的阶乘函数。即 numpy.math.factorial() 等于Python的 math.factorial()。如果要对数组计算阶乘,要用Scipy的 special.factorial() 函数。使用 Python 的数学库计算阶乘,如下图。要对数组计算阶乘时,

2021-09-14 12:06:18 6837 3

原创 TensorFlow 2.4, Cuda11, Ubuntu 20.04 和 3090 显卡安装

2022 年 5 月更新 Win10 相关内容:经过 1 年多的实际使用,认为还是 Anaconda 最为方便,并且便于在 Win10 环境下使用。使用 Anaconda 的主要好处在于,能够轻松安装多个虚拟环境,比如 TensorFlow 2.9,TensorFlow 2.8 等等。使用时可以根据需要,自由地切换不同版本。例如在 Win10 中,之前使用 TF 2.8,现在要在 Anaconda 中新装一个 TF 2.9 的虚拟环境,运行 conda create -n tf2.9 python=3

2021-01-10 20:43:28 1299

空空如也

空空如也

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

TA关注的人

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