- 博客(63)
- 资源 (1)
- 收藏
- 关注
原创 搭建本地的rag(可运行)基于vllm部署的模型以及搭建的milvus数据库
RAG(检索增强生成)是一种结合信息检索和大语言模型的技术,通过引入外部知识库解决大模型的三大痛点:知识幻觉、知识滞后和专业领域不足。其工作流程分为四步:文档预处理、用户提问检索、提示词拼接和大模型生成回答。本文详细介绍了如何搭建本地RAG系统,包括项目结构设计、核心模块实现(文档处理、向量存储、LLM服务等)、API接口设计以及错误处理机制。系统采用Tornado框架,集成Milvus向量数据库、vLLM大模型和Ollama编码模型,支持企业知识库、专业领域和实时资讯问答等场景。
2026-01-06 16:42:02
861
原创 LightRAG对自定义的知识图谱数据进行文本嵌入
LightRAG是一款轻量级检索增强生成框架,专为私有化智能知识库构建设计。核心特点包括:1)本地化部署,数据全存储在本地目录;2)一体化封装RAG全流程(数据入库、向量化、检索、LLM调用);3)支持灵活扩展自定义LLM和嵌入模型;4)异步接口和缓存优化提升效率。框架通过简单API即可实现知识图谱构建与问答,支持JSON格式的实体关系数据导入,适配内网环境下的私有模型部署,显著降低RAG开发门槛。
2025-12-23 09:51:26
512
原创 基于python中的ast库解析代码生成知识图谱
摘要:本文介绍了一个基于Python ast模块的代码知识图谱构建系统。系统通过解析Python源代码生成抽象语法树(AST),提取函数/类作为实体,分析调用关系,并整合大模型生成功能描述。主要功能包括:1) 代码结构化解析,将Python文件转换为模块路径;2) 实体抽取,包括函数参数、类方法等元数据;3) 调用关系分析,支持多种调用场景;4) 智能描述生成,结合文档字符串和大模型输出。系统最终输出包含代码片段(chunks)、实体(entities)和关系(relationships)的JSON文件,可
2025-12-23 09:30:21
761
原创 Python实现图像区域内最大值的函数:maximum_filter
摘要:maximum_filter是SciPy库中用于提取局部最大值的图像处理函数,通过滑动窗口对邻域元素取最大值。其核心参数包括窗口大小(size)、边界处理模式(mode)及结构元素控制。典型应用场景如示例代码所示,通过结合最大值过滤、区域生长和形态学操作,实现梯度区域的精确提取——先检测亮度超过阈值且满足最小间距的局部最大值点,再以这些种子点进行八邻域生长,最后通过形态学处理优化结果。该函数在特征点检测、边缘增强等任务中具有重要作用。
2025-07-14 10:20:33
389
原创 分水岭算法:图像分割的浸水原理
分水岭算法是一种基于拓扑地貌思想的图像分割方法。算法将图像灰度值视为海拔高度,通过模拟浸水过程提取边界:局部极小值对应集水盆(区域内部),分水岭线则作为区域边界。关键步骤包括梯度计算预处理、标记控制和分水岭变换。算法实现中,首先进行灰度转换、阈值分割和形态学处理,然后通过距离变换确定前景区域,最后应用分水岭函数标记边界。该算法能有效分离粘连对象,但需注意噪声控制和标记准确性。
2025-07-08 15:19:50
575
原创 使用 OpenCV 实现图像中心旋转
在图像处理中,围绕中心点旋转图像是一个常见的需求。无论是为了数据增强、视觉效果,还是图像对齐,旋转图像都是一项基础且重要的操作。本文将详细介绍如何使用 OpenCV 实现围绕图像中心旋转的功能。
2025-04-29 10:00:17
1006
原创 使用 OpenCV 实现图像等比例填充或保持宽高比填充
对图像进行不变形填充(也称为等比例填充或保持宽高比填充)通过这种技术,可以在保持图像内容完整性的同时,满足下游任务对尺寸的严格要求。
2025-04-25 11:43:03
639
原创 使用diffusers库训练自己的数据
在这个代码链接里面拉取最新的代码,里面的examples有很多使用实例,比如说原始的diffusion,控制网络等等,对应的任务就是无条件图像生成、文本到图像、文本引导的图像到图像的生成任务等等,可以根据自己的需求选择。里面的内容来进行训练,使用hugging face 提供的数据集,如何要训练自己的数据集的话,就按照提供的数据集替换里面的内容就好了。需要注意的是需要将.py的名字改成和你存放路径同样的名字,然后将存放路径作为 train_data_dir的参数传入,就可以训练了。
2025-02-25 10:12:18
658
原创 如何将分割的mask转为为分割标签
将分割的mask转换为分割标签通常涉及将每个像素的类别标识(在mask中以不同的灰度值或颜色表示)转换为整数标签。这些标签通常用于机器学习或深度学习模型的训练、验证和测试阶段。转换代码,来自X_anyLabeling的tool文件夹下的转换文件。
2025-01-08 11:44:00
332
原创 YOLOv8分割训练自己的数据全面指南:从环境搭建到训练、验证及预测的深度解析
YOLOv8是Ultralytics公司推出的YOLO(You Only Look Once)目标检测系列版本。它是一个先进的、实时的目标检测模型,旨在提供高精度和高速度的目标检测能力。YOLOv8建立在YOLO系列之前版本的成功基础上,并引入了多项新的功能和改进,以进一步提升模型的性能和灵活性。具体来说,YOLOv8采用了新的网络结构,包括新的骨干网络、特征融合模块和检测头,以优化特征提取和目标检测的能力。它还引入了新的损失函数和标签分配策略,以提高模型的学习效率和检测准确性。
2024-11-19 10:48:03
1165
原创 使用高斯差分DOG(Difference of Gaussians)检测图像中的斑点或者边缘
高斯差分是指两个不同尺度下的高斯模糊图像之间的差值。具体而言,它通过对原始灰度图像应用两个具有不同标准差的高斯核进行卷积,得到两个模糊图像,然后计算这两个模糊图像之间的差分,从而生成高斯差分图像。
2024-11-11 10:17:53
1417
原创 cv2.threshold利用OTSU方法分割图像的前景和背景
该方法由日本学者大津(Nobuyuki Otsu)于1979年提出,旨在通过最大化前景与背景之间的类间方差来自动确定一个最佳阈值,从而将图像分割成前景和背景两部分。OTSU方法具有自适应性强、分割效果好的优点,特别适用于目标单一的图像分割。然而,对于多目标图像或灰度分布不均匀的图像,OTSU方法可能无法获得理想的分割效果。OTSU方法的核心思想是寻找一个阈值T,使得图像的前景(高灰度值区域)和背景(低灰度值区域)之间具有最大的类间方差。类间方差越大,说明前景和背景的区分度越高,分割效果越好。
2024-11-06 09:36:15
1025
原创 cv2.Laplacian利用LOG(Laplacian of Gaussian, LOG)提取图像的边缘或者检测斑点
利用高斯拉普拉斯算子(Laplacian of Gaussian, LOG)提取图像边缘是一种结合了高斯平滑和拉普拉斯边缘检测的方法。这种方法首先使用高斯滤波器对图像进行平滑处理,以减少噪声对边缘检测的影响,然后应用拉普拉斯算子来检测平滑后图像中的边缘。拉普拉斯算子的结果是一个图像,其中边缘区域会有较高的绝对值。对平滑后的图像应用拉普拉斯算子,使用OpenCV的。函数或Matplotlib库来显示边缘检测结果。函数对灰度图像进行高斯平滑处理。你需要导入OpenCV(函数将图像转换为灰度图像。
2024-11-05 14:03:08
712
原创 Nomacs:Linux下的全能图像查看器,快速、多功能与跨平台体验
Nomacs是一款免费的开源图像查看器,专为Linux系统以及其他操作系统(如Windows、MacOS、FreeBSD等)设计。它以其快速启动、图片打开速度快以及多窗口运行的能力而著称。Nomacs的界面简洁直观,提供了丰富的功能来满足用户的不同需求。
2024-09-27 09:09:21
2337
原创 The Llama 3 Herd of Models.Llama 3 模型第1,2,3部分全文
Llama 3 模型论文全文,了解Llama 3的训练细节和效果
2024-07-25 16:25:51
2355
原创 使用pymongo连接mongodb数据库与在mongodb数据库中查询数据
使用pymongo连接mongodb数据库与在mongodb数据库中查询数据
2024-07-25 09:50:42
765
原创 测试集数据语义特征t_SNE降维可视化
载入训练好的模型,对测试集图像进行分类在图像分类通用步骤中,第一步是训练数据集,第二步是测试数据集,而无论是训练还是测试,对我们而言都是黑盒子。我们只知道模型从训练数据中学习到了特征,然后应用到测试集数据集中,最终得出测试集数据的分类结果。对于其中的细节,我们就不得而知了。因此本文将在训练好模型的基础上,在测试集进行数据降维可视化,观察模型将不同数据划分到什么位置,有助于我们理解模型在面对图像是进行了怎样的判断。载入训练好的模型,对测试集图像进行分类数据预处理,采用ImageNet的预处理方式载入数据。
2022-10-24 16:08:09
4963
2
原创 2022华为杯C题汽车制造涂装-总装缓存调序区调度优化问题建模解决
如果去除PBS约束说明中第6、7两条约束,其余约束不变,根据涂装出车序列,考虑PBS区域调度能力及限制,建立PBS优化调度模型,使得总装进车序列尽可能满足总装生产需求。由于各车间的约束不同导致生产调度无法按照同一序列连续生产,特别是涂装车间与总装车间序列差异较大,这就需要在两个车间之间建立一个具有调序功能的缓存区,即PBS(Painted Body Store,汽车制造涂装-总装缓存调序区),用来将涂装车间的出车序列调整到满足总装车间约束的进车序列。各车道距离等分,每车道宽度2米,两相邻车道间间隔1米。
2022-10-11 14:35:43
1887
1
原创 深度学习过程中测试准确率先上升后下降是为什么?
在初始训练阶段,模型逐渐开始学习到一些信息,因而在验证集上的表现是提升的,在到达某一点后,模型接着训练则会更加的去关注一些细枝末节的东西,即模型表达更加多。1.早停,既然模型在某一点时达到最优,那么就设置模型在最优点附近停止训练。在整个训练过程中,虽然说模型出现了过拟合,但是其在训练集上的损失还是趋于平稳的,并不会说因为过拟合而导致损失波动。在训练过程中的验证准确率前上升,后下降,即在验证集上的表现先好后差。3.改变数据,使数据更加复杂,多变,适应模型,也能取得不错的效果。2.为模型增加惩罚项,即正则化。
2022-09-11 10:26:17
11585
1
原创 pytorch迁移学习载入部分权重
使用官方预训练权重,这样的权重包含的信息量大且全面,可以适配一些小数据的任务,即小数据在使用迁移学习后仍然能够保持良好的性能,避免的小数据带来的数据不足,模型训练不充分的问题。载入自己的训练的权重在模型测试和继续训练时使用较多,模型测试载入权重就不说了,继续训练是指假设设置epoch为500,训练接受后,发现模型仍然没有收敛,那么你就可以载入epoch为500时的训练权重,再训练500的epoch,这样你对模型就总共训练了1000个epoch,而不需要在发现模型未收敛时,又重头去训练1000个epoch。
2022-09-05 16:54:51
2991
1
原创 python查看网络的特征图,并计算特征图的直方图,并计算香农熵。
查看特征图的原理在网络的每一层输出中,都会输出一个[b,c,h,w]维度的数据,b是batch的大小,c是通道数,h,w是高和宽。比如某一层的特征图是32x64x112x122,即batch大小为32,通道数为64,大小为112x112的图像。我们读取到这个数据32x64x112x122之后,将其batch维度压缩掉,然后在转换成为图像的PIL格式,即112x112x64.这也就意味着我们有64个112x112大小的图像,我们只需要读取每个通道的图像就可以看到特征图。1.获取输出在p
2022-05-25 19:43:54
2655
6
原创 孪生网络pytoch实现,以resnet为特征提取网络
我的孪生网络代码来源于孪生网络博主,这里的源代码使用的vgg16作为特征提取网络,我的主要工作是将vgg16替换为resnet网络。1.建立resnet网络import torch.nn as nnimport torch# from torchvision.models.utils import load_state_dict_from_urlfrom torchsummary import summaryfrom torch.hub import load_state_dict_fro
2022-05-07 16:39:10
4701
18
原创 OSError: [Errno 28] No space left on device以及查看系统分区情况
在Linux服务器运行程序的时候,运行完一个epoch后就会出现这个报错OSError: [Errno 28] No space left on device。大致意思就是说系统的空间不足。查看系统空间的使用情况:df -h可以看到其中有一个文件夹已经占用100%了,所以提示空间不足。解决办法就是删除掉文件夹内的一些东西即可。查看空间的占用:du -sh /home/* |grep G...
2022-05-05 10:02:39
52484
1
原创 2022年第十四届华中杯数学建模A题解题思路附代码
A 题 分拣系统优化问题 某电商公司配送中心的工作流程分为统计汇总、转运上架、按订单分拣、核对打包等 步骤。其中,分拣环节操作复杂,耗时较长,其效率是影响配送中心整体性能的关键因素。 首先,系统统计汇总出当天全部待配送订单所包含的所有货品及相应数量。然后,转运工 将这些货品由仓库转运至分拣处,并放置到货架上,等待分拣。上架时,一个货架中仅放 置同一种货品。为简化问题,不考虑货架...
2022-05-03 08:48:22
12044
71
原创 第十届泰迪杯数据挖掘挑战赛A题解题思路附代码
A题:农田害虫图像识别赛题描述一、问题背景病虫害一直是农业生产中无法避免的问题,每年都会由此造成巨大的经济损失。为了对农田病虫害进行有效的预防和控制,需要收集有害生物信息,在此基础上进行虫情分析。由于农田害虫的多样性和信息类型的复杂性,通过人工观察统计的传统害虫监测方式已经难以满足现代大规模农业生产对虫害预防工作的需要。近年来出现的虫情测报灯是虫情信息采集的智能设备,可以在无人...
2022-05-02 17:14:49
3600
8
原创 labelImg的使用教程,快捷键,用于标注voc或者yolo格式的数据
labelImg是用于图像标注的软件,其用途是为制作xlm格式的标签或者是txt格式的标签,两种标签格式都可以作为YOLO5的训练标签。1.安装安装labelImg的方法是直接依托pip安装的,其命令如下:pip install labelImg我这里已经安装过了,所以显示的是已经有了。2.调用调用labelImg时,只需要在命令窗口输入即可。labelImg也可以在你需要标注的文件内,直接鼠标右键加shift进入在此处打开powershell,然后输入labelIm
2022-05-01 09:15:51
9893
原创 YOLOv5训练自己的数据集
1.找到代码:YOLO5的代码可以在GitHub上找到,最好是用最新的代码。YOLO5https://github.com/ultralytics/yolov5可以选择在网站上面下载代码,或者用命令克隆代码也行;git clone https://github.com/ultralytics/yolov5 代码克隆好以后会放在当前克隆命令文件夹的yolov5文件里。2.配置环境:YOLO5要求python大于等于3.7.0,pytorch大于等于1.7版本。可以根据自己的硬件设.
2022-04-25 12:27:34
1047
原创 向CSV文件写入多个内容的方法。
1.使用pandas写入内容。依托pandas中的DataFrame函数,实现对数据的写入。这是按列的方法写入CSV文件中,即每个参数保存的是要写入的每列的元素。下面是一个简单的示例:import csvimport pandas as pdlist=['0001.jpg',1312,151,1651,1561,1561,51658,100]index=[]tupan=[]x1=[]x2=[]x3=[]x4=[]x5=[]x6=[]x7=[]list_n=[]
2022-04-25 12:26:50
6469
原创 python使用random.sample将数据集随机划分为训练集与验证集并另存在文件夹中,设置随机种子
在做深度学习或者其他学习需要的时候,要求我们将数据集划分为训练集和验证集,一般来说按照9:1,8:2的比例划分训练集和验证集都是可以的。我们基于random.sample函数来实现对数据的划分。假设我们数据摆放如下:images里面存放的 是训练的图片,labels里面存放的是图片的标签信息,如TXT,xml等信息。我们最终做成的结果如下:在每一个文件夹里都存在一个train文件和val文件,val里存放的文件来源是从train里面随机抽取出来的。train与val里面的数
2022-04-25 12:26:16
9982
3
原创 YOLO5的数据增强和权重设置hyp.scratch-med.yaml文件解读,degrees角度旋转和水平、垂直翻转解释
在新的YOLO5代码中,其中的超参数设置文件已经变成了5个,如下:放在data文件夹下得hyps文件夹中。作者对于这些文件的解释如下:这是什么意思呢?可以翻译为中文看看:这样是不是就比较清楚了。这个文件的调用命令在train.py里面,如下:那么我们接下来看看这个hyp.scratch-med.yaml超参数设置文件里面都有些什么内容吧。#YOLOv5 🚀 by Ultralytics, GPL-3.0 许可证#用于从头开始进行中等增强 COCO 训练的超...
2022-04-22 17:52:04
12682
3
原创 Overriding model.yaml nc=80 with nc=28
在使用yolov5训练自己的数据集的时候可能会在运行代码的输出过程中会出现如下的一个信息,但是代码依旧能够运行。这个的意思是说模型中设定的分类类别与你自己在.yaml文件中配置的nc数值不匹配,只需要修改模型.yaml文件即可。找到你自己所用的模型对应的.yaml文件,在model文件夹里,以yolov5s为例:修改如下即可:如果这样修改之后还是出现这样的提示,Overriding model.yaml nc=80 with nc=28那么可以再看看train.py文...
2022-04-20 15:02:33
7897
6
原创 WARNING: NMS time limit 1.060s exceeded
在使用yolo5训练数据时候会出现这样的警告:WARNING: NMS time limit 1.060s exceeded其实这也不能算是错误,是一种正常的现象。在训练的早期阶段发出警告是很正常的,因为网络仍在学习课程的特征。因此,在早期阶段,网络“几乎随机”给出了很多猜测,因为它不确定正确的特征!经过一些训练时期(可能几十或几百个,取决于数据集),网络将更加确定其预测,并且警告将自然消失。...
2022-04-20 14:49:56
10763
2
图像分类数据集Oxford-102花分类数据集
2022-04-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅