- 博客(20)
- 收藏
- 关注
原创 模型部署:从训练到上线的完整指南
模型部署是指将训练完成的机器学习或深度学习模型集成到生产环境中,使其能够接收真实业务请求并返回预测结果的过程。简单来说,训练阶段解决的是「模型如何学会」的问题,而部署阶段解决的是「模型如何被使用」的问题。一个完整的模型部署流程通常包括模型导出、服务封装、资源调度、接口发布、监控运维等多个环节。部署方式的选择直接影响系统的响应速度、吞吐量、成本以及可维护性。模型部署是连接算法研究与业务价值的桥梁。一个稳定、高效、可观测的部署体系,需要从模型导出、服务封装、资源调度到监控运维全链路进行设计。
2026-09-20 23:57:18
45
原创 word2vec词向量模型
CBOW 模型包含三层:Embedding 层(输入层和隐藏层的结合)、一个带 ReLU 激活的全连接层,以及输出层。前向传播时,先把上下文词的 Embedding 取平均,再经过全连接层和 Softmax 得到每个词作为中心词的概率。log_probs = F.log_softmax(out, dim=-1) # log_softmax 与 NLLLoss 组合成交叉熵损失model = CBOW(vocab_size, 10).to(device) # 词向量维度设为 10。
2026-09-20 23:36:35
112
原创 ResNet残差网络
残差网络(Residual Network,简称 ResNet)是一种通过引入「跳跃连接」(Skip Connection)来缓解深层神经网络训练困难问题的网络结构。在传统网络中,每一层都直接学习输入到输出的完整映射;而在残差网络中,每一层学习的是输入与输出之间的残差(即差值),并通过跳跃连接将输入直接传递到后面的层。这样即使网络层数很深,梯度也能通过跳跃连接顺畅地回传,从而有效避免梯度消失和梯度爆炸问题,使网络可以训练到上百层甚至上千层。
2026-09-17 21:30:37
107
原创 实现迁移学习
在开始迁移学习之前,前面的项目还有一点东西遗漏,前面一篇我们描述了dataload将数据打包成一批一批给模型训练,还讲了数据增强,将训练好的最优模型保存下来的两种方式。接下来我还会添加动态调节优化器学习率方式,如何使用最优模型。
2026-09-16 16:58:02
215
原创 食物分类实例
dataload的作用是把dataset中的“单条样本”封装成一个,供训练循环直接使用,同时支持打乱、并行加载、自动合并、内存优化等功能。简单来说,负责“怎么取一条数据”,负责“怎么一批一批取、按什么顺序取、用几个进程取、怎么拼成一批”。所以训练时你面对的不是一条条数据,而是一批批数据。DataLoader 就是那个帮你把一条条数据变成一批批数据,并送到训练循环里的“调度员”。决定取什么数据,决定一次取多少,决定取数顺序是否随机,决定用几个进程并行取,决定是否加速向 GPU 传输,决定怎么把样本拼成一批。
2026-09-16 11:34:59
131
原创 dlib库人脸检测
dlib 的人脸检测功能在计算机视觉领域应用广泛,它提供了基于传统机器学习(HOG)和深度学习(CNN)的两种成熟方案,让开发者可以根据项目需求在速度和精度之间灵活选择。
2026-09-15 12:54:12
92
原创 OpenCV实现答题卡自动判分
本篇主要讲解经典的,它是完全基于 OpenCV 实现。核心思想是。具体流程:输入图像 → 灰度+高斯模糊 → Canny边缘检测→ 找最大四边形(轮廓近似)→ 透视变换(拉正图片)→ Otsu二值化反转(涂白底黑)→ 再次找轮廓(过滤出圆形的选项圈)→ 按行排序 + 按列排序(5个一组)→ 循环每组:制作掩膜 → 与运算 → 统计白色像素(投票选出最多者)→ 比对答案键 → 标记对错→ 计算总分并显示。
2026-09-09 23:20:50
110
原创 opencv图像拼接
图像拼接的本质是。假设有两张图像 AA 和 BB,它们在三维空间中拍摄的是同一平面场景(或远景),那么 BB 中任意一点 (x,y),都可以通过一个映射到 AA 的坐标系中。
2026-09-09 16:37:54
42
原创 opencv背景建模和光流估计
背景建模是视频监控与运动目标检测中的基础环节,其核心目标是从视频序列中分离出静止的背景区域和运动的前景目标。在实际场景中,背景往往并非一成不变,光照变化、树叶晃动、水面波纹、摄像头轻微抖动等因素都会导致背景像素值随时间波动。因此,仅用单一静态图像作为背景模型难以满足鲁棒性要求,需要引入能够描述像素值动态分布的统计模型。混合高斯模型(Gaussian Mixture Model,GMM)正是为解决这一问题而提出的经典方法。
2026-09-08 23:58:18
171
原创 opencv中的人脸识别方法
优点1.实现简单,无需复杂的深度学习框架,计算量小,适合在资源受限的设备上运行。2.对光照变化有一定的鲁棒性,因为 LBP 特征基于像素间的相对大小关系,而非绝对灰度值。3.训练速度快,样本量较小时也能较快完成模型训练。缺点1.对姿态变化和遮挡比较敏感,人脸旋转角度较大或部分被遮挡时,识别准确率会明显下降。2.特征表达能力有限,在复杂场景或大规模人脸库下,识别精度不如基于深度学习的方案。3.需要保证训练图像与待识别图像的人脸区域对齐,否则直方图特征会产生较大偏差。实例# 提前训练的人脸照片。
2026-09-08 00:17:54
183
原创 卷积神经网络(CNN)入门:从原理到实战
卷积神经网络通过局部感知、权重共享和空间下采样三大设计思想,有效解决了全连接网络在图像任务中的参数爆炸问题。其核心组件——卷积层、激活函数、池化层和全连接层——各司其职,共同完成从原始像素到高层语义特征的提取与分类。理解这些基础概念,是进一步学习目标检测、图像分割等复杂视觉任务的良好起点。
2026-09-04 14:54:28
356
原创 初学opencv4
模板匹配就是用一张图片在另一张图片上找到匹配的内容,然后把它框出来。使用的函数为cv2.matchTemplate(image,templ,method,result=None,mask=None)参数如下:image:待搜索图像templ:模板图像method:计算匹配程度的方法,可以有:TM_SQDIFF 平方差匹配法:该方法采用平方差来进行匹配,匹配越好,值越小;匹配越差,值越大。TM_CCORR 相关匹配法:该方法采用乘法操作,数值越大表明匹配程度越好。
2026-08-26 14:41:26
164
原创 初学opencv2
定义噪声函数 add_peppersalt,传入参数:图像数据(image),生成椒盐噪声的个数(n),默认值为10000。result复制一份图像数据,h,w获取图像的高和宽。进入循环,生成n个椒盐噪声。x,y在图像的高宽范围内随机选取一点,百分之50的概率添加黑色噪声,百分之50的概率添加白色噪声。返回处理后的图像。读入原始图像,展示图像,设置停留时间。调用噪声函数,对原图进行添加噪声的操作,返回noise噪声图像,然后展示图像,设置停留时间。
2026-08-12 17:03:20
249
原创 初学机器学习4 K折交叉验证
平常我们在训练模型时对数据集是如何处理的呢,我们是这样做的,引入sklearn中的train_test_split模块,将数据集划分为训练集和测试集,再用训练集的数据拟合模型,最后用测试集验证模型的性能,根据返回的指标判断这个模型够不够好,不够好的情况下调试模型的参数,再去验证,如此多试几次得到一个较好的模型。可这样问题就出现了,你是怎么得到这个较好的模型的,你这个调试参数的行为是不是相当于把测试集也当作训练集放进去训练了吗?显然这样是不对的。测试集不参与模型的训练。
2026-07-31 20:21:34
191
原创 模型评判:准确率、精确率与召回率详解
指标关注点计算公式核心问题适用场景准确率 (Accuracy)整体预测正确率(TP+TN) / 全体样本模型整体有多准?样本均衡的分类任务精确率 (Precision)预测为正例的准确性预测出的正例有多少是真的?重视预测质量,避免误报(如垃圾邮件过滤)召回率 (Recall)找出所有正例的能力真正的正例有多少被找出来了?重视覆盖度,避免漏报(如疾病筛查)核心建议:在实际项目中,不应孤立地看待单一指标。需要根据业务目标(是更怕误报还是更怕漏报?)和数据分布(样本是否平衡?
2026-07-31 08:41:29
208
原创 初学机器学习2 线性回归与逻辑回归
还是这个坐标轴,不过数据的分布如上图所示,我现在想要做一个分类,我找到一条直线将数据划分为上下两部分,将上半部分的数据标记为1,下半部分的数据标记为0,现在来了一个新数据,判断这个数据属于0还是1,这就是逻辑回归。在用Sigmoid函数压缩成概率下有这么个情况,当z趋于正无穷,p趋于1,这个p可直接当作概率,而当z趋于负无穷,p趋于0,这个p不能直接当作概率,要用(1-p)当作概率。正则化就是在极大似然函数所求的损失函数后面加了个惩罚,它降低了模型的拟合精度,提高了模型在未知数据上的泛化能力。
2026-07-29 21:28:10
181
原创 初学机器学习
数据标准化是非常有必要的,因为各个数据的单位都不一样,这样会导致数据里有的列的值非常大,有的列的值非常小,在计算欧式距离时,数值大的则会占巨大权重,这样算出来的距离主要都由数值大的特征决定,非常不合理。那么这么多的样本数据怎么找到最近的K个数据呢?是用两点之间的距离来决定的,K近邻就是指离新样本距离最近的k个数据,欧氏距离公式。1.分类问题:要给新来的一个样本数据分类,看他周围最近的k个已知样本数据,哪个类别数量多,新样本就分到哪一类。处理后的结果:数据的均值变为 0,标准差变为 1。
2026-07-27 21:03:49
435
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅