自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Bag of Tricks for Image Classification with Convolutional Neural Networks(图像分类神经网络训练技巧)

该篇文章其实就是各个网络中训练技巧的一个集合。由于之前在图像分类中取得的大部分的进展其实都是由训练过程的改进得到的,比如数据增强和优化方法的改进得到的。但是在提出方法的文章中,我们只能在实验细节或者开源代码中见到,所以该篇文章就将这些训练技巧进行了汇总,并进行实验进行验证评估。实验证明,将这些改进结合起来能够将ResNet-50的准确率由75.3%提升到79.29%,实验还验证了,图像分类精度的提高也能应用在其他领域,带来更好的迁移学习的性能。

2022-11-18 17:29:39 1680 2

原创 BN层详解(含有公式推导过程)

如果以上的你懂看明白的话,BN你就理解的差不多了。BN层就是用在激活函数前,用来使上一层的输出,分布在均值为0,方差为1的情况下,也就是对下一层的输入做归一化的操作,这样就能够使它经过激活函数时能够有一定的梯度,从而避免值太大而进入饱和区,梯度就非常小了,不利于梯度下降。并且除了均值和方差,BN层还有自己的学习参数γ和β,网络通过学习来得到想要的数据分布,参数γ和β在训练中通过反向传播中的γ与β求得梯度,从而不断改变每个通道的γ和β参数。

2022-09-19 15:46:54 23082 7

原创 RepVGG论文详解(结合代码)

主要创新点为结构重参数化。在训练时,网络的结构是多分支进行的,而在推理时则将分支的参数进行重参数化,合为一个分支来进行的,所以推理的速度要比多分支网络快很多,并且精度也比单分支的网络更高。

2022-09-16 21:27:22 9073 7

原创 理解ConvNeXt网络(结合代码)

ConvNeXt网络本身没有什么亮点,全是应用的现有的方法来进行网络的调整,特别是大量细节的设计都是参考了swin transformer的网络结构的。并且ConvNeXt是以ResNet50网络为backbone来进行调整的,所以ConvNeXt的网络结构非常简单,一目了然,理解起来也是非常容易的。并且不仅精度比swin Transformer高,推理速度还快。综合来说,ConvNeXt是一个非常好的文章。这里放上我看到的一个网友对ConvNeXt网络的评价。“感觉这篇论文的思路是照着swin-

2022-09-13 11:14:08 24205 8

原创 目标检测算法中,COCO评价指标的解析

AR(averagerecall)即平均召回率,是IoU在[0.5,1.0]上所有recall的平均,对于不同的iou取。与图像分类的评价指标有所不同,图像分类是在所有的图像中分类正确和错误的概率。AP为IOU从0.5开始,每次增加0.05直到0.95,一共有十个IOU值,求出每一个IOU的AP,然后求平均得到。OB(IOU=0.5)表示当目标框与GTbox的IOU大于0.5时就为Ture,小于0.5就为False。FPIoU...

2022-07-20 19:58:05 3527 1

原创 关于目标检测中正负样本的理解

一开始学习时我没有太关注正负样本的问题,我以为正样本就是标注好的GT box,然而学到后面发现有很多的区别正负样本的方法,我才知道自己理解错了。正例是用来使预测结果更靠近真实值的,负例是用来使预测结果更远离除了真实值之外的值的。看了好几篇博文之后我大概有了一些基础的理解,在分类问题中,对于狗这一类来说,所有标签为狗的图片都是狗类的正样本,其他的图片都是负样本,正负样本也就是所有图片都进入损失函数进行梯度下降。而在目标检测中的位置回归的问题中就不适用了,因为不能将所有的预测框都进入损失函数进行计算,这样的话就

2022-07-07 14:32:58 5364

原创 将dify接入钉钉机器人中

本文介绍了如何将Dify接入钉钉机器人实现智能问答功能。主要步骤包括:1)在钉钉开放平台创建应用并配置企业机器人;2)安装SDK并开发消息处理代码,实现流式响应;3)通过API将Dify工作流集成到机器人中,支持多轮对话;4)扩展功能实现图片问答,通过上传图像到Dify进行处理。文章提供了详细的代码示例,包括消息接收、卡片更新和流式响应处理逻辑,以及错误处理机制。最终实现了一个支持文字和图片交互的智能机器人系统。

2025-12-15 22:14:33 178

原创 Windows/Linux离线部署IndexTTS2

本文介绍了IndexTTS2的在线和离线安装方法。在线部署推荐使用uv工具安装,需注意Windows和Linux环境下的参数差异,建议配置HF镜像源加速下载。离线安装需提前下载所有模型并修改代码中的模型路径,推荐使用conda+pip配置环境。文中详细列出了模型下载命令和代码修改要点,包括替换from_pretrained()路径、修改hf_hub_download()为os.path.join()以及调整配置文件等。完成环境配置、模型下载和文件修改后,直接运行webui.py即可启动项目。

2025-12-05 22:18:48 1015

原创 langchain1.0从零部署教程

LangChain模型调用与Agent开发实践摘要 本文介绍了LangChain框架下大模型调用与Agent开发的实践方法。主要内容包括:1) 三种模型调用方式:本地Ollama、通义千问和智谱GLM的安装配置与接口调用示例;2) 模型调用进阶功能:记忆管理(消息列表)、流式响应、批处理(含并发控制)和结构化输出(Pydantic模式);3) Agent开发基础,展示了LangChain 1.0新特性create_agent API的极简调用流程。通过一个流式多轮问答机器人的完整实现案例,演示了系统提示词设

2025-11-17 22:01:56 1044

原创 关于dify中http节点下载文件时,文件名不为原始文件名问题解决

摘要:在使用HTTP节点下载文件时遇到文件名始终为UUID的问题。即使设置了Content-Disposition请求头仍无效。经查证需修改后端代码,特别是docker部署时需要修改api/core/workflow/nodes/http_request/node.py文件,约190行处。关键修改是获取content_disposition_filename并将其作为filename参数传递给tool_file_manager.create_file_by_raw方法,这样才能正确输出原始文件名而非UUID

2025-11-04 23:11:15 357 2

原创 若依使用基本步骤

本文介绍了基于RuoYi-Vue框架的前后端分离权限管理系统的部署与开发流程。后端部分需下载RuoYi-Vue项目,配置MySQL和Redis后启动服务;前端部分使用RuoYi-Vue3项目,安装依赖后启动。系统支持自动生成代码功能,并以课程管理为例,详细说明了前后端交互实现:前端通过course.js封装API接口,index.vue文件负责页面展示和逻辑处理,使用Vue3的组合式API(ref/reactive)实现数据响应式;后端提供相应的RESTful接口。文章重点解析了前后端交互的核心代码结构和工

2025-10-13 00:06:24 573

原创 什么是异步

摘要:异步编程的核心概念包括协程、事件循环和任务。协程是用async def定义的可暂停函数,需通过await调用;事件循环负责调度协程执行,检查状态并分配控制权;任务则封装协程并跟踪其状态。使用异步代码需定义协程、包装为任务(通过await或create_task),并用asyncio.run()启动事件循环。await关键字让出控制权实现异步等待。

2025-10-09 23:21:15 372

原创 大模型问答原理解析

本文介绍了如何构建兼容OpenAI API格式的大模型服务。主要内容包括:1)用户输入采用OpenAI标准格式,包含system、user、assistant三种角色;2)服务端处理流程:将输入转换为模板格式并tokenize,调用大模型生成响应后解码返回;3)支持流式和非流式两种输出方式;4)提供了完整的Python实现代码,包括服务端(server.py)和客户端(client.py)。服务端基于FastAPI框架,使用Transformers库加载Qwen3-4B模型,实现了/v1/chat/comp

2025-10-09 22:12:35 255

原创 后端后端后

2025-09-20 13:24:41 120

原创 前端前端前

2025-09-16 23:51:58 92

原创 解决Dify中接入xinference模型无法开关思考模式和使用function calling的问题

摘要:使用Xinference作为模型供应商时缺少思考模式开关,可能是由于Dify未适配所致,建议改用兼容OpenAI格式的插件。另外,部署Qwen3需选择ToolCall才能正常使用FunctionCall功能。

2025-09-13 12:25:13 549 1

原创 解决dify前端页面中公式显示的问题

摘要 在使用Dify平台时遇到公式显示错误问题,通过在GitHub上查找并应用解决方案后,成功修复了前端公式显示异常的情况。该问题得到有效解决,现公式已能正常显示。

2025-08-03 15:10:15 414

原创 解决dify调用xinference部署的CosyVoice2.0-0.5B失败问题

摘要:本文分享了部署CosyVoice2.0-0.5B模型时遇到的问题及解决方法。首先在xinference部署时遇到环境冲突,通过设置XINFERENCE_ENABLE_VIRTUAL_ENV=1为模型创建独立Python环境解决。随后dify调用失败,发现是ffmpeg安装问题,改用conda-forge源安装后成功解决。两个关键步骤:使用虚拟环境隔离模型依赖,以及正确安装ffmpeg库。

2025-08-03 14:54:11 793

原创 关于Dify聊天对话名称无法自动生成的原因和解决方法

摘要:本文分析了Dify平台对话名称生成问题的原因与解决方法。主要问题包括默认生成"newconversation"名称、中英文不匹配等,其根源在于系统模型配置不当。解决方案包括:(1)改用非推理模型;(2)修改源码正则逻辑。作者建议使用8B以上模型,并发现直接采用首个问题作为名称更实用。通过调整提示词和修改生成函数,最终实现了自定义对话名称功能。

2025-06-04 22:25:36 951 1

原创 大模型基本原理(四)——如何武装ChatGPT

传统的LLM存在几个短板:编造事实、计算不准确、数据过时等,为了应对这几个问题,可以借助一些外部工具或数据把AI武装起来。实现这一思路的框架包括RAG、PAL、ReAct。

2025-02-10 00:19:29 603

原创 大模型基本原理(三)——如何正确使用ChatGPT

想要正确使用Chat GPT,就需要提高和AI沟通的质量和效率,这就需要提示工程(Prompt Engineering)。ChatGPT的缺陷:由于LLM是根据预测下一个最大概率token来生成文本的,所以ChatGPT对于没有学习过的知识或者不了解的领域,经常会一本正经的胡言乱语。正确使用ChatGPT的技巧有三个:小样本提示、思维链、分步骤思考。

2025-02-09 22:04:20 471

原创 大模型基本原理(二)——ChatGPT的工作原理

通过大量的文本数据集进行无监督训练,得到一个基座模型(只会续写文本)通过一些人类撰写的高质量对话数据对基座模型进行监督微调,得到一个微调后的基座模型(除了能续写文本,还具备更好的对话能力)用问题和对各对应回答的数据,让人类标注员对回答进行质量排序,基于这些数据,训练出一个能对回答进行评分预测的奖励模型。接下来让我们对每一个步骤进行详细解读。

2025-02-09 21:32:45 621

原创 大模型基本原理(一)——Transformer工作原理

解码器的自注意力模块和编码器不太一样。当编码器处理各个词的时候,会关注输入序列里所有其他词,而解码器中,自注意力模块只会关注当前词和它前面的其他词。2、位置编码:将位置编码向量和输入的每个词的向量相加,就能够使每个词都具备位置信息,这样做可以将一段文字同时输入到模型中,模型既可以理解每个词的意义及每个词和其他词之间的关系,也可以知道每个词在句子中的位置,从而理解不同词之间的顺序关系。所以编码器的输出结果里,表示各个词的向量,会根据上下文信息进行调整,同一个词,根据上下文会有不同的抽象表示。

2025-02-09 18:07:00 607

原创 动手学深度学习——6.循环神经网络

处理序列数据需要统计工具和新的深度神经网络架构。为了简单起见,我们以所示的股票价格(富时100指数)为例。图8.1.1 近30年的富时100指数其中,用𝑥𝑡表示价格,即在时间步(time step) 𝑡∈𝑍+时,观察到的价格𝑥𝑡。请注意,𝑡对于本文中的序列通常是离散的,并在整数或其子集上变化。假设一个交易员想在𝑡日的股市中表现良好,于是通过以下途径预测𝑥𝑡:为了实现这个预测,交易员可以使用回归模型, 例如在中训练的模型。仅有一个主要问题:输入数据的数量, 输入𝑥𝑡−1,…,𝑥1本身因𝑡而异。

2024-07-24 00:30:51 1250

原创 动手学深度学习——5.卷积神经网络

现在,我们将上述想法总结一下,从而帮助我们设计适合于计算机视觉的神经网络架构。平移不变性(translation invariance):不管检测对象出现在图像中的哪个位置,神经网络的前面几层应该对相同的图像区域具有相似的反应,即为“平移不变性”。局部性(locality):神经网络的前面几层应该只探索输入图像中的局部区域,而不过度在意图像中相隔较远区域的关系,这就是“局部性”原则。最终,可以聚合这些局部特征,以在整个图像级别进行预测。卷积神经网络是包含卷积层的一类特殊的神经网络。

2024-07-17 20:55:27 1323

原创 动手学深度学习——4.深度神经网络

现在我们可以更仔细地看看Sequential类是如何工作的, 回想一下Sequential的设计是为了把其他模块串起来。为了构建我们自己的简化的, 我们只需要定义两个关键函数:一种将块逐个追加到列表中的函数;一种前向传播函数,用于将输入按追加块的顺序传递给块组成的“链条”。

2024-07-17 18:02:24 1116

原创 动手学深度学习——3.多层感知机

例如,线性意味着单调假设: 任何特征的增大都会导致模型输出的增大(如果对应的权重为正), 或者导致模型输出的减小(如果对应的权重为负)。有时这是有道理的。例如,如果我们试图预测一个人是否会偿还贷款。我们可以认为,在其他条件不变的情况下, 收入较高的申请人比收入较低的申请人更有可能偿还贷款。但是,虽然收入与还款概率存在单调性,但它们不是线性相关的。收入从0增加到5万,可能比从100万增加到105万带来更大的还款可能性。

2024-07-15 23:24:01 1078

原创 动手学深度学习——2.预备知识

为了能够完成各种数据操作,我们需要某种方法来存储和操作数据。通常,我们需要做两件重要的事:(1)获取数据;(2)将数据读入计算机后对其进行处理。如果没有某种方法来存储数据,那么获取数据是没有意义的。首先,我们介绍𝑛维数组,也称为张量(tensor)。使用过Python中NumPy计算包的读者会对本部分很熟悉。无论使用哪个深度学习框架,它的张量类(在MXNet中为ndarray, 在PyTorch和TensorFlow中为Tensor)都与Numpy的ndarray类似。

2024-07-12 15:58:06 776

原创 动手学深度学习—— 1.引言

首先介绍一些核心组件。无论什么类型的机器学习问题,都会遇到这些组件:可以用来学习的数据(data);如何转换数据的模型(model);一个目标函数(objective function),用来量化模型的有效性;调整模型参数以优化目标函数的算法。

2024-07-12 14:46:03 592

原创 理解CAE

我们提出了一种新的掩模图像建模(MIM)方法,上下文自编码器(CAE),用于自监督表示预训练。我们通过在编码的表示空间中进行预测来预训练编码器。预训练任务包括两个任务:掩模表示预测—预测掩模块的表示,以及掩模块重建—重建被掩模块。该网络是一个编码器-回归器-解码器架构:编码器将可见的patch作为输入;回归量使用可见补丁的表示以及可见和被掩盖的补丁的位置来预测掩码补丁的表示,该掩码补丁预计将与从编码器计算的表示对齐;解码器根据预测的编码表示重建掩码补丁。

2024-03-04 15:34:45 1533

原创 MoCo全系列论文详解(含单GPU训练代码)

对比学习的本质实际上是让两个相似(比如相同类别)的图像在特征空间内尽可能相近,不相似的图像尽可能远,这里相似的图像就是正样本,不相似的图像就是负样本。而如何区分正负样本对的方法就形成了各式各样的代理任务(pretext task)。那MoCo所用的代理任务就是个体判别了,每张图像都是单独的一类,在网络中只有原图经过数据增强后的图像属于原图的正样本,其他的图像都是负样本。有了区分正负样本的方法后就是常规的,进入encoder提取特征,输出的特征用NCEloss进行反向传播,梯度下降。

2023-12-26 22:16:58 7365 19

原创 对比学习综述

代理任务:个体判别。把每一个图片看作是一种类别,把每一个图片都区分开来。正负样本选择:正样本是图片本身,负样本是数据集里的其他图片,该文章从memory bank中随机抽取4096个负样本出来进行训练。损失函数:NCEloss。

2023-12-22 19:14:24 751

原创 自监督学习综述

其实自监督学习的核心思想很简单,利用大量的无标签数据训练模型,然后将其作为预训练模型在下游任务上进行微调(有标签)。在用无标签图像训练模型时主要通过设计辅助任务,用图像自身的信息作为标签训练。常见的就是对比学习,将原图本身和经过图像增强的图像作为正样本,其他作为负样本。对比学习,cv通过对输入图像进行数据增强,将数据增强的图像作为原图的正样本,其他输入图像作为负样本。但是这种模式在nlp中却不好使用,将一句话中的单词替换为同义词,预测的结果很可能会产生偏差,所以nlp选择用dropout的方法。

2023-12-19 20:39:25 3528 1

原创 理解VAE(变分自编码器)[结合代码]

贝叶斯理论的思路是,在主观判断的基础上,先估计一个值(先验概率),然后根据观察的新信息不断修正(可能性函数)。P(A):没有数据B的支持下,A发生的概率,也叫做先验概率。这完全是根据经验做出的判断,这也是前面说的贝叶斯公式的主观因素部分。P(A|B):在数据B的支持下,A发生的概率,也叫后验概率。即在B事件发生之后,我们对A事件概率的重新评估。P(B|A):给定某参数A的概率分布:也叫似然函数。这是一个调整因子,即新信息B带来的调整,作用是使得先验概率更接近真实概率。

2023-12-08 17:27:33 1247

原创 理解DALL-E 2

DALL-E 2的效果想必大家都已经很清楚了,效果是非常惊人的,该篇文章就是讲一下DALL-E 2的原理是什么。

2023-11-28 09:20:40 1861

原创 理解CLIP模型

学习深度学习必看CLIP!论文链接。简单来说就是传统的分类任务被用来预测指定的类别,有监督训练限制了模型的通用性和可用性,并且需要带有标签的数据来训练,该篇论文就想直接从原始文本中学习图像特征,具体就是从网络上采集大量的带有文字描述的图片,同时向网络输入原始文字和图像,网络来学习他们之间的关系。预测时通过输入一句话就能判断图像是否与其匹配了,具有很强的泛化性能。这就是zero shot,不用数据集中任何一张图片,就能够达到ResNet-50的精度。

2023-11-24 17:13:52 840

原创 从0开始微信小程序开发

分别对应的是布局,文本,图像,导航跳转。WXML和HTML的区别。view默认占满一行。

2023-10-11 10:22:21 309

原创 知识储备--基础算法篇-回溯法

每一个递归都包含回溯,回溯是一种纯暴力搜索方法。每个回溯法都可以抽象为一种N叉树。树的宽度为子集的个数,深度为递归返回的条件。二叉树中的递归都会有回溯算法,只不过有些题目用到了,有些没有用到。

2023-09-29 20:19:20 300

原创 知识储备--基础算法篇-贪心算法

贪心算法能够通过局部最优去推出全局最优,而背包问题不行,需要用动态规划的方法来解决。

2023-09-25 16:59:41 343

原创 知识储备--基础算法篇-二叉树

2**k-1满连续。

2023-09-17 17:31:51 197

空空如也

空空如也

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

TA关注的人

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