百度paddlepaddle
paddleocr下pp-structure包含了版面分析及表格解析两项工作,本文是对表格解析的技术详述。
代码:
https://github.com/PaddlePaddle/PaddleOCR
简要概览:
PaddleOCR新发版v2.2:开源版面分析与轻量化表格识别_飞桨PaddlePaddle的博客-CSDN博客
RARE
百度paddlepaddle包含表格解析功能,被称为RERE算法。RARE算法原本用于进行文本识别,是一个img2seq任务,修改该网络head部分,分成表格描述和单元格定位两个任务,这两个任务共享了backbone的输出及head中一部分attention信息。“图片由表格结构和cell坐标预测模型拿到表格的结构信息和单元格的坐标信息”,最后输出表格的HTML描述。
一个完整的表格解析工程需要用到四个模型:版面分析模型、文本定位模型、文本识别模型、表格结构解析模型。
版面分析模型:飞桨用到了yolov2检测模型,对文档图片中的文本、表格、图片、标题与列表区域进行检测。当前主流是用分割做。
文本定位模型、文本识别模型:可使用其他定位识别模型。
表格结构解析模型:该技术的精髓所在。

如何进行训练:
python3 tools/train.py -c configs/table/table_mv3.yml
所有的模型训练都会用到这个train文件,可以视为一个主分支,根据配置文件调用不同的次分支。
# 统一化的处理配置、创建文件夹等
config, device, logger, vdl_writer = program.preprocess(is_train=True)
# 加载数据集、后处理、搭建模型、损失、优化器、执行训练等
main(config, device, logger, vdl_writer)
如何进行推理:
python3 ppstructure/table/predict_table.py
--det_model_dir=./inference/ch_PP-OCRv2_det_infer # 检测模型
--rec_model_dir=./inference/ch_PP-OCRv2_rec_infer # 识别模型
--table_model_dir=./inference/en_ppocr_mobile_v2.0_table_structure_infer # 表格结构识别模型
--image_dir=./doc/imgs/163558403291484de11ac8c.jpg # 测试图片
--rec_char_dict_path=./ppocr/utils/ppocr_keys_v1.txt # 识别词表,6623字符
--table_char_dict_path=./ppocr/utils/dict/table_structure_dict.txt # 表格结构词表,实际只用其中28个表格描述符
--det_limit_side_len=960 # 两个参数限制图像最短边为960,否则resize
--det_limit_type=min
--output ./output/table # 输出表格文件路径
推理中的det_limit_side_len与det_limit_type参数:
参数默认设置为`limit_type='max', det_limit_side_len=960`。表示网络输入图像的最长边不能超过960,如果超过这个值,会对图像做等宽比的resize操作,确保最长边为`det_limit_side_len`。
设置为`limit_type='min', det_limit_side_len=960` 则表示限制图像的最短边为960。
表格结构词表
table_structure_dict.txt 第0行是 277 28 1267 1186,第1行到277行为表格内字符,实际未用到,第278行开始28个为表格结构字符。限制了这个可解析表格的大小空间跨行跨列最大为10,没有跨1行或跨1列的字符。
词表中有28种表格结构符,模型为30分类,在分类中argmax=1,为,argmax=0、29 代表beg、end。
单元格开始
| 单元格结束
colspan="5". # 横跨5列
>
colspan="2"
colspan="3"
rowspan="2"。 # 横跨2行
colspan="4"
colspan="6"
rowspan="3"
colspan="9"
colspan="10"
colspan="7"
rowspan="4"
rowspan="5"
rowspan="9"
colspan="8"
rowspan="8"
rowspan="6"
rowspan="7"
rowspan="10"
不包含的html描述:
加粗文本
模型的结构
main函数调用build_model调用BaseModel,先后进行输入预处理(表格解析没有做这步)、backbone、neck(表格解析没有这一步)、head、输出
paddleocr/PaddleOCR-release-2.4/ppocr/modeling/architectures/__init__.py 调用BaseModel
配置文件模型参数为:
Architecture:
model_type: table
algorithm: TableAttn
Backbone:
name: MobileNetV3
scale: 1.0
model_name: large
Head:
name: TableAttentionHead
hidden_size: 256
l2_decay: 0.00001
loc_type: 2
max_text_length: 100
max_elem_length: 800
max_cell_num: 500
很多paper中经常把一个网络分为几个部分组成backbone、head、neck等深度学习中的术语解释_t20134297的博客-CSDN博客_深度学习neck
backbone:主干网络,经常是resnet、vgg这种成熟有预训练模型的结构
neck:放在backbone和head间,提取更好的特征
head:预测
bottleneck:瓶颈,输出维度小于输入维度,用于降维
backbone内部结构
为了轻量化,build_backbone为mobilenetv3,参考性不大
PaddleOCR-release-2.4/ppocr/modeling/backbones/rec_mobilenet_v3.py
Attention内部结构
PaddleOCR-release-2.4/ppocr/modeling/heads/table_att_head.py
self.head.out_channels= TableAttentionHead(
(structure_attention_cell): AttentionGRUCell(
(i2h): Linear(in_features=960, out_features=256, dtype=float32)
(h2h): Linear(in_features=256, out_features=256, dtype=float32)
(score): Linear(in_features=256, out_features=1, dtype=float32)
(rnn): GRUCell(990, 256)
)
(structure_generator): Linear(in_features=256, out_features=30, dtype=float32)
(loc_fea_trans): Linear(in_features=256, out_features=801, dtype=float32)
(loc_generator): Linear(in_features=1216, out_features=4, dtype=float32)
)
获取结构信息
第一步切片获取Attention:
(outputs, hidden), alpha = self.structure_attention_cell(hidden, fea, elem_onehots)
第二步将Attention结果进行cat:
output = paddle.concat(output_hiddens, axis=1)
第三步线性层获取结构信息:
structure_probs = self.structure_generator(output)
structure_probs = F.softmax(structure_probs)
输出维度为801*30
获取定位信息,比获取结构信息多了线性层:
第一步基于线性层处理出入特征:
loc_fea = self.loc_fea_trans(loc_fea)
第二步cat上面的Attention获得的output信息:
loc_concat = paddle.concat([output, loc_fea], axis=2)
第三步线性层获取坐标信息:
loc_preds = self.loc_generator(loc_concat)
loc_preds = F.sigmoid(loc_preds)
输出维度为801*4
坐标聚合
定位框和cell的对应关系基于下方2个度量计算,一个cell内多个定位框的排序按照先来后到排,推测是默认从上到下。
compute_iou函数计算Iou,distance函数计算角点距离
distances.append((distance(gt_box, pred_box), 1. - compute_iou(gt_box, pred_box)))
html转xlsx文件
后处理阶段build_post_process——TableLabelDecode
from tablepyxl import tablepyxl # tablepyxl将html读入excel
tablepyxl.document_to_xl(html_table, excel_path)
评估方式
理论上是用树编辑距离,但从build_metric——TableMetric来看,需要完全一致
for bno in range(batch_size):
all_num += 1
if (structure_probs[bno] == structure_labels[bno]).all():
correct_num += 1
损失
TableAttentionLoss由2部分组成
structure_loss :nn.CrossEntropyLoss
loc_loss:F.mse_loss 均方损失
可用loc_loss_giou:GIoU详解_景唯acr-CSDN博客_giou iou
损失权重:
structure_weight: 100.0 loc_weight: 10000.0
数据加载方式
main函数调用build_dataloader
加粗文本
在源码中,用识别模型的及,用的是识别模型的加粗文本识别能,但ch_PP-OCRv2_rec_infer并没有识别加粗文本的能力
HTML填充复原:
class TableSystem(object):
根据单元格开始字符所在的cell定位信息进行坐标聚合,从而进行文本聚合
if text in ['', ' |
文本信息填充到单元格结束字符前
if ' | ' in tag:
你可能感兴趣的:(计算机视觉,人工智能)
- 算法学习笔记:17.蒙特卡洛算法 ——从原理到实战,涵盖 LeetCode 与考研 408 例题
在计算机科学和数学领域,蒙特卡洛算法(MonteCarloAlgorithm)以其独特的随机抽样思想,成为解决复杂问题的有力工具。从圆周率的计算到金融风险评估,从物理模拟到人工智能,蒙特卡洛算法都发挥着不可替代的作用。本文将深入剖析蒙特卡洛算法的思想、解题思路,结合实际应用场景与Java代码实现,并融入考研408的相关考点,穿插图片辅助理解,帮助你全面掌握这一重要算法。蒙特卡洛算法的基本概念蒙特卡
- 霍夫变换(Hough Transform)算法原来详解和纯C++代码实现以及OpenCV中的使用示例
点云SLAM
算法图形图像处理算法opencv图像处理与计算机视觉算法直线提取检测目标检测霍夫变换算法
霍夫变换(HoughTransform)是一种经典的图像处理与计算机视觉算法,广泛用于检测图像中的几何形状,例如直线、圆、椭圆等。其核心思想是将图像空间中的“点”映射到参数空间中的“曲线”,从而将形状检测问题转化为参数空间中的峰值检测问题。一、霍夫变换基本思想输入:边缘图像(如经过Canny边缘检测)输出:一组满足几何模型的形状(如直线、圆)关键思想:图像空间中的一个点→参数空间中的一个曲线参数空
- AI音乐模拟器:AIGC时代的智能音乐创作革命
lauo
人工智能AIGC开源前端机器人
AI音乐模拟器:AIGC时代的智能音乐创作革命引言:AIGC浪潮下的音乐创作新范式在数字化转型的浪潮中,人工智能生成内容(AIGC)正在重塑各个创意领域。音乐产业作为创意经济的重要组成部分,正经历着前所未有的变革。据最新市场研究数据显示,全球AI音乐市场规模预计将从2023年的5.8亿美元增长到2030年的26.8亿美元,年复合增长率高达24.3%。这一快速增长的市场背后,是AI音乐技术正在打破传
- 视频分析:让AI看懂动态画面
随机森林404
计算机视觉音视频人工智能microsoft
引言:动态视觉理解的革命在数字信息爆炸的时代,视频已成为最主要的媒介形式。据统计,每分钟有超过500小时的视频内容被上传到YouTube平台,而全球互联网流量的82%来自视频数据传输。面对如此海量的视频内容,传统的人工处理方式已无法满足需求,这正是人工智能视频分析技术大显身手的舞台。视频分析技术赋予机器"看懂"动态画面的能力,使其能够自动理解、解释甚至预测视频中的内容,这一突破正在彻底改变我们与视
- 目标检测(object detection)
加油吧zkf
目标检测目标检测人工智能计算机视觉
目标检测作为计算机视觉的核心技术,在自动驾驶、安防监控、医疗影像等领域发挥着不可替代的作用。本文将系统讲解目标检测的概念、原理、主流模型、常见数据集及应用场景,帮助读者构建对这一技术的完整认知。一、目标检测的核心概念目标检测(ObjectDetection)是指在图像或视频中自动定位并识别出所有感兴趣的目标的技术。它需要解决两个核心问题:分类(Classification):确定图像中每个目标的类
- 法律科技领域人工智能代理构建的十个经验教训,一位人工智能工程师通过构建、部署和维护智能代理的经验教训来优化法律工作流程的历程。
知识大胖
NVIDIAGPU和大语言模型开发教程人工智能ai
目录介绍什么是代理人?为什么它对法律如此重要?法律技术中代理用例示例-合同审查代理-法律研究代理在LegalTech中使用代理的十个教训-教训1:即使代理很酷,它们也不能解决所有问题-教训2:选择最适合您用例的框架-教训3:能够快速迭代不同的模型-教训4:从简单开始,必要时扩展-教训5:使用跟踪解决方案;您将需要它-教训6:确保跟踪成本,代理循环可能很昂贵-教训7:将控制权交给最终用户(人在环路中
- Llama-Omni会说话的人工智能“语音到语音LLM” 利用低延迟、高质量语音转语音 AI 彻底改变对话方式(教程含源码)
知识大胖
NVIDIAGPU和大语言模型开发教程llama人工智能nvidiallm
介绍“单靠技术是不够的——技术与文科、人文学科的结合,才能产生让我们心花怒放的成果。”——史蒂夫·乔布斯近年来,人机交互领域发生了重大变化,尤其是随着ChatGPT、GPT-4等大型语言模型(LLM)的出现。虽然这些模型主要基于文本,但人们对语音交互的兴趣日益浓厚,以使人机对话更加无缝和自然。然而,实现语音交互而不受语音转文本处理中常见的延迟和错误的影响仍然是一个挑战。关键字:Llama-Omni
- 什么是热力学计算?它如何帮助人工智能发展?
知识大胖
NVIDIAGPU和大语言模型开发教程人工智能量子计算
现代计算的基础是晶体管,这是一种微型电子开关,可以用它构建逻辑门,从而创建CPU或GPU等复杂的数字电路。随着技术的进步,晶体管变得越来越小。根据摩尔定律,集成电路中晶体管的数量大约每两年增加一倍。这种指数级增长使得计算技术呈指数级发展。然而,晶体管尺寸的缩小是有限度的。我们很快就会达到晶体管无法工作的阈值。此外,人工智能的进步使得对计算能力的需求比以往任何时候都更加迫切。根本问题是自然是随机的(
- 上海交大:工具增强推理agent
标题:SciMaster:TowardsGeneral-PurposeScientificAIAgentsPartI.X-MasterasFoundation-CanWeLeadonHumanity’sLastExam?来源:arXiv,2507.05241摘要人工智能代理的快速发展激发了利用它们加速科学发现的长期雄心。实现这一目标需要深入了解人类知识的前沿。因此,人类的最后一次考试(HLE)为评
- 微算法科技的前沿探索:量子机器学习算法在视觉任务中的革新应用
MicroTech2025
量子计算算法
在信息技术飞速发展的今天,计算机视觉作为人工智能领域的重要分支,正逐步渗透到我们生活的方方面面。从自动驾驶到人脸识别,从医疗影像分析到安防监控,计算机视觉技术展现了巨大的应用潜力。然而,随着视觉任务复杂度的不断提升,传统机器学习算法在处理大规模、高维度数据时遇到了计算瓶颈。在此背景下,量子计算作为一种颠覆性的计算模式,以其独特的并行处理能力和指数级增长的计算空间,为解决这一难题提供了新的思路。微算
- 中国银联豪掷1亿采购海光C86架构服务器
信创新态势
海光芯片C86国产芯片海光信息
近日,中国银联国产服务器采购大单正式敲定,基于海光C86架构的服务器产品中标,项目金额超过1亿元。接下来,C86服务器将用于支撑中国银联的虚拟化、大数据、人工智能、研发测试等技术场景,进一步提升其业务处理能力、用户服务效率和信息安全水平。作为我国重要的银行卡组织和金融基础设施,中国银联在全球183个国家和地区设有银联受理网络,境内外成员机构超过2600家,是世界三大银行卡品牌之一。此次中国银联发力
- AI人工智能浪潮中文心一言的独特优势
AI人工智能浪潮中文心一言的独特优势:为什么它是中国市场的“AI主力军”?关键词:文心一言,AI大模型,中文处理,多模态融合,产业落地,安全可控,百度ERNIE摘要:在全球AI大模型浪潮中,百度文心一言(ERNIEBot)凭借“懂中文、会多模态、能落地、守规矩”的四大核心优势,成为中国市场最具竞争力的AI产品之一。本文将用“超级大脑”的比喻,从中文理解、多模态能力、产业生态融合、安全可控性四个维度
- 正义的算法迷宫—人工智能重构司法体系的技术悖论与文明试炼
一、法庭的数字化迁徙当美国威斯康星州法院采纳COMPAS算法评估被告再犯风险,当中国"智慧法院"系统年处理1.2亿件案件,司法体系正经历从石柱法典到代码裁判的范式革命。这场转型的核心驱动力是司法效率与公正的永恒张力:美国重罪案件平均审理周期达18个月,中国基层法官年人均结案357件(是德国同行的6倍),而算法能在0.3秒内完成百万份文书比对。人工智能渗透司法引发三重裂变:证据分析从经验推断转向数据
- 【python实战】不玩微博,一封邮件就能知道实时热榜,天秀吃瓜
一条coding
从实战学python人工智能pythonlinux爬虫
❤️欢迎订阅《从实战学python》专栏,用python实现办公自动化、数据可视化、人工智能等各个方向的实战案例,有趣又有用!❤️更多精品专栏简介点这里有的人金玉其表败絮其中,有的人却若彩虹般绚烂,怦然心动前言哈喽,大家好,我是一条。在生活中我是一个不太喜欢逛娱乐平台的人,抖音、快手、微博我手机里都没装,甚至微信朋友圈都不看,但是自从开始写博客,有些热度不得不蹭。所以就有了这样一个需求,能不能让微
- MCP协议:AI时代的“万能插座”如何重构IT生态与未来
MCP协议:AI时代的“万能插座”如何重构IT生态与未来在人工智能技术爆炸式发展的浪潮中,一个名为ModelContextProtocol(MCP)的技术协议正以惊人的速度重塑IT行业的底层逻辑。2024年11月由Anthropic首次发布,MCP在短短半年内获得OpenAI、谷歌、亚马逊、阿里、腾讯等全球科技巨头的支持,被业内誉为AI时代的HTTP协议或USB-C接口,正在成为连接大模型与现实世
- 《算法备案全攻略:规范与流程引领数字时代新秩序》
算法及大模型备案顾问刘老师
算法备案深度学习AIGC语言模型算法人工智能
一、算法备案:开启合规新征程(一)备案规定的起源与发展2022年国家互联网信息办公室、工业和信息化部、公安部、国家市场监督管理总局联合发布《互联网信息服务算法推荐管理规定》,自2022年3月1日起施行。此后,相关规定不断完善和演进。如国家网信办于2022年8月、10月及2023年1月先后三次公布了《境内互联网信息服务算法备案清单》。同时,2022年发布的最高人民法院《关于规范和加强人工智能司法应用
- C语言学生成绩管理系统<;自创>;(功能7有小错误,但可运行)
han_xue_feng
java
腾讯云加速企业和个人开发创新公开直播预告直播预告:07/18(周四)15:00-16:00随着人工智能与大模型的蓬勃发展,我们正步入一个由技微信实习第一天周五入职,早上早早来到了公司,发现好多人都没上班,到十点才陆陆续续有人来,办理完入职后,mentor中联夏令营遗憾没有入选不过hr的回复真的很好,辛苦啦#提前批简历挂麻了怎么办##机械制造投递记录#大数据开发的工作有点过于简单了吧sq大数据开发的
- Python 实战人工智能数学基础:推荐系统应用
AI天才研究院
AI大模型企业级应用开发实战大数据人工智能语言模型JavaPython架构设计
作者:禅与计算机程序设计艺术文章目录1.背景介绍2.核心概念与联系2.1用户画像2.2相似性计算2.2.1基于物品的相似度2.2.2基于用户的相似度2.3协同过滤算法2.3.1基于用户的协同过滤算法2.3.2基于物品的协同过滤算法2.3.3基于上下文的协同过滤算法3.核心算法原理和具体操作步骤以及数学模型公式详细讲解3.1基于用户的协同过滤算法3.2基于物品的协同过滤算法3.3混合协同过滤算法3.
- Python桌面应用开发的未来——智能化工具与大模型赋能
IronwoodStag78
开发AI智能应用,就下载InsCodeAIIDE,一键接入DeepSeek-R1满血版大模型!标题:Python桌面应用开发的未来——智能化工具与大模型赋能随着人工智能技术的飞速发展,传统软件开发模式正在被重新定义。Python作为一门功能强大且灵活的语言,在桌面应用开发领域一直占据重要地位。然而,面对日益复杂的用户需求和快速变化的技术环境,如何提升开发效率、降低开发门槛,成为开发者亟需解决的问题
- OpenCV图片操作100例:从入门到精通指南(1)
总有刁民想爱朕ha
opencv计算机视觉人工智能
OpenCV图片操作100例:从入门到精通指南本文整理了100个OpenCV实用技巧,涵盖图像处理各个领域,助你轻松掌握计算机视觉核心技能!一、入门必备:基础操作1.图像读写与显示importcv2#读取图像(BGR格式)img=cv2.imread('image.jpg')#显示图像cv2.imshow('示例图片',img)cv2.waitKey(0)#按任意键退出cv2.destroyAll
- OpenCV图片操作100例:从入门到精通指南(3)
总有刁民想爱朕ha
opencv人工智能计算机视觉
高效学习路径:1️⃣分阶段学习:入门:1-20例(基础操作)进阶:21-50例(图像处理)高级:51-100例(计算机视觉)2️⃣项目驱动学习:证件照背景替换(1-15例)停车场车位检测(30-45例)视频运动追踪(70-85例)3️⃣性能优化技巧:#使用UMat加速图像处理umat_img=cv2.UMat(img)processed=cv2.GaussianBlur(umat_img,(5,5
- OpenCV入门到精通:AI视觉处理的完整指南
AI云原生与云计算技术学院
人工智能opencv计算机视觉ai
OpenCV入门到精通:AI视觉处理的完整指南关键词:OpenCV、计算机视觉、图像预处理、目标检测、AI视觉应用摘要:本文是一份面向AI视觉爱好者的OpenCV完整学习指南。从OpenCV的核心概念讲起,结合生活案例、代码示例和项目实战,逐步拆解图像读取/显示、灰度化、边缘检测、目标检测等关键技术。无论你是想入门计算机视觉的新手,还是希望用OpenCV解决实际问题的开发者,都能通过本文掌握从理论
- CNN 猫狗识别:从理论到实战的深度解析
爱熬夜的小古
cnn深度学习人工智能
在计算机视觉领域,卷积神经网络(ConvolutionalNeuralNetwork,CNN)凭借其强大的特征提取和模式识别能力,成为图像分类任务的主流技术。猫狗识别作为经典的图像分类问题,不仅能帮助我们理解CNN的工作原理,还能为实际应用提供技术支持。本文将深入探讨CNN在猫狗识别中的应用,从理论基础到实战代码,带你全面掌握这项技术。一、CNN基础理论概述(一)CNN的核心组件卷积层:是CNN的
- OpenCV入门到精通:从基础到实战的全面指南
摘要:本文旨在为初学者和有一定经验的开发者提供OpenCV从入门到精通的全面指南。文章首先介绍了OpenCV的基本概念和安装方法,然后深入讲解了图像处理基础、特征检测与匹配、视频处理与分析等核心内容,最后通过实战案例展示了OpenCV在计算机视觉任务中的应用。关键词:OpenCV;图像处理;特征检测;视频分析;实战案例引言OpenCV(OpenSourceComputerVisionLibrary
- 深度学习实战-使用TensorFlow与Keras构建智能模型
程序员Gloria
Python超入门TensorFlowpython
深度学习实战-使用TensorFlow与Keras构建智能模型深度学习已经成为现代人工智能的重要组成部分,而Python则是实现深度学习的主要编程语言之一。本文将探讨如何使用TensorFlow和Keras构建深度学习模型,包括必要的代码实例和详细的解析。1.深度学习简介深度学习是机器学习的一个分支,使用多层神经网络来学习和表示数据中的复杂模式。其广泛应用于图像识别、自然语言处理、推荐系统等领域。
- AI产品经理需要了解的算法知识
AI劳模
人工智能产品经理AI产品经理AI产品经理入门零基础入门产品经理算法语言模型
1、自然语言生成(NLG)自然语言生成(NaturalLanguageGeneration,简称NLG)是一种人工智能技术,它的目标是将计算机的数据、逻辑或算法产生的信息转换成人类可读的自然语言文本。换句话说,NLG能让机器“学会”写文章、报告、故事或者其他任何形式的文字,就像人类作家那样。这项技术使得机器能够理解复杂的数据并将其转化为易于理解的语言,以适应不同的受众和情境。应用实例:金融报告自动
- 【Python】OpenAI API
宅男很神经
python开发语言
【Python与OpenAIAPI深度探索:从基础到未来】第一章:OpenAIAPI概览与核心概念1.1OpenAIAPI是什么?能做什么?OpenAIAPI(ApplicationProgrammingInterface,应用程序编程接口)是一套允许开发者通过编程方式访问和使用OpenAI开发的各种先进人工智能模型的服务。这些模型经过海量数据的训练,能够在多种任务上达到甚至超越人类水平。通过AP
- Python:操作 Word 对齐方式
Thomas Kant
Pythonpythonwordc#
亲爱的技术爱好者们,热烈欢迎来到Kant2048的博客!我是ThomasKant,很开心能在CSDN上与你们相遇~本博客的精华专栏:【自动化测试】【测试经验】【人工智能】【Python】Python:操作Word对齐方式详解(左对齐/右对齐/居中/两端对齐)在日常办公自动化中,我们经常需要对Word文档中的段落设置对齐方式,如左对齐、右对齐、居中、两端对齐等。本文将带你使用python-docx库
- TestCafe ➜ Playwright fixture 架构迁移指南
Thomas Kant
自动化测试playwrighttestcafetypescript测试架构
亲爱的技术爱好者们,热烈欢迎来到Kant2048的博客!我是ThomasKant,很开心能在CSDN上与你们相遇~本博客的精华专栏:【自动化测试】【测试经验】【人工智能】【Python】
- 医疗金融预测与语音识别中的模型优化及可解释性技术突破
智能计算研究中心
其他
内容概要随着人工智能技术的纵深发展,模型优化与可解释性技术正在重塑医疗诊断、金融预测及语音识别领域的应用范式。在医疗领域,基于自适应学习的动态参数调整机制,结合迁移学习的跨场景知识复用,显著提升了疾病筛查模型的泛化能力;而金融预测场景中,联邦学习框架通过分布式数据协作,在保障隐私安全的前提下,实现了风险预测模型的多维度优化。语音识别领域则依托边缘计算架构,将模型压缩技术与实时推理引擎结合,有效解决
- Java常用排序算法/程序员必须掌握的8大排序算法
cugfy
java
分类:
1)插入排序(直接插入排序、希尔排序)
2)交换排序(冒泡排序、快速排序)
3)选择排序(直接选择排序、堆排序)
4)归并排序
5)分配排序(基数排序)
所需辅助空间最多:归并排序
所需辅助空间最少:堆排序
平均速度最快:快速排序
不稳定:快速排序,希尔排序,堆排序。
先来看看8种排序之间的关系:
1.直接插入排序
(1
- 【Spark102】Spark存储模块BlockManager剖析
bit1129
manager
Spark围绕着BlockManager构建了存储模块,包括RDD,Shuffle,Broadcast的存储都使用了BlockManager。而BlockManager在实现上是一个针对每个应用的Master/Executor结构,即Driver上BlockManager充当了Master角色,而各个Slave上(具体到应用范围,就是Executor)的BlockManager充当了Slave角色
- linux 查看端口被占用情况详解
daizj
linux端口占用netstatlsof
经常在启动一个程序会碰到端口被占用,这里讲一下怎么查看端口是否被占用,及哪个程序占用,怎么Kill掉已占用端口的程序
1、lsof -i:port
port为端口号
[root@slave /data/spark-1.4.0-bin-cdh4]# lsof -i:8080
COMMAND PID USER FD TY
- Hosts文件使用
周凡杨
hostslocahost
一切都要从localhost说起,经常在tomcat容器起动后,访问页面时输入http://localhost:8088/index.jsp,大家都知道localhost代表本机地址,如果本机IP是10.10.134.21,那就相当于http://10.10.134.21:8088/index.jsp,有时候也会看到http: 127.0.0.1:
- java excel工具
g21121
Java excel
直接上代码,一看就懂,利用的是jxl:
import java.io.File;
import java.io.IOException;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import
- web报表工具finereport常用函数的用法总结(数组函数)
老A不折腾
finereportweb报表函数总结
ADD2ARRAY
ADDARRAY(array,insertArray, start):在数组第start个位置插入insertArray中的所有元素,再返回该数组。
示例:
ADDARRAY([3,4, 1, 5, 7], [23, 43, 22], 3)返回[3, 4, 23, 43, 22, 1, 5, 7].
ADDARRAY([3,4, 1, 5, 7], "测试&q
- 游戏服务器网络带宽负载计算
墙头上一根草
服务器
家庭所安装的4M,8M宽带。其中M是指,Mbits/S
其中要提前说明的是:
8bits = 1Byte
即8位等于1字节。我们硬盘大小50G。意思是50*1024M字节,约为 50000多字节。但是网宽是以“位”为单位的,所以,8Mbits就是1M字节。是容积体积的单位。
8Mbits/s后面的S是秒。8Mbits/s意思是 每秒8M位,即每秒1M字节。
我是在计算我们网络流量时想到的
- 我的spring学习笔记2-IoC(反向控制 依赖注入)
aijuans
Spring 3 系列
IoC(反向控制 依赖注入)这是Spring提出来了,这也是Spring一大特色。这里我不用多说,我们看Spring教程就可以了解。当然我们不用Spring也可以用IoC,下面我将介绍不用Spring的IoC。
IoC不是框架,她是java的技术,如今大多数轻量级的容器都会用到IoC技术。这里我就用一个例子来说明:
如:程序中有 Mysql.calss 、Oracle.class 、SqlSe
- 高性能mysql 之 选择存储引擎(一)
annan211
mysqlInnoDBMySQL引擎存储引擎
1 没有特殊情况,应尽可能使用InnoDB存储引擎。 原因:InnoDB 和 MYIsAM 是mysql 最常用、使用最普遍的存储引擎。其中InnoDB是最重要、最广泛的存储引擎。她 被设计用来处理大量的短期事务。短期事务大部分情况下是正常提交的,很少有回滚的情况。InnoDB的性能和自动崩溃 恢复特性使得她在非事务型存储的需求中也非常流行,除非有非常
- UDP网络编程
百合不是茶
UDP编程局域网组播
UDP是基于无连接的,不可靠的传输 与TCP/IP相反
UDP实现私聊,发送方式客户端,接受方式服务器
package netUDP_sc;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.Ine
- JQuery对象的val()方法执行结果分析
bijian1013
JavaScriptjsjquery
JavaScript中,如果id对应的标签不存在(同理JAVA中,如果对象不存在),则调用它的方法会报错或抛异常。在实际开发中,发现JQuery在id对应的标签不存在时,调其val()方法不会报错,结果是undefined。
- http请求测试实例(采用json-lib解析)
bijian1013
jsonhttp
由于fastjson只支持JDK1.5版本,因些对于JDK1.4的项目,可以采用json-lib来解析JSON数据。如下是http请求的另外一种写法,仅供参考。
package com;
import java.util.HashMap;
import java.util.Map;
import
- 【RPC框架Hessian四】Hessian与Spring集成
bit1129
hessian
在【RPC框架Hessian二】Hessian 对象序列化和反序列化一文中介绍了基于Hessian的RPC服务的实现步骤,在那里使用Hessian提供的API完成基于Hessian的RPC服务开发和客户端调用,本文使用Spring对Hessian的集成来实现Hessian的RPC调用。
定义模型、接口和服务器端代码
|---Model
&nb
- 【Mahout三】基于Mahout CBayes算法的20newsgroup流程分析
bit1129
Mahout
1.Mahout环境搭建
1.下载Mahout
http://mirror.bit.edu.cn/apache/mahout/0.10.0/mahout-distribution-0.10.0.tar.gz
2.解压Mahout
3. 配置环境变量
vim /etc/profile
export HADOOP_HOME=/home
- nginx负载tomcat遇非80时的转发问题
ronin47
nginx负载后端容器是tomcat(其它容器如WAS,JBOSS暂没发现这个问题)非80端口,遇到跳转异常问题。解决的思路是:$host:port
详细如下:
该问题是最先发现的,由于之前对nginx不是特别的熟悉所以该问题是个入门级别的:
? 1 2 3 4 5
- java-17-在一个字符串中找到第一个只出现一次的字符
bylijinnan
java
public class FirstShowOnlyOnceElement {
/**Q17.在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
* 1.int[] count:count[i]表示i对应字符出现的次数
* 2.将26个英文字母映射:a-z <--> 0-25
* 3.假设全部字母都是小写
*/
pu
- mongoDB 复制集
开窍的石头
mongodb
mongo的复制集就像mysql的主从数据库,当你往其中的主复制集(primary)写数据的时候,副复制集(secondary)会自动同步主复制集(Primary)的数据,当主复制集挂掉以后其中的一个副复制集会自动成为主复制集。提供服务器的可用性。和防止当机问题
mo
- [宇宙与天文]宇宙时代的经济学
comsci
经济
宇宙尺度的交通工具一般都体型巨大,造价高昂。。。。。
在宇宙中进行航行,近程采用反作用力类型的发动机,需要消耗少量矿石燃料,中远程航行要采用量子或者聚变反应堆发动机,进行超空间跳跃,要消耗大量高纯度水晶体能源
以目前地球上国家的经济发展水平来讲,
- Git忽略文件
Cwind
git
有很多文件不必使用git管理。例如Eclipse或其他IDE生成的项目文件,编译生成的各种目标或临时文件等。使用git status时,会在Untracked files里面看到这些文件列表,在一次需要添加的文件比较多时(使用git add . / git add -u),会把这些所有的未跟踪文件添加进索引。
==== ==== ==== 一些牢骚
- MySQL连接数据库的必须配置
dashuaifu
mysql连接数据库配置
MySQL连接数据库的必须配置
1.driverClass:com.mysql.jdbc.Driver
2.jdbcUrl:jdbc:mysql://localhost:3306/dbname
3.user:username
4.password:password
其中1是驱动名;2是url,这里的‘dbna
- 一生要养成的60个习惯
dcj3sjt126com
习惯
一生要养成的60个习惯
第1篇 让你更受大家欢迎的习惯
1 守时,不准时赴约,让别人等,会失去很多机会。
如何做到:
①该起床时就起床,
②养成任何事情都提前15分钟的习惯。
③带本可以随时阅读的书,如果早了就拿出来读读。
④有条理,生活没条理最容易耽误时间。
⑤提前计划:将重要和不重要的事情岔开。
⑥今天就准备好明天要穿的衣服。
⑦按时睡觉,这会让按时起床更容易。
2 注重
- [介绍]Yii 是什么
dcj3sjt126com
PHPyii2
Yii 是一个高性能,基于组件的 PHP 框架,用于快速开发现代 Web 应用程序。名字 Yii (读作 易)在中文里有“极致简单与不断演变”两重含义,也可看作 Yes It Is! 的缩写。
Yii 最适合做什么?
Yii 是一个通用的 Web 编程框架,即可以用于开发各种用 PHP 构建的 Web 应用。因为基于组件的框架结构和设计精巧的缓存支持,它特别适合开发大型应
- Linux SSH常用总结
eksliang
linux sshSSHD
转载请出自出处:http://eksliang.iteye.com/blog/2186931 一、连接到远程主机
格式:
ssh name@remoteserver
例如:
ssh [email protected]
二、连接到远程主机指定的端口
格式:
ssh name@remoteserver -p 22
例如:
ssh i
- 快速上传头像到服务端工具类FaceUtil
gundumw100
android
快速迭代用
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOExceptio
- jQuery入门之怎么使用
ini
JavaScripthtmljqueryWebcss
jQuery的强大我何问起(个人主页:hovertree.com)就不用多说了,那么怎么使用jQuery呢?
首先,下载jquery。下载地址:http://hovertree.com/hvtart/bjae/b8627323101a4994.htm,一个是压缩版本,一个是未压缩版本,如果在开发测试阶段,可以使用未压缩版本,实际应用一般使用压缩版本(min)。然后就在页面上引用。
- 带filter的hbase查询优化
kane_xie
查询优化hbaseRandomRowFilter
问题描述
hbase scan数据缓慢,server端出现LeaseException。hbase写入缓慢。
问题原因
直接原因是: hbase client端每次和regionserver交互的时候,都会在服务器端生成一个Lease,Lease的有效期由参数hbase.regionserver.lease.period确定。如果hbase scan需
- java设计模式-单例模式
men4661273
java单例枚举反射IOC
单例模式1,饿汉模式
//饿汉式单例类.在类初始化时,已经自行实例化
public class Singleton1 {
//私有的默认构造函数
private Singleton1() {}
//已经自行实例化
private static final Singleton1 singl
- mongodb 查询某一天所有信息的3种方法,根据日期查询
qiaolevip
每天进步一点点学习永无止境mongodb纵观千象
// mongodb的查询真让人难以琢磨,就查询单天信息,都需要花费一番功夫才行。
// 第一种方式:
coll.aggregate([
{$project:{sendDate: {$substr: ['$sendTime', 0, 10]}, sendTime: 1, content:1}},
{$match:{sendDate: '2015-
- 二维数组转换成JSON
tangqi609567707
java二维数组json
原文出处:http://blog.csdn.net/springsen/article/details/7833596
public class Demo {
public static void main(String[] args) { String[][] blogL
- erlang supervisor
wudixiaotie
erlang
定义supervisor时,如果是监控celuesimple_one_for_one则删除children的时候就用supervisor:terminate_child (SupModuleName, ChildPid),如果shutdown策略选择的是brutal_kill,那么supervisor会调用exit(ChildPid, kill),这样的话如果Child的behavior是gen_
|