- 博客(225)
- 收藏
- 关注
原创 CLIP(一):基于自然语言自监督的图像模型——Learning Transferable Visual Models From Natural Language Supervision
CLIP介绍1
2025-11-22 22:17:46
34
原创 CLIP(二):基于自然语言自监督的图像模型——Learning Transferable Visual Models From Natural Language Supervision
CLIP介绍2
2025-11-22 22:16:25
158
原创 Vision Transformer (ViT) :Transformer在computer vision领域的应用(三)
对比了ResNet、ViT及混合模型在图像识别任务中的表现。实验使用三种规模的数据集(ImageNet-1k/21k和JFT-300M)进行预训练,并在多个下游任务(ImageNet、CIFAR、Oxford Pets/Flowers等)及VTAB套件上评估。结果显示ViT在计算效率和性能上优于ResNet,尤其在低计算成本下达到SOTA。同时探讨了不同模型尺寸(Base/Large/Huge)和patch size(影响序列长度)的影响,并对ResNet进行改进(使用GN和标准化卷积)作为基准。此外,
2025-09-16 21:36:08
1787
原创 Vision Transformer (ViT) :Transformer在computer vision领域的应用(四)
摘要: ViT模型在JFT-300M大规模数据集预训练时表现优异。实验表明,数据规模对ViT性能至关重要:小数据集(如ImageNet)下,ViT-Large因过拟合表现不如ViT-Base;中等数据(ImageNet-21k)时两者持平;超大数据(JFT-300M)下ViT-Large优势显著。对比ResNet,ViT在小数据时过拟合更严重,但数据量超过90M后性能反超。缩放研究表明,在数据充足时,ViT能以更低计算成本实现更高迁移性能,优于ResNet和混合模型。结论指出,CNN的归纳偏置对小数据有益,
2025-09-16 21:35:12
1771
原创 Vision Transformer (ViT) :Transformer在computer vision领域的应用(二)
本文介绍了Vision Transformer (ViT) 模型的核心架构设计。ViT采用原始Transformer结构,通过将2D图像分割为固定大小的patch(如16×16像素),将每个patch展平后通过线性投影生成patch embeddings。模型引入了类似BERT的[class] token用于图像分类任务,并添加标准1D位置编码。这些处理后的token序列直接输入Transformer编码器,编码器由多头自注意力层和MLP块交替组成,使用层归一化和残差连接。该设计的关键创新在于将图像处理为序
2025-09-13 15:24:21
1500
原创 C++对CPU缓存的合理利用
所以,在计算机体系结构中,把下一层的数据提前加载到更快一层的存储中,以便于CPU可以更快的读取和计算就是一个非常重要的议题,越高的命中率,那么速度就最快。之前讲到的一些分页,分段的机制,是内存与硬盘之间的缓存。
2025-08-29 16:31:05
13543
原创 STL容器的连续性及其访问:vector和deque
此时,原有元素的地址会失效,但新内存块中的所有元素(包括刚通过push_back添加的元素)仍然是连续存储的。std::deque 的内存结构不是单一的连续内存块,而是由多个固定大小的连续内存块(缓冲区) 组成,这些缓冲区通过一个内部的 “中央指针数组”(或类似结构)进行管理(数组中存储每个缓冲区的起始地址)。当使用push_back添加元素时,如果当前vector的容量(capacity)足够容纳新元素,新元素会直接添加到现有内存块的末尾,其地址与前一个元素地址连续(间隔为元素类型的大小)。
2025-08-29 16:30:36
13433
原创 Google C++ 异常处理建议 & Google C++ Style Guide
摘要:Google C++ Style Guide禁用异常主要考虑大规模项目的可维护性、异常安全风险及性能开销,建议使用显式错误码。assert仅限调试阶段,因其在Release模式会被移除且直接终止程序,生产环境需显式错误处理。该指南强调代码可读性、一致性,规范包括命名规则(如snake_case变量)、文件结构、类设计(禁用多重继承)、智能指针优先、禁用异常等核心原则,与其他规范(如LLVM)在异常和命名风格上存在差异。(149字)
2025-08-05 11:20:42
13468
原创 C++头文件:注意模板类在头文件中的使用 & C++20的模块
C++模板类在编译时会针对不同参数类型展开生成独立代码,导致编译后文件体积显著增加。本文通过实验展示,每增加一种vector实例化类型(如int、string、double),程序大小几乎翻倍。这是因为编译器会为每个模板实例生成完整代码,在多cpp文件中重复实例化会加剧编译负担。文章建议使用C++20模块功能,将模板定义封装在模块中(如myvector.cppm),通过导入(import)方式复用,避免重复展开,从而提升编译效率。这种方法特别适用于大型项目,能有效减少编译时间和最终二进制体积。
2025-08-05 11:19:20
13624
原创 BERT:Bidirectional Encoder Representations from Transformers,双向预训练的NLP模型(二)
BERT模型论文3,4,5章节
2025-07-31 10:34:01
1554
原创 BERT:Bidirectional Encoder Representations from Transformers,双向预训练的NLP模型(一)
BERT论文第一,二部分
2025-07-31 10:33:09
1675
原创 大模型浪潮下,AI产品经理的破局与新生
在当下科技浪潮中,大模型技术成为了闪耀的焦点,各行各业都在探索如何借助这一前沿技术实现创新与突破。这一热潮也为产品经理们带来了新的机遇与挑战,尤其是那些渴望转型为AI产品经理的从业者。本文将深入剖析深度学习与大模型的发展历程,探讨AI产品经理的核心职责,并结合具体产品实例,为有志于在这一领域发展的人士提供全面的洞察与指引。同时,着重探讨AI产品经理如何判断AI或大模型的能力边界,这是驾驭技术、打造成功产品的关键。
2025-07-17 20:13:50
965
原创 JAVA几个注解记录
在Java中,、和是Lombok库提供的注解,用于自动生成Java类中的样板代码(如getter、setter、构造函数等),从而减少冗余代码,提高开发效率。以下是它们的详细功能和使用场景:功能:示例:等效于手动编写:2. 注解功能:示例:等效于手动编写:3. 注解功能:示例:等效于手动编写:4. 组合使用场景常见组合:为什么需要同时使用?与Jackson等库的兼容性:final字段与冲突:自定义构造函数冲突:要使用这些注解,需在项目中添加Lombok依赖:Maven:Gradle
2025-07-17 20:11:18
318
原创 Language Models are Few-Shot Learners: 开箱即用的GPT-3(一)
GPT-3论文翻译与解读第一部分:abstract和introduction
2025-07-10 14:53:08
1539
原创 Language Models are Few-Shot Learners: 开箱即用的GPT-3(二)
GPT-3论文翻译解读第二部分:Approach
2025-07-10 14:52:13
1637
原创 CUDA编程模型中的线程模型
本文介绍了CUDA编程中的线程模型,包括逻辑模型和物理模型。在逻辑模型中,kernel执行对应grid,包含block和thread两个层级,通过<<<>>>指定形状参数。物理模型涉及GPU硬件执行单元SM(流式多处理器)的运作机制,SM采用SIMT架构以32线程的warp为基本执行单元。文章强调block大小应设为32的倍数以适配硬件特性,并提供了设备信息查询代码示例,说明不同grid/block配置对性能的影响。CUDA驱动负责将逻辑线程模型映射到物理设备上进行调度执
2025-07-03 17:52:48
13541
原创 使用Visual Studio 2022创建CUDA编程项目
本文介绍了在Visual Studio 2022中配置CUDA开发环境的完整流程。首先需要安装VS2022并勾选C++开发组件,然后安装CUDA Toolkit和兼容的NVIDIA驱动。创建项目时选择CUDA模板,VS会自动生成数组相加的示例代码。项目配置包含CUDA头文件依赖和链接器设置(cudart_static.lib)。文章详细说明了从环境搭建到代码编写、调试的完整步骤,帮助开发者快速上手CUDA编程。
2025-07-03 17:51:52
14354
原创 单图像生成3D动画模型TripoSR的部署过程
最近想做一个3D建模的事情,在做了一番技术调研之后,发现现在的一个技术路径是通过单张的图像直接生成对应的3D模型,而其中的一个模型:TripoSR的应用还比较多。决定深入研究一下,和之前不一样,这次打算在读论文之前,把demo先跑起来。把模型跑起来还是有点小坑的。
2025-06-06 15:58:21
1826
原创 windows上的visual studio2022的项目使用jenkins自动打包
本文介绍了如何在Linux系统上使用Jenkins自动打包Windows端的Visual Studio 2022项目。主要包括配置Jenkins服务、设置Windows代理节点、安装VS2022构建工具等步骤。重点说明了通过Jenkins代理连接Windows节点,以及使用MSBuild命令进行项目打包的方法。该方案实现了跨平台自动化构建,适用于需要在Linux服务器上管理Windows项目持续集成的场景。
2025-06-06 15:53:47
692
原创 系统级编程(六):windows编程:LIB和OBJ格式文件解析
在C++编程中,目标文件(OBJ)和静态库文件(LIB)是编译过程中的重要组成部分。OBJ文件采用COFF(Common Object File Format)格式,而PE文件(如EXE和DLL)是COFF的扩展。COFF文件结构包括文件头、节表、符号表和字符串表。通过定义相应的结构体,可以解析OBJ文件的内容。例如,使用CoffFileHeader结构体读取文件头,SymbolTableEntry结构体读取符号表。然而,在读取符号表时,由于内存对齐问题,实际读取的字节数与文件中的字节数可能不一致,需要手动
2025-05-16 17:55:30
13712
原创 系统级编程(五):windows编程中加载DLL的两种典型方式的比较
在Windows编程中,集成DLL的两种主要方式是在IDE中直接调用和使用系统API LoadLibrary动态加载。直接调用会在exe文件的导入表中写入依赖信息,导致程序启动时检查DLL依赖,而LoadLibrary则不会。此外,LoadLibrary方式无法直接使用DLL中的类,需要通过工厂函数创建类实例。直接调用方式在IDE中可能对函数命名进行了转换,而LoadLibrary需要显式使用extern "C"来避免名称修饰问题。通过代码示例展示了两种方式的实现及其导入表依赖的差异,并
2025-05-16 17:54:36
13658
原创 系统级编程(四):利用windows API使用操作系统剪切板
剪切板是操作系统提供的一种内存空间,用于在进程之间传递数据。通过系统级编程,可以实现对剪切板的基本操作,如写入和读取数据。写入剪切板时,首先需要打开剪切板,清空其内容,然后将数据复制到全局内存中,并设置剪切板数据类型(如CF_TEXT)。读取剪切板时,打开剪切板后检查数据类型,获取数据并输出。此外,还可以通过自定义数据类型(如999)传递复杂的数据结构,如自定义的结构体。需要注意的是,如果结构体中包含指针,必须进行深度复制,否则在其他进程中访问该指针会导致崩溃。
2025-05-10 11:56:54
13525
原创 系统级编程(三):通过读取PE文件获取EXE或者DLL的依赖的另一种办法
本文介绍了如何通过Windows API将PE文件映射到内存中,以快速获取其导入表信息。首先,使用CreateFile和CreateFileMapping将文件加载到内存,并通过MapViewOfFile获取内存首地址。然后,通过指针操作解析PE文件结构,将相对虚拟地址(RVA)转换为文件偏移,定位并读取导入表。最终,通过UnmapViewOfFile和CloseHandle释放内存和文件句柄。这种方法适用于大文件处理,能够显著提升读取效率。
2025-05-10 11:55:18
13430
原创 系统级编程(二):通过读取PE文件获取EXE或者DLL的依赖
Windows的PE文件(Portable Executable)是一种专为Windows操作系统设计的标准可执行文件格式,用于存储和管理可执行程序、动态链接库(DLL)、驱动程序等二进制文件。PE文件格式自Windows NT 3.1引入以来,已成为Windows平台上所有可执行文件的标准格式,并广泛应用于后续的Windows版本,包括Windows XP、Windows 7、Windows 10等。
2025-05-06 17:25:34
13746
原创 系统级编程(一):内存的段页式管理
C++语言的强大之处就在于利用指针直接操作内存,从而得到超高的性能和非常灵活的编码方式。所以,更加进一步的了解操作系统对内存的使用和分配是非常有必要的,这一部分不完全是C++/C语言的范畴,更多的是操作系统原理,或者是计算机体系结构知识体系的范畴。
2025-05-06 17:24:31
13520
原创 知识蒸馏: Distilling the Knowledge in a Neural Network(下)
上面两篇文章已经把知识蒸馏这篇论文说的差不多了,只剩下最后一点,这一篇文章全部说完。上一篇说到了通用+专用模型的方式如何划分数据。接下来就说这种模型集成的方式的性能了。
2025-03-27 15:51:56
1595
原创 知识蒸馏: Distilling the Knowledge in a Neural Network(中)
上一篇已经详细讲了论文的前两章,知识蒸馏的基本逻辑和详细的算法过程。这一篇来说说论文中的后面几张,包括了知识蒸馏算法在MNIST和一个语音识别数据集上的实验效果,还有就是通用模型+专家模型与多专家系统的区分。
2025-03-20 17:28:32
1687
原创 知识蒸馏: Distilling the Knowledge in a Neural Network(上)
整片论文主要讨论和解决一个问题,在模型越来越大,数据集越来越多的情况下,即使算力已经翻了N倍,训练和部署大模型仍然是一个非常耗时的工作。知识蒸馏,distill knowledge通用模型 + 专用模型并行训练的方式。文章的摘要一开头就说的这个事情:这一段说的是说一个普遍的提高机器学习算法性能的方法就是用同样的数据训练多个模型,然后把多个模型的结果拿来做平均,就能提高算法性能。
2025-03-20 17:27:26
1787
原创 DDPM网络:训练过程的数学模型
图像生成领域中,论文《Denoising Diffusion Probabilistic Models》是一篇非常重要的论文,数学属性比较大,自己花了不少时间去理解里面的数学推导过程。所以总共花了3篇内容来记录这篇论文的内容,这是第二篇。
2025-02-20 21:56:54
1497
原创 DDPM模型:正向/反向过程的数学模型
图像生成领域中,论文《Denoising Diffusion Probabilistic Models》是一篇非常重要的论文,数学属性比较大,自己花了不少时间去理解里面的数学推导过程。所以总共花了3篇内容来记录这篇论文的内容,这是第一篇。
2025-02-20 21:49:30
1689
原创 2024对DevOps的思考
而敏捷开发更强调的是人与人之间的合作和沟通,而不是依赖文档(当然,不是不需要文档,必要的文档记录是很重要和必要的工作)。但是随着社会的发展,各行各业对软件的依赖越来越大,各种复杂的业务都需要有软件的介入,复杂的业务场景,更短的开发周期,更频繁的业务场景变更,导致瀑布模型的开发模式无法保证有效和高质量的产品开发。一个简单的例子就是,对于一个需求的优先级和重要性,无法有一个客观的判断,而对于客户而言,他提出的每一个需求对他而言都是重要和关键的,而我们的团队无法对其进行判别,更别说去对客户进行引导。
2025-01-22 19:28:43
892
1
原创 嵌入式开发:程序下载(包括ARM和FPGA)
嵌入式开发的范围很广,ARM公司的STM芯片应该算是应用很广的开发内容。ARM一般通过Keil软件来进行开发。用Keil软件编译完成之后,就可以通过下载线下载到ARM芯片的固件中存储起来。
2025-01-22 10:44:54
397
原创 C++异步编程之协程
这个函数会返回一个包含promise_type的类,以及这个类的一个句柄std::coroutine_handle<promise_type> coro_handle;所谓的异步编程,主要的问题也是说如何解决好多个线程之间调用先后问题,通过锁机制可以有效的控制多个线程的执行顺序,比如上面文章中提到的生产者-消费者模式。在JS语言中,对于这个异步编程模型有着一个非常通用的编程模型:Promise。在之前的异步编程的文章中,提到过C++中一种非常普遍的异步编程方式:锁机制。通过co_return来结束协程。
2025-01-22 10:44:19
246
原创 C++中的左值,右值,拷贝,移动,转发等概念
写C++的人都知道,C++类定义中的构造函数是非常重要的,如果一个类中的成员有指针的话,是需要定义一些不同类型的构造函数来处理这些指针的,不然非常容易出现内存的越界访问和内存泄漏。而右边的值可以是变量,也可以是常量,也就是在执行过程中不发生变化的,在内存中也没有地址(其实是有地址的,一般在常量去,&这个取地址运算符不能做用于这个上面)。简单的理解,赋值运算符的左边的值可以是变量,是可以在执行过程中发生变化的,或者说这个值在内存中是有地址的,可以被取地址操作的。
2025-01-02 14:50:17
388
CEF框架87版本的代码
2025-08-13
单图像生成3D动画模型TripoSR代码
2025-08-11
程序员的文本编辑器Sublime Text3
2025-05-11
Linux系统编程,包括基本命令,gcc,makefile,文件和目录操作等等,包括进程,信号等内容
2024-11-21
opencv-4.2.0-libs-with-contrilb
2024-11-15
MINIST手写数字识别DEMO
2024-10-28
数据库访问软件:DBeaver免安装版本
2024-10-23
GAN网络的几篇论文,主要是图像方面的论文
2024-10-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅