Sitemap

A list of all the posts and pages found on the site. For you robots out there is an XML version available for digesting as well.

Pages

Posts

基础ISP流水线的架构分析——简介

less than 1 minute read

Published:

ISP是一个对图像传感器捕获的原始图像执行各种图像处理算法。ISP 中包含了许多功能,这些功能在不同的 ISP

python并发与并行(十二) ———— 考虑用concurrent.futures实现真正的并行计算

2 minute read

Published:

有些Python程序写到一定阶段,性能就再也上不去了。即便优化了代码,程序的执行速度可能还是达不到要求。考虑到现在的计算机所装配的CPU核心数量越来越多,所以我们很自然地就想到用并行方式来解决这个问题。那么接下来就必须思考,如何将代码所要执行的计算任务划分成多个独立的部分并在各自的核心上面平行地运行。

python并发与并行(十) ———— 结合线程与协程,将代码顺利迁移到asyncio

10 minute read

Published:

在前一篇中,我们用asyncio模块把通过线程来执行阻塞式I/O的TCP服务器迁移到了协程方案上面。当时我们一下子就完成了迁移,而没有分成多个步骤,这对于大型的项目来说,并不常见。如果项目比较大,那通常需要一点一点地迁移,也就是要边改边测,确保迁移过去的这一部分代码的效果跟原来相同。

Real-ESRGAN超分算法效果

less than 1 minute read

Published:

上一篇blog我们详细介绍了Real-ESRGAN论文的原理,以及paper中的所有技术细节。这篇blog我们来看一下Real-ESRGAN的实际效果。

python并发与并行(九) ———— 用asyncio改写通过线程实现的IO

13 minute read

Published:

知道了协程的好处之后,我们可能就想把现有项目之中的代码全都改用协程来写,于是有人就担心,这样修改起来,工作量会不会比较大呢?所幸Python已经将异步执行功能很好地集成到语言里面了,所以我们很容易就能把采用线程实现的阻塞式I/O操作转化为采用协程实现的异步I/O操作。

python并发与并行(六) ———— 正确的重构代码,以便用Queue做并发

47 minute read

Published:

在前面“python并发与并行(五.2) ———— 不要在每次fan-out时都新建一批Thread实例”里面,大家看到,每次都手工创建一批线程并平行地执行I/O任务是有很多缺点的。 这一条要介绍另一种方案,也就是用内置的queue模块里的Queue类实现多线程管道。

设计模式

1 minute read

Published:

工厂模式

beam search decoding with CTC

less than 1 minute read

Published:

beam search(束搜索) decoding是一种在语言模型、文本识别等sep2sep的场景中快速、高效的神经网络解码算法。结合前面几个blog,我们重点展开一下beam search在场景文本识别中的作用。

python并发与并行(一) ———— 用subprocess管理子进程

less than 1 minute read

Published:

并发(concurrency)指计算机似乎能在同一时刻做许多件不同的事情。例如,在只配有一个CPU核心的计算机上面,操作系统可以迅速切换这个处理器所运行的程序,因此尽管同一时刻最多只有一个程序在运行,但这些程序能够交替地使用这个核心,从而造成一种假象,让人觉得它们好像真的在同时运行。 并行(parallelism)与并发的区别在于,它强调计算机确实能够在同一时刻做许多件不同的事情。例如,若计算机配有多个CPU核心,那么它就真的可以同时执行多个程序。每个CPU核心执行的都是自己的那个程序之中的指令,这些程序能够同时向前推进。

DIY相机(二)picamera2库

18 minute read

Published:

上一篇我们说的是树莓派camera的libcamera库,提供了在命令行的对camera的操作功能。今天要说的是picamera2库,树莓派官方提供的picamera2库是针对libcamera 驱动提供的 python库。Picamera2仅支持Raspberry Pi OS Bullseye 以及更新的系统。

树莓派系统文件分析

4 minute read

Published:

本篇blog来分析和总结下树莓派系统文件以及他们的作用。使用的系统是Raspberry Pi OS with desktop

torch.jit.trace与torch.jit.script

4 minute read

Published:

Script mode通过torch.jit.trace或者torch.jit.script来调用。这两个函数都是将python代码转换为TorchScript的两种不同的方法。

PyTorch JIT和TorchScript

2 minute read

Published:

PyTorch支持两种模式:eager模式和script模式。eager模式主要用于模型的编写、训练和调试,script模式主要是针对部署的,其包含PytorchJIT和TorchScript(一种在 PyTorch 中执行高效的序列化代码格式)。

flash attention 1和flash attention 2算法的python和triton实现

11 minute read

Published:

transformers目前大火,但是对于长序列来说,计算很慢,而且很耗费显存。对于transformer中的self attention计算来说,在时间复杂度上,对于每个位置,模型需要计算它与所有其他位置的相关性,这样的计算次数会随着序列长度的增加而呈二次增长。在空间复杂度上,self attention需要存储一个矩阵来保存所有位置的相关性分数,这个矩阵的大小也会随着序列长度的增加而呈二次增长。因此,对于非常长的序列,这种二次复杂度会导致计算和内存消耗急剧增加,使得模型在处理这样的输入时会变得相对缓慢且需要大量内存。这也是为什么对于超长序列,可能需要采取一些策略,如切分成短序列进行处理,或者使用其他模型架构来替代传统的Transformer模型。

容易被忽视的CNN模型的感受野及其计算

3 minute read

Published:

感受野可能是卷积神经网络中最重要的概念之一,在学术中也被广泛关注。几乎所有的目标检测方法都围绕感受野来设计其模型结构。这篇文章通过可视化的方法来表达感受野的信息,并且提供一用于计算任何CNN网络每一层感受野的程序。

模型量化

2 minute read

Published:

模型量化分为后量化(Post-training Quantization, PTQ)和训练量化(Quantization aware training,QAT)。PTQ是直接将模型浮点权重转换为整数,QAT是将模型插入量化节点,之后再fine-tune调整模型的权重。

pytorch hook

4 minute read

Published:

pytorch的hook机制允许我们在不修改模型class的情况下,去debug backward、查看forward的activations和修改梯度。hook是一个在forward和backward计算时可以被执行的函数。在pytorch中,可以对Tensornn.Module添加hook。hook有两种类型,forward hookbackward hook

模型量化

1 minute read

Published:

浅谈 Deep Learning 落地与工程部署问题

esp32启用多核

3 minute read

Published:

启用esp32的多核,以便并行执行任务,同时设置芯片的主频和freertos实时系统。

ESP32使用LVGL GUI库

2 minute read

Published:

ESP32使用LVGL GUI库,在单片机设备上使用现代且华丽的GUI。

强化学习docker环境配置

2 minute read

Published:

强化学习docker环境配置,使用rllib强化学习算法库,使用tensorflow2和pytorch深度学习框架。

深度强化学习笔记

less than 1 minute read

Published:

记录一些学习深度强化学习的过程中值得记录的东西

编程随笔

7 minute read

Published:

记录一些编程的技巧和经验.

Python文件和目录操作整理

1 minute read

Published:

将常用的Python文件和目录操作整理了一下,包括文件和文件夹的读写、创建删除、复制移动,还有一些像文件、文件夹的过滤等其他的小技巧。

强化学习的国外硕士论文

less than 1 minute read

Published:

找到了几篇写的比较好的强化学习和模仿学习的国外的硕士论文,有很多小伙伴问我这些论文是哪里找到的,是GitHub推荐给我的,多看GitHub上相关的内容,GitHub的推荐系统还是不错的。

portfolio

publications

talks

teaching