自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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领域的应用(一)

介绍ViT模型

2025-09-13 15:25:46 1681

原创 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

原创 Language Models are Few-Shot Learners: 开箱即用的GPT-3(四)

GPT-3论文的测试结果(续)

2025-07-28 13:36:54 1664

原创 Language Models are Few-Shot Learners: 开箱即用的GPT-3(三)

GPT-3论文的测试结果

2025-07-28 13:36:06 1693

原创 大模型浪潮下,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

原创 Attention Is All You Need: Transformer的提出(二)

Transfomer模型解读

2025-07-04 16:31:04 1453

原创 Attention Is All You Need: Transformer的提出(一)

Transfomer模型解读

2025-07-04 16:30:33 1630

原创 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

原创 C++ DLL导出时变量与函数的区别:IAT导入地址表

DLL编程中的IAT导入地址表

2025-03-27 15:32:59 13645

原创 知识蒸馏: 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版本的代码

也就是chrome浏览器的87版本代码。已经用cmake编译成了VS 2022的项目文件,下载后即可使用VS 2022进行运行和调试。学习CEF的必备。 参考文章:https://pcgamer.blog.youkuaiyun.com/article/details/136561787

2025-08-13

单图像生成3D动画模型TripoSR代码

已经本地部署和调试过了,可以运行。 通过输入单张2D图像,生成一个3D的MESH文件,也可以生成带纹理的模型。 但是生成的模型精度,纹理都还差强人意。这是初始版。 因为上传文件的大小不能超过1GB,所以没有上传模型。模型文件可以在https://modelscope.cn/models/VAST-AI-Research/TripoSR/files上下载。 全程的部署过程在https://pcgamer.blog.youkuaiyun.com/article/details/148420645文章中有阐述。

2025-08-11

经典计算机算法演示网页程序,用基本的HTML, CSS, JS构成

包括冒泡排序,快速排序,堆排序,A*算法,迪杰斯特拉算法5个经典算法的演示程序构成

2025-08-05

程序员的文本编辑器Sublime Text3

一款极为好用的文本编辑器,推荐两个用法:第一是用二进制直接打开所有文件,程序员分析程序的利器。第二就是列模式的使用。比其他的文本编辑器都要好用

2025-05-11

Linux系统编程,包括基本命令,gcc,makefile,文件和目录操作等等,包括进程,信号等内容

Linux系统编程,包括基本命令,gcc,makefile,文件和目录操作等等,包括进程,信号等内容

2024-11-21

opencv-4.2.0-libs-with-contrilb

opencv 4.2.0版本的一些C++语言扩展库的静态包文件(lib),包括了opencv_xfeatures2d420, opencv_ximgproc420,opencv_xobjdetect420等扩展包。可以直接调用

2024-11-15

零基础学AI,python部分课件

零基础学AI,python部分课件

2024-11-05

零基础学AI,python部分代码

零基础学AI,python部分代码

2024-11-05

零基础学AI-python语言:python基础语法(课件部分)

零基础学AI-python语言:python基础语法(课件部分)

2024-11-05

零基础学AI-python语言:anaconda(课件部分)

零基础学AI-python语言:anaconda(课件部分)

2024-11-03

零基础学AI-python语言:基础知识(课件部分)

零基础学AI-python语言:基础知识(课件部分)

2024-11-03

MINIST手写数字识别DEMO

深度学习图像领域的入门DEMO,MINIST手写数字识别,包含了推理,训练代码,还有已经下载好了的模型与数据。 方便入门深度学习的朋友一起使用。

2024-10-28

数据库访问软件:DBeaver免安装版本

用于mysql等数据库访问,不需要和navicat一样还需要激活等。免安装,开箱即用。 DBeaver是一款免费和开源的通用数据库管理工具。它支持多种数据库,包括MySQL、PostgreSQL、Oracle等,并且提供了数据导入导出、ER图设计等多种功能。 多数据库连接:通过JDBC驱动,DBeaver可以连接到几乎所有类型的数据库,包括NoSQL和大数据平台。 高级SQL编辑:内置的SQL编辑器支持语法高亮、自动补全等功能,极大地提高了编写和执行SQL语句的效率。 数据操作与管理:用户可以进行数据导入导出、生成ER图、比较数据库结构等操作,满足各种数据库管理和开发需求。

2024-10-23

yolov5的python代码

yolov5的标准python代码,其中包括了训练和推理代码。

2024-10-22

GAN网络的几篇论文,主要是图像方面的论文

包括: 《Conditional Generative Adversarial Nets》,2014年; 《Semi-Supervised Learning with Generative Adversarial Networks》,2016; 《Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks》,2016; 《Self-Attention Generative Adversarial Networks》,2019 《Generative Adversarial Nets》,2014; 《Generative Adversarial Networks- A Survey and Taxonomy》,一篇综述 还有几篇其他的。

2024-10-22

空空如也

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

TA关注的人

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