百度飞桨202210更新的表格识别模型SLENET(Structure Location Alignment Network)。
官方给出的优化点如下: PP-LCNet:CPU 友好型轻量级骨干网络 CSP-PAN:轻量级高低层特征融合模块 SLAHead:结构与位置信息对齐的特征解码模块
在PubTabNet英文表格识别数据集上的消融实验如下:
策略
Acc
TEDS
推理速度(CPU+MKLDNN)
模型大小
TableRec-RARE
71.73%
93.88%
779ms
6.8M
+PP-LCNet
74.71%
94.37%
778ms
8.7M
+CSP-PAN
75.68%
94.72%
708ms
9.3M
+SLAHead
77.70%
94.85%
766ms
9.2M
+MergeToken
76.31%
95.89%
766ms
9.2M
在PubtabNet英文表格识别数据集上,和其他方法对比如下:
策略
Acc
TEDS
推理速度(CPU+MKLDNN)
模型大小
TableMaster
77.90%
96.12%
2144ms
253.0M
TableRec-RARE
71.73%
93.88%
779ms
6.8M
SLANet
76.31%
95.89%
766ms
9.2M
以上数据来自官方github主页。
下面详细介绍一些网络的结构
图片前处理
首先看一下前处理操作 主要的图片前处理操作包括
ResizeTableImage {'max_len': 1000, }
PaddingTableImage 'size': [1000, 1000]
NormalizeImage {
'std': [0.229, 0.224, 0.225],
'mean': [0.485, 0.456, 0.406],
'scale': '1./255.',
'order': 'hwc'
}
ToCHWImage
KeepKeys {'keep_keys': ['image', 'shape']}
从上面的配置就可以看出对图片的预处理操作,具体就不展开了。
Backbone层-CPU友好型轻量级骨干网络PP-LCNet
网络代码保存在ppocr/modeling/backbones/PPLCNet中。 主要的结构是类似典型的FPN网络,但是在细节上做了一些处理。熟悉FPN网络的同学可以直接通过下面的配置信息看到网络的结构。 PP-LCNet是结合Intel-CPU端侧推理特性而设计的轻量高性能骨干网络,该方案在图像分类任务上取得了比ShuffleNetV2、MobileNetV3、GhostNet等轻量级模型更优的“精度-速度”均衡。PP-StructureV2中,我们采用PP-LCNet作为骨干网络,表格识别模型精度从71.73%提升至72.98%;同时加载通过SSLD知识蒸馏方案训练得到的图像分类模型权重作为表格识别的预训练模型,最终精度进一步提升2.95%至74.71%。 主要的特点是:
结合了mobilenet的关键结构deepwise conv和point_wise作为基础的结构单元,减少参数
在最后的一层中采用SEnet的关键结构,用于从512层的block6中获得比较重要的通道权重。
下面的配置中,每个列表元素分别表示(卷积尺寸、输出通道、输出通道,步长,是否使用SE模块),block5和block6中选择了5*5卷积来进一步扩大感受野 主干网络是一个自上而下的,通道数量逐渐增多,感受野逐步增大,分辨率逐渐减小的主干网络。最终的输出为block3-block6,构成一个列表输出到neck层。
"blocks2":
# k, in_c, out_c, s, use_se
[[3, 16, 32, 1, False]],
"blocks3": [[3, 32, 64, 2, False], [3, 64, 64, 1, False]],
"blocks4": [[3, 64, 128, 2, False], [3, 128, 128, 1, False]],
"blocks5":
[[3, 128, 256, 2, False], [5, 256, 256, 1, False], [5, 256, 256, 1, False],
[5, 256, 256, 1, False], [5, 256, 256, 1, False], [5, 256, 256, 1, False]],
"blocks6": [[5, 256, 512, 2, True], [5, 512, 512, 1, True]]
}
Neck层-轻量级高低层特征融合模块CSP-PAN
对骨干网络提取的特征进行融合,可以有效解决尺度变化较大等复杂场景中的模型预测问题。
早期,FPN模块被提出并用于特征融合,但是它的特征融合过程仅包含单向(高->低),融合不够充分。CSP-PAN基于PAN进行改进,在保证特征融合更为充分的同时,使用CSP block、深度可分离卷积等策略减小了计算量。在表格识别场景中,我们进一步将CSP-PAN的通道数从128降低至96以降低模型大小。最终表格识别模型精度提升0.97%至75.68%,预测速度提升10%。 -----以上描述来自官方的github介绍
输入为block3-block6层的输出,输入的通道数量分别为[64,128,256,512] 输出为一个包含96个通道的feature map。网络默认采用DWlayer(也就是deepwise+pointwise层,不过这里的激活函数默认leaky_relu),用于减少参数量。 四个输入层首先各自通过一个普通1*1卷积层+BN+hardwish激活函数,将每层的输出通道数量都统一为96。 CSP-PAN网络在backbone网路的基础上进行了依次自上而下的特征融合,又进行了依次自下而上的特征融合。通过融合低级与高级信息来增强不同 scale 的特征。因为它由分离的、仅需要最小计算量的(深度可分离卷积)卷积构成,所以即使增加了额外的自下而上的融合操作,计算量也没有增加很多。
在自上而下的上采样过程采用最近邻插值法实现,比如 { b l o c k 6 上 采 样 ⊕ b l o c k 5 } → C S P l a y e r → i n n e r 3 \{block6上采样 \oplus block5\}\to CSPlayer\to inner3 { b l o c k 6 上 采 样 ⊕ b l o c k 5 } → C S P l a y e r → i n n e r 3 ; { i n n e r 3 上 采 样 ⊕ b l o c k 4 } → C S P l a y e r → i n n e r 2 \{inner3上采样\oplus block4\} \to CSPlayer\to inner2 { i n n e r 3 上 采 样 ⊕ b l o c k 4 } → C S P l a y e r → i n n e r 2 ; { i n n e r 2 上 采 样 ⊕ b l o c k 3 } → C S P l a y e r → i n n e r 1 \{inner2上采样\oplus block3\} \to CSPlayer\to inner1 { i n n e r 2 上 采 样 ⊕ b l o c k 3 } → C S P l a y e r → i n n e r 1
原本的block6的特征层保存,记为 i n n e r 4 inner4 i n n e r 4 . 这样就可以得到CSP网络中自上而下的特征列表[inner1,inner2,inner3,inner4].
这里提到的CSPLayer结构如下所示。
其中的short_conv和main_conv都是简单的 1 ∗ 1 卷 积 → B N → H a r d w i s h 激 活 1*1卷积\to BN\to Hardwish激活 1 ∗ 1 卷 积 → B N → H a r d w i s h 激 活 输出通道数量为输入的一半,用于进一步提取特征。其中main_conv输出进入一个DarknetBottleneck结构中,这个结构通过一个 1 ∗ 1 1*1 1 ∗ 1 卷积进一步压缩特征,然后通过一个deepwise+pointwise结构,其中deepwise的卷积尺寸为 5 ∗ 5 5*5 5 ∗ 5 ,进一步提升了特征的感受野区域。最终将main_conv和short_conv中的特征进行concat融合。 CSP结构将原来DenseNet中对于全部feature map的重复梯度计算降低了一半。
Head层-结构与位置信息对齐的特征解码模块SLAHead
TableRec-RARE的TableAttentionHead如下图a所示,TableAttentionHead在执行完全部step的计算后拿到最终隐藏层状态表征(hiddens),随后hiddens经由SDM(Structure Decode Module)和CLDM(Cell Location Decode Module)模块生成全部的表格结构token和单元格坐标。但是这种设计忽略了单元格token和坐标之间一一对应的关系。 PP-StructureV2中,我们设计SLAHead模块,对单元格token和坐标之间做了对齐操作,如下图b所示。在SLAHead中,每一个step的隐藏层状态表征会分别送入SDM和CLDM来得到当前step的token和坐标,每个step的token和坐标输出分别进行concat得到表格的html表达和全部单元格的坐标。此外,考虑到表格识别模型的单元格准确率依赖于表格结构的识别准确,我们将损失函数中表格结构分支与单元格定位分支的权重比从1:1提升到8:1,并使用收敛更稳定的Smoothl1 Loss替换定位分支中的MSE Loss。最终模型精度从75.68%提高至77.7%。
上述内容来自官方介绍
网络的核心部分是一个 G R U C e l l GRUCell G R U C e l l 这是一个典型的RNN网络结构单元。因此预测表格结构任务是一个预测xml元素序列的任务。
只采用Head层的最后一层输出作为head层的输入。因此输入为[B,C,H,W]的特征图,通过转换轴等方式变为[B,H*W,C],这样的序列就变为[B,T,C]的输入,可以将第二个轴看为是时间片,每个时间片的特征为C-embedding。
那么怎么体现输入的注意力机制呢? 通过下面的结构实现,假设每个时间可能的输出xml元素类型有N个分类选项。
colspan="2"
colspan="3"
rowspan="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"
对于输入input为[B,T,C],这里C为96;前一刻的隐藏层pre_hidden为[B,H],其中H为隐藏层的输出通道数量,这里设置为256。那么通过线性结构将输入input转为[B,T,256],实现隐藏层和输入层的通道统一,然后通过一系列的 线 性 组 合 + 激 活 组 合 + s o f t m a x 组 合 线性组合+激活组合+softmax组合 线 性 组 合 + 激 活 组 合 + s o f t m a x 组 合 得到每个时间片t对于当前预测序列的重要程度,通过矩阵乘法实现注意力机制,最终输出的维度为[B,C],其中C通道的特征可以看成是通过对T个时间片(也就是H*W个特征图元素)进行了权重筛选之后的得到的最终特征。这个特征并不是GRUCell的输入,这个特征需要concat前一个时刻的预测输出元素的one_hot结果,序列预测输出的one_hot表征为[B,N],因此得到的[B,C+N]才是GRU的输入。
再来重申一遍,GRU的输入有两个,一个是前面提到的[B,C+N]的输入,这个输入既包含了图片特征图的注意力机制输入又包括上一个时间片的预测输入;另一个是上一个时间片的隐藏层输出[B,H]。GRU的输出为当前的隐藏层cur_hidden,维度为[B,H]以及一个当前序列输出output,维度也是[B,H]。
输出output通过两个线性层可以得到[B.N]结构的序列预测输出;也可以通过两个线性层得到[B,8]的单元格坐标输出。这样就得到最终需要的xml结构信息和单元格坐标信息。 对于非训练任务来说,输出output通过两个线性结构转为[B,N],然后通过argmax得到概率最大的那个index作为预测结果,接着通过one_hot编码转为下一个时间片的预测输入; 对于训练任务来说,直接采用GT的对应xml元素的one_hot_enbedding作为下一个时间片的预测输入。
损失函数
损失函数有两个,一个是预测的结构序列T中每个位置的预测损失,假设每个元素的可能值有N个,对于每个位置而言这就是一个多分类任务,因此采用分类损失函数交叉熵损失来计算,取序列元素的损失均值作为最终的structure_los。 第二个损失是每个单元格的坐标预测,这是一个回归任务,因此可以用回归任务的损失函数smooth L1 loss来计算。
最终的损失为两者的权重和
后处理
后处理decoder 后处理的输入为一个dict是来自SLAhead输出outputs. preds[‘structure_probs’]为一个列表[B,T,N],B为batchsize,T为序列预测长度,N为序列元素可能值的数量,其中每个元素为预测的xml标签元素的预测概率; preds[‘loc_preds’] 对每个preds[‘structure_probs’]元素都唯一生成一个八点坐标(四角坐标),如果这个元素恰为[‘’, ‘
采用贪心策略,序列每个位置的预测值为概率最大的值对应的xml标签元素index,通过一个字典得到index对应的标签元素内容。 遍历T中的每个标签元素,如果遇到终止符,则退出,遇到忽略值,则忽略。最终输出序列的xml列表和对应位置八点坐标。
后面会有文字检测文字识别结果和表格结果的匹配过程。这里暂时忽略。
实际使用的效果
实际使用paddle给出的模型,会发现会与不存在很多跨行的表格图片,效果挺好的。但是对于发票这类图片以及一些稍微复杂一些的表格,效果并没有那么出色。还需要自行训练一下。
效果不佳的一些例子
参考文章: https://github.com/PaddlePaddle/PaddleOCR
你可能感兴趣的:(paddlepaddle,网络,人工智能)
ACNet:深度学习中的自适应卷积网络新星
郎轶诺
ACNet:深度学习中的自适应卷积网络新星项目地址:https://gitcode.com/gh_mirrors/ac/ACNet在深度学习领域,卷积神经网络(CNN)一直是图像处理和计算机视觉任务的核心技术。然而,传统的固定大小的卷积核无法灵活适应不同区域的信息密度。针对这一问题,ACNet(AdaptiveConvolutionNetwork)项目应运而生,它引入了一种新型的自适应卷积层,旨在
解决登录wandb问题
Ambition_LAO
python
选择不登录wandb来使用它,不过这意味着你将失去与wandb云平台的连接,因此不会有数据上传到wandb的服务器。仍然可以使用wandb进行本地日志记录或完全禁用它。以下是几种方式来避免登录:1.禁用wandb的联网功能:可以通过在代码中禁用wandb的网络功能,让它在本地运行而无需登录。在使用wandb.init()时设置mode参数为offline,这样wandb将在本地记录日志,而不会尝试
与机器学习的邂逅--自适应神经网络结构的深度解析
想成为高手499
机器学习与人工智能 机器学习 神经网络 人工智能
引言随着人工智能的发展,神经网络已成为许多应用领域的重要工具。自适应神经网络(AdaptiveNeuralNetworks,ANN)因其出色的学习能力和灵活性,逐渐成为研究的热点。本文将详细探讨自适应神经网络的基本概念、工作原理、关键技术、C++实现示例及其应用案例,最后展望未来的发展趋势。自适应神经网络的基本概念什么是自适应神经网络?自适应神经网络是一种能够根据输入数据的变化和环境的动态特性自动
自适应神经网络架构:原理解析与代码示例
chian-ocean
机器学习 神经网络 人工智能 深度学习
个人主页:chian-ocean文章专栏自适应神经网络结构:深入探讨与代码实现1.引言随着深度学习的不断发展,传统神经网络模型在处理复杂任务时的局限性逐渐显现。固定的网络结构和参数对于动态变化的环境和多样化的数据往往难以适应,导致了过拟合或欠拟合的问题。自适应神经网络(AdaptiveNeuralNetworks,ANN)为此提供了一种新的解决方案,它可以根据数据特征和训练情况自动调整网络结构,从
深度解析智能问答系统:如何打造精准、高效的AI对话架构?
和老莫一起学AI
人工智能 架构 自然语言处理 产品经理 语言模型 学习 ai
在人工智能的飞速发展中,智能问答系统(QA系统)逐渐成为了企业内部管理、客户服务、搜索引擎等多个领域中的关键技术。今天,我们将深入探讨一个基于大模型、自然语言处理、知识检索的智能问答系统的架构,详细介绍其技术原理、流程以及未来应用前景。一、系统整体概览在这个智能问答系统中,整个流程可以大致划分为两大部分:前端问答生成与后端离线数据处理。前端部分是用户交互的核心,通过用户的输入、关键词提取、检索和问
SimpleHelp远程管理软件 任意文件读取漏洞复现(CVE-2024-57727)(附脚本)
iSee857
漏洞复现 安全 web安全
免责申明:本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。0x01产品描述:SimpleHelp是一款远程支持和服务交付软件,它允许技术支持团队通过互联网远程访问和控制客户端计算机,以便进行故障排除、维护和提供技术支持。该软件设计用于简化远程协助过程,提高效率,并减少
大型系统中 HTTP 的优化与部署
计算机毕设定制辅导-无忧学长
# HTTP http 网络协议 网络
一、引言在当今数字化时代,大型系统的构建与运行离不开高效的网络通信。HTTP,作为超文本传输协议,在大型系统中扮演着举足轻重的角色,负责客户端与服务器之间的信息传输,是实现各类网络应用的基础。无论是电商平台的商品展示与交易、社交网络的动态分享与互动,还是在线办公系统的文件传输与协作,都依赖HTTP协议来确保数据的准确、快速传递。随着业务的不断拓展和用户量的急剧增长,大型系统面临着高并发请求、海量数
亚马逊CloudFront:一次一个HTTP请求提升网络性能
AI航海家
AWS
亚马逊CloudFront:一次一个HTTP请求提升网络性能关键字:[AmazonWebServicesre:Invent2024,亚马逊云科技,生成式AI,CloudFront,HttpRequestPerformance,CloudfrontDnsRouting,EdgeCachingArchitecture,ServerlessEdgeCompute,OriginSecurity]导读无论您
实战指南:使用Wireshark捕获并解密HTTPS数据包
md_1008
wireshark https 测试工具
在网络安全和数据分析领域,捕获和分析网络数据包是理解网络行为、诊断问题和进行安全审计的重要手段。HTTPS(HyperTextTransferProtocolSecure)作为现代Web通信的主要协议,通过SSL/TLS加密确保了数据的安全传输。然而,在某些情况下,如网络调试、安全测试或故障排除时,我们可能需要解密HTTPS数据包以查看其详细内容。本文将提供一份实战指南,教你如何使用Wiresha
基于 SpringBoot 实现多租户架构:支持应用多租户部署和管理!
π大星的日常
java 架构 spring boot java
一、概述1什么是多租户架构?多租户架构是指在一个应用中支持多个租户(Tenant)同时访问,每个租户拥有独立的资源和数据,并且彼此之间完全隔离。通俗来说,多租户就是把一个应用按照客户的需求“分割”成多个独立的实例,每个实例互不干扰。2多租户架构的优势更好地满足不同租户的个性化需求。可以降低运维成本,减少硬件、网络等基础设施的投入。节约开发成本,通过复用代码,快速上线新的租户实例。增强了系统的可扩展
PostgreSQL - pgvector 插件构建向量数据库并进行相似度查询
花千树-010
RAG 数据库 postgresql AI编程
在现代的机器学习和人工智能应用中,向量相似度检索是一个非常重要的技术,尤其是在文本、图像或其他类型的嵌入向量的操作中。本文将介绍如何在PostgreSQL中安装pgvector插件,用于存储和检索向量数据,并展示如何通过Python脚本向数据库插入向量并执行相似度查询。一、安装PostgreSQL并配置pgvector插件1.安装PostgreSQL首先,确保你已经安装了PostgreSQL。可以
AI行业高压与人才健康:纪念Felix Hill,并探讨AI代码生成工具的价值
前端
今天,我们怀着沉痛的心情悼念GoogleDeepMind研究科学家FelixHill,这位杰出的AI学者在41岁的年纪离开了我们。他的离世引发了我们对AI行业高压环境与人才健康问题的深刻反思。Felix生前曾公开表达AI行业前所未有的压力,这促使我们思考如何利用技术,例如AI代码生成器,来改善开发者的工作环境,提升效率,守护人才健康。FelixHill在自然语言处理和人工智能领域取得了令人瞩目的成
2024年AI浪潮:基础设施重构、模型演进与挑战并存
前端
2024年,人工智能领域呈现出蓬勃发展的景象,投资持续增长、基础设施发生变革,技术应用加速落地。各大科技公司和初创企业纷纷涌入,试图在这一充满机遇的领域分一杯羹。本文将深入探讨2024年AI发展的三大核心趋势:AI基础设施的重构、模型发展的新趋势以及AI发展带来的挑战,并重点关注企业如何从AI投资中获得回报,以及AI智能体技术的巨大潜力。选择合适的AI代码生成器将成为企业提升效率的关键。AI基础设
迈拓加入OurBMC,携手探索BMC定制化创新应用
程序员
近日,深圳市迈拓诚悦科技有限公司(以下简称“迈拓”)签署CLA(ContributorLicenseAgreement,贡献者许可协议),宣布正式加入OurBMC社区。迈拓自2012年成立以来,始终秉持创新精神,专注于网络安全/通信、物联网、工业安全硬件平台的研发与创新,已发展成为行业领先的网络设备和解决方案提供商。其凭借强大的研发实力和对市场需求的敏锐洞察,不断地为全球各地的数据中心、信息中心、
【Java多线程】断点续传 如何使用Java多线程下载网络文件
java多线程
如何使用Java多线程下载网络文件,并实现断点续传在现代网络应用中,多线程下载是一种常见的技术,它可以显著提高下载速度并提供更好的用户体验。本篇文章将介绍如何使用Java实现多线程下载,并结合项目中的代码作为示例进行讲解。1.多线程下载的基本原理多线程下载的基本思想是将一个文件分成多个部分,每个部分由一个线程独立下载,最后将这些部分合并成完整的文件。这样可以充分利用带宽和计算资源,提高下载速度。使
直播预告丨精度优于AlphaFold,基于深度学习实现生物大分子及其互作的三维结构预测
「MeetAI4S」系列直播第6期将于1月15日19:00准时开播,HyperAI超神经有幸邀请到了南开大学统计与数据科学学院教授郑伟,他本次分享的主题是「AlphaFold3王座未稳,来自学术界的反超:基于深度学习的生物大分子及其互作的三维结构预测」。蛋白质的功能取决于其独特的三维结构,近年来,基于深度学习等人工智能技术的蛋白质结构预测发展迅猛,AlphaFold甚至获得了2024年诺贝尔化学奖
Gary Marcus 2025年AI预测:AGI仍在路上,务实发展才是王道
前端
人工智能领域发展日新月异,各种预测层出不穷。知名人工智能专家GaryMarcus近期发布了对2025年AI发展趋势的25项预测,其中最引人注目的是:AGI(通用人工智能)不会在2025年出现。这与一些过于乐观甚至盲目乐观的预测形成了鲜明对比。本文将深入解读Marcus的预测,探讨其背后的逻辑,并结合当前AI技术发展现状进行分析。Marcus的预测整体基调是谨慎乐观,他既肯定了AI在特定领域的进步,
数据驱动销售预测的未来:ScriptEcho赋能高效决策
前端
在瞬息万变的商业环境中,准确的销售预测是企业制定有效销售策略、实现业绩增长的基石。传统的销售预测方法往往依赖于人工分析和复杂的电子表格,效率低下,难以应对市场变化的快速冲击。然而,随着大数据的兴起和人工智能技术的飞速发展,数据驱动决策正成为现代企业提升竞争力的关键。本文将探讨销售预测面临的挑战与机遇,并重点介绍ScriptEcho如何通过AI赋能,提升销售预测的准确性和效率,助力企业实现数据驱动增
人类为何追求AGI?一个AI代码生成工具的思考
前端
近年来,“AI写代码工具”的出现,无疑为软件开发领域带来了革命性的变化。而我们今天要探讨的,是关于人类对通用人工智能(AGI)的追求,以及这与AI辅助开发工具之间微妙的联系。文章开头就抛出了一个尖锐的问题:人类为何如此痴迷于AGI,而非将更多精力放在改善人类生活本身?文章作者表达了对AGI发展方向的担忧。他认为,目前对AGI的追求,更多地体现在创造能够取代人类的超级智能上,例如“少数派报告式”的行
AI代码生成工具的未来:杨立昆的洞见与AI革命
前端
近年来,人工智能(AI)领域取得了令人瞩目的进展,特别是以大型语言模型为代表的AI技术,在自然语言处理、图像生成等领域展现出强大的能力。然而,深度学习先驱杨立昆(YannLeCun)却对现有的AI系统提出了尖锐的批评,他认为目前的AI系统“理解能力远不如猫”,缺乏对真实世界的理解和常识。这引发了人们对AI未来发展方向的思考,也为我们探讨AI代码生成工具,以及AI技术对人类社会的影响提供了新的视角。
零售业的AI赋能与前端开发效率革命:ScriptEcho 的助力
前端
零售业正经历着前所未有的数字化转型,但同时也面临着巨大的挑战。库存管理混乱、个性化客户体验不足等问题,严重制约着零售企业的盈利能力。而人工智能(AI)的兴起,为解决这些问题提供了新的思路。通过AI驱动的实时库存管理和客户行为分析,零售企业可以显著提升运营效率和客户满意度。然而,构建这些AI赋能的零售应用,需要强大的前端开发能力,这正是AI代码生成器ScriptEcho能够发挥关键作用的地方。AI赋
AI赋能:2024年,如何用AI提升效率,我的15个实用技巧及2025年展望
前端
2024年,人工智能技术突飞猛进,深刻地改变了我们的工作方式。作为一名科技领域的作者,我亲身体验了AI带来的效率提升。过去一年,我探索了各种AI工具,并将其应用于我的日常工作中,显著缩短了工作流程,节省了大量时间。本文将分享我在2024年使用AI提升生产力的15个实用技巧,并展望2025年AI可能带来的更多可能性。AI赋能下的高效创作:从代码到图像,全方位提升首先,AI极大地辅助了我的编程工作。对
AI时代的前端开发:技能提升与职业发展之路
前端
在瞬息万变的科技时代,个人职业发展的重要性日益凸显。提升技能,不断学习,已经不再是锦上添花,而是立足之本,是我们在竞争激烈的职场中脱颖而出的关键。而人工智能(AI)技术的快速发展,为我们提供了前所未有的机遇,特别是对于前端开发领域,AI正以前所未有的速度改变着我们的工作方式和学习方式。AI赋能前端开发:个性化学习路径前端开发领域的技术栈庞大而复杂,涵盖HTML、CSS、JavaScript、各种框
AI赋能:加速产品开发,提升公司竞争力
前端
在当今快节奏的商业环境中,产品开发效率直接关系到公司的生存和发展。然而,许多公司面临着产品开发周期长、成本高、市场响应速度慢等诸多挑战。这些挑战不仅延缓了产品上市时间,也增加了市场竞争的风险。因此,提高产品开发效率,成为企业提升核心竞争力的关键。而人工智能技术的应用,为我们提供了解决这些问题的有效途径。加速产品迭代,快速响应市场需求传统的软件开发流程往往冗长复杂,从需求分析、设计、编码到测试和上线
未来教育:AI知识库如何重塑学习体验
知识管理知识库知识库软件
在科技日新月异的今天,教育领域正经历着前所未有的变革。人工智能(AI)技术的快速发展,特别是AI知识库的广泛应用,正在重塑我们的学习体验,使之变得更加高效、个性化和智能化。本文将深入探讨AI知识库如何影响未来教育,以及它如何为学习者提供前所未有的学习体验。一、AI知识库:教育领域的智能助手AI知识库,作为结合了人工智能技术的知识管理系统,不仅能够存储和处理海量信息,还能通过自然语言处理、机器学习等
AI赋能人力资源:效率提升新路径
前端
引言人工智能(AI)正以前所未有的速度改变着各行各业,从自动驾驶到医疗诊断,AI的应用日益广泛。而人力资源领域,作为企业运营的核心环节,也正经历着AI带来的深刻变革。传统的人力资源管理面临诸多挑战,例如招聘效率低、候选人筛选精准度不足、员工培训成本高昂以及数据分析能力有限等。这些问题不仅影响企业的招聘速度和效率,也制约了企业的发展。为了应对这些挑战,越来越多的企业开始探索AI技术在人力资源领域的应
C++网络程序设计
0zxm
c++ 网络 stm32 linux
在C++网络编程中,使用BerkeleySocketsAPI是一种常见的方法来实现跨平台的TCP通信。BerkeleySocketsAPI最初是在UNIX系统上开发的,但它已经被广泛移植到其他操作系统,包括Windows。示例代码client.cpp#include#include#ifdef_WIN32#include#pragmacomment(lib,"ws2_32.lib")//Winso
golang httpClient请求,时不时EOF,怎么解决?
Ai 编码
Golang教程 golang xcode 开发语言
在使用Go的http.Client进行HTTP请求时,有时会遇到EOF错误。这个错误通常与网络连接问题或HTTP客户端的使用方式不当有关。下面我将详细解释一些常见原因以及解决方法。常见原因连接被意外关闭:EOF错误的意思是"EndOfFile",在HTTP请求中通常表示连接被提前关闭。可能是服务端关闭了连接,也可能是客户端的连接池管理不当导致的。HTTP连接复用(Keep-Alive)问题:Go的
云原生周刊:K8s 生产环境架构设计及成本分析
云计算
开源项目推荐KubeZoneNetKubeZoneNet旨在帮助监控和优化Kubernetes集群中的跨可用区(Cross-Zone)网络流量。这个项目提供了一种简便的方式来跟踪和分析Kubernetes集群中跨不同可用区的通信,帮助用户优化集群的网络架构、提高资源利用效率并减少网络延迟。通过实时监控和数据分析,KubeZoneNet能有效地识别跨可用区的网络瓶颈,并提供改进建议,以支持Kuber
2025 年 JeecgBoot AI 低代码平台白皮书
引言随着人工智能技术的快速发展和数字化转型的深入推进,企业对AI应用的需求日益旺盛。然而,传统AI开发模式存在技术门槛高、开发周期长、成本高昂等问题,难以满足企业快速迭代和敏捷开发的需求。JeecgBoot作为一款优秀的开源低代码开发平台,拥有庞大的用户群体和丰富的功能模块。为了顺应技术发展趋势,满足用户需求,JeecgBoot计划向AI低代码平台转型,打造一款集低代码开发和AI能力于一体的新一代
微信开发者验证接口开发
362217990
微信 开发者 token 验证
微信开发者接口验证。
Token,自己随便定义,与微信填写一致就可以了。
根据微信接入指南描述 http://mp.weixin.qq.com/wiki/17/2d4265491f12608cd170a95559800f2d.html
第一步:填写服务器配置
第二步:验证服务器地址的有效性
第三步:依据接口文档实现业务逻辑
这里主要讲第二步验证服务器有效性。
建一个
一个小编程题-类似约瑟夫环问题
BrokenDreams
编程
今天群友出了一题:
一个数列,把第一个元素删除,然后把第二个元素放到数列的最后,依次操作下去,直到把数列中所有的数都删除,要求依次打印出这个过程中删除的数。
&
linux复习笔记之bash shell (5) 关于减号-的作用
eksliang
linux关于减号“-”的含义 linux关于减号“-”的用途 linux关于“-”的含义 linux关于减号的含义
转载请出自出处:
http://eksliang.iteye.com/blog/2105677
管道命令在bash的连续处理程序中是相当重要的,尤其在使用到前一个命令的studout(标准输出)作为这次的stdin(标准输入)时,就显得太重要了,某些命令需要用到文件名,例如上篇文档的的切割命令(split)、还有
Unix(3)
18289753290
unix ksh
1)若该变量需要在其他子进程执行,则可用"$变量名称"或${变量}累加内容
什么是子进程?在我目前这个shell情况下,去打开一个新的shell,新的那个shell就是子进程。一般状态下,父进程的自定义变量是无法在子进程内使用的,但通过export将变量变成环境变量后就能够在子进程里面应用了。
2)条件判断: &&代表and ||代表or&nbs
关于ListView中性能优化中图片加载问题
酷的飞上天空
ListView
ListView的性能优化网上很多信息,但是涉及到异步加载图片问题就会出现问题。
具体参看上篇文章http://314858770.iteye.com/admin/blogs/1217594
如果每次都重新inflate一个新的View出来肯定会造成性能损失严重,可能会出现listview滚动是很卡的情况,还会出现内存溢出。
现在想出一个方法就是每次都添加一个标识,然后设置图
德国总理默多克:给国人的一堂“震撼教育”课
永夜-极光
教育
http://bbs.voc.com.cn/topic-2443617-1-1.html德国总理默多克:给国人的一堂“震撼教育”课
安吉拉—默克尔,一位经历过社会主义的东德人,她利用自己的博客,发表一番来华前的谈话,该说的话,都在上面说了,全世界想看想传播——去看看默克尔总理的博客吧!
德国总理默克尔以她的低调、朴素、谦和、平易近人等品格给国人留下了深刻印象。她以实际行动为中国人上了一堂
关于Java继承的一个小问题。。。
随便小屋
java
今天看Java 编程思想的时候遇见一个问题,运行的结果和自己想想的完全不一样。先把代码贴出来!
//CanFight接口
interface Canfight {
void fight();
}
//ActionCharacter类
class ActionCharacter {
public void fight() {
System.out.pr
23种基本的设计模式
aijuans
设计模式
Abstract Factory:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 Adapter:将一个类的接口转换成客户希望的另外一个接口。A d a p t e r模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 Bridge:将抽象部分与它的实现部分分离,使它们都可以独立地变化。 Builder:将一个复杂对象的构建与它的表示分离,使得同
《周鸿祎自述:我的互联网方法论》读书笔记
aoyouzi
读书笔记
从用户的角度来看,能解决问题的产品才是好产品,能方便/快速地解决问题的产品,就是一流产品.
商业模式不是赚钱模式
一款产品免费获得海量用户后,它的边际成本趋于0,然后再通过广告或者增值服务的方式赚钱,实际上就是创造了新的价值链.
商业模式的基础是用户,木有用户,任何商业模式都是浮云.商业模式的核心是产品,本质是通过产品为用户创造价值.
商业模式还包括寻找需求
JavaScript动态改变样式访问技术
百合不是茶
JavaScript style属性 ClassName属性
一:style属性
格式:
HTML元素.style.样式属性="值";
创建菜单:在html标签中创建 或者 在head标签中用数组创建
<html>
<head>
<title>style改变样式</title>
</head>
&l
jQuery的deferred对象详解
bijian1013
jquery deferred对象
jQuery的开发速度很快,几乎每半年一个大版本,每两个月一个小版本。
每个版本都会引入一些新功能,从jQuery 1.5.0版本开始引入的一个新功能----deferred对象。
&nb
淘宝开放平台TOP
Bill_chen
C++ c 物流 C#
淘宝网开放平台首页:http://open.taobao.com/
淘宝开放平台是淘宝TOP团队的产品,TOP即TaoBao Open Platform,
是淘宝合作伙伴开发、发布、交易其服务的平台。
支撑TOP的三条主线为:
1.开放数据和业务流程
* 以API数据形式开放商品、交易、物流等业务;
&
【大型网站架构一】大型网站架构概述
bit1129
网站架构
大型互联网特点
面对海量用户、海量数据
大型互联网架构的关键指标
高并发
高性能
高可用
高可扩展性
线性伸缩性
安全性
大型互联网技术要点
前端优化
CDN缓存
反向代理
KV缓存
消息系统
分布式存储
NoSQL数据库
搜索
监控
安全
想到的问题:
1.对于订单系统这种事务型系统,如
eclipse插件hibernate tools安装
白糖_
Hibernate
eclipse helios(3.6)版
1.启动eclipse 2.选择 Help > Install New Software...> 3.添加如下地址:
http://download.jboss.org/jbosstools/updates/stable/helios/ 4.选择性安装:hibernate tools在All Jboss tool
Jquery easyui Form表单提交注意事项
bozch
jquery easyui
jquery easyui对表单的提交进行了封装,提交的方式采用的是ajax的方式,在开发的时候应该注意的事项如下:
1、在定义form标签的时候,要将method属性设置成post或者get,特别是进行大字段的文本信息提交的时候,要将method设置成post方式提交,否则页面会抛出跨域访问等异常。所以这个要
Trie tree(字典树)的Java实现及其应用-统计以某字符串为前缀的单词的数量
bylijinnan
java实现
import java.util.LinkedList;
public class CaseInsensitiveTrie {
/**
字典树的Java实现。实现了插入、查询以及深度优先遍历。
Trie tree's java implementation.(Insert,Search,DFS)
Problem Description
Igna
html css 鼠标形状样式汇总
chenbowen00
html css
css鼠标手型cursor中hand与pointer
Example:CSS鼠标手型效果 <a href="#" style="cursor:hand">CSS鼠标手型效果</a><br/>
Example:CSS鼠标手型效果 <a href="#" style=&qu
[IT与投资]IT投资的几个原则
comsci
it
无论是想在电商,软件,硬件还是互联网领域投资,都需要大量资金,虽然各个国家政府在媒体上都给予大家承诺,既要让市场的流动性宽松,又要保持经济的高速增长....但是,事实上,整个市场和社会对于真正的资金投入是非常渴望的,也就是说,表面上看起来,市场很活跃,但是投入的资金并不是很充足的......
 
oracle with语句详解
daizj
oracle with with as
oracle with语句详解 转
在oracle中,select 查询语句,可以使用with,就是一个子查询,oracle 会把子查询的结果放到临时表中,可以反复使用
例子:注意,这是sql语句,不是pl/sql语句, 可以直接放到jdbc执行的
----------------------------------------------------------------
hbase的简单操作
deng520159
数据库 hbase
近期公司用hbase来存储日志,然后再来分析 ,把hbase开发经常要用的命令找了出来.
用ssh登陆安装hbase那台linux后
用hbase shell进行hbase命令控制台!
表的管理
1)查看有哪些表
hbase(main)> list
2)创建表
# 语法:create <table>, {NAME => <family&g
C语言scanf继续学习、算术运算符学习和逻辑运算符
dcj3sjt126com
c
/*
2013年3月11日20:37:32
地点:北京潘家园
功能:完成用户格式化输入多个值
目的:学习scanf函数的使用
*/
# include <stdio.h>
int main(void)
{
int i, j, k;
printf("please input three number:\n"); //提示用
2015越来越好
dcj3sjt126com
歌曲
越来越好
房子大了电话小了 感觉越来越好
假期多了收入高了 工作越来越好
商品精了价格活了 心情越来越好
天更蓝了水更清了 环境越来越好
活得有奔头人会步步高
想做到你要努力去做到
幸福的笑容天天挂眉梢 越来越好
婆媳和了家庭暖了 生活越来越好
孩子高了懂事多了 学习越来越好
朋友多了心相通了 大家越来越好
道路宽了心气顺了 日子越来越好
活的有精神人就不显
java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Tim
feiteyizu
mysql
数据表中有记录的time字段(属性为timestamp)其值为:“0000-00-00 00:00:00”
程序使用select 语句从中取数据时出现以下异常:
java.sql.SQLException:Value '0000-00-00' can not be represented as java.sql.Date
java.sql.SQLException: Valu
Ehcache(07)——Ehcache对并发的支持
234390216
并发 ehcache 锁 ReadLock WriteLock
Ehcache对并发的支持
在高并发的情况下,使用Ehcache缓存时,由于并发的读与写,我们读的数据有可能是错误的,我们写的数据也有可能意外的被覆盖。所幸的是Ehcache为我们提供了针对于缓存元素Key的Read(读)、Write(写)锁。当一个线程获取了某一Key的Read锁之后,其它线程获取针对于同
mysql中blob,text字段的合成索引
jackyrong
mysql
在mysql中,原来有一个叫合成索引的,可以提高blob,text字段的效率性能,
但只能用在精确查询,核心是增加一个列,然后可以用md5进行散列,用散列值查找
则速度快
比如:
create table abc(id varchar(10),context blog,hash_value varchar(40));
insert into abc(1,rep
逻辑运算与移位运算
latty
位运算 逻辑运算
源码:正数的补码与原码相同例+7 源码:00000111 补码 :00000111 (用8位二进制表示一个数)
负数的补码:
符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。 -7 源码: 10000111 ,其绝对值为00000111 取反加一:11111001 为-7补码
已知一个数的补码,求原码的操作分两种情况:
利用XSD 验证XML文件
newerdragon
java xml xsd
XSD文件 (XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。 具体使用方法和定义请参看:
http://www.w3school.com.cn/schema/index.asp
java自jdk1.5以上新增了SchemaFactory类 可以实现对XSD验证的支持,使用起来也很方便。
以下代码可用在J
搭建 CentOS 6 服务器(12) - Samba
rensanning
centos
(1)安装
# yum -y install samba
Installed:
samba.i686 0:3.6.9-169.el6_5
# pdbedit -a rensn
new password:123456
retype new password:123456
……
(2)Home文件夹
# mkdir /etc
Learn Nodejs 01
toknowme
nodejs
(1)下载nodejs
https://nodejs.org/download/ 选择相应的版本进行下载 (2)安装nodejs 安装的方式比较多,请baidu下
我这边下载的是“node-v0.12.7-linux-x64.tar.gz”这个版本 (1)上传服务器 (2)解压 tar -zxvf node-v0.12.
jquery控制自动刷新的代码举例
xp9802
jquery
1、html内容部分 复制代码代码示例: <div id='log_reload'>
<select name="id_s" size="1">
<option value='2'>-2s-</option>
<option value='3'>-3s-</option