TensorRT加速GPU推理:从计算图优化到部署实战
接到一个模型上线任务第一版部署后单帧推理延迟高得离谱GPU占用率却连一半都不到——这是很多做部署的同行都撞过的墙。模型本身的精度没问题性能瓶颈就卡在推理引擎对算子的调度和显存管理上。TensorRT解决的核心问题正在于此它是目前业界主流的GPU推理加速方案专门对训练好的模型做计算图优化、算子内核挑选和精度切换在GPU上把推理延迟压下去、把吞吐提上来。这篇文章写给两类人一类是刚接触部署、想搞懂TensorRT到底是什么的小白另一类是已经装过但卡在模型转换和性能调优阶段的工程师。我会从它的核心加速原理讲起把安装前的环境对齐全讲透再给出一套可复现的转换和测试流程最后附上实战中踩过的坑。1. TensorRT到底改了什么一张图、一卷层凭什么快那么多很多刚接触TensorRT的人会问PyTorch、ONNX Runtime在GPU上跑得好好的为什么换成TensorRT之后能快一截差距不是一两倍的问题有些模型在FP16下能把延迟砍到原来的三分之一甚至更多。这不是魔法而是它换了一套完全不同的推理执行逻辑。1.1 计算图优化与层融合把每次算子调用都省下来先看最核心的一点——层融合。普通推理框架执行一个卷积模型通常会按照计算图逐层调用算子的kernel读取输入、算卷积、写结果、读结果、加偏置、再写结果、再读结果、算激活函数……每一次“读”和“写”都要经过显存而显存带宽恰恰是GPU推理的常见瓶颈。TensorRT的思路是把能够合并的层揉成一个融合kernel一次读取、一次计算、一次写回。比如Conv Bias ReLU这种组合几乎每一个部署模型里都存在TensorRT会把它改写成单个融合kernel执行。在计算图中这些相邻节点的边界就被消除了。你可以把普通推理框架想象成坐公交每到一个站都要停一下、下人、上人TensorRT则是上了一辆直达专车中途不停站。层融合不是只融合一两个算子。更常见的还有Conv BN ReLU、Conv ReLU、FC BN ReLU以及残差网络里的Add ReLU遇到合适的结构它会整段吃掉。很多人第一次跑通TensorRT看到日志里写着“Fusing……”就知道自己的网络在优化阶段被扫描了一遍。1.2 Kernel自动选择与显存复用在同一个算子上抠出性能除了层融合TensorRT还会对网络里剩下的每个算子单独「选内核」。同一个卷积GPU上有几十种不同算法实现分别适配不同的输入尺寸、通道数、batch大小和Tensor Core特性。选哪种inner kernel直接影响延迟和显存占用。TensorRT build引擎时会逐个算子做一遍基准测试在它认为合理的耗时范围内挑最优实现这个过程就是日志里常见的“Tactic”选择。代价是build时间会拉长好处是推理时那个算子已经被调到了一个相对最优状态。显存方面它会在构建时做内存复用分析把多个算子的中间结果分配到同一个显存块上降低运行时显存峰值。这一手优化在小batch模型上效果特别明显。1.3 精度下调FP16与INT8的真正价值TensorRT另一个常被提及的卖点是低精度推理。GPU上部分硬件单元对半精度和整型精度的计算吞吐远高于FP32。把模型权重和激活从FP32换成FP16在支持Tensor Core的GPU上可以获得显著加速显存占用也减半。INT8量化走得更远是把激活和权重映射到8位整型。这个要谨慎使用需要校准数据来统计每层激活值的动态范围选不好很容易掉点。所以我通常的建议是先上FP16速度快、改动小、精度损失可控只有当FP16还不够、且模型冗余度足够高时再考虑INT8。每往下降一个精度档位收益和风险都在同步提高调试成本完全不是一个量级。2. 装机之前必须对齐的三个版本关系TensorRT安装本身不复杂慢慢看、按官方仓库的包名取件即可。真正让新手栽跟头的是装之前没对齐环境版本装完了导入库报错、运行引擎报错、或者干脆检测不到GPU架构。2.1 显卡驱动、CUDA和cuDNN一个都不能错位在装TensorRT之前至少先确认四样东西GPU型号、驱动版本、CUDA runtime版本、cuDNN版本。TensorRT是依赖CUDA和cuDNN的它编译出的引擎里大量算子调用了cuDNN的卷积实现和CUDA的基础库。可以在命令行里快速查nvidia-smi # 查看GPU型号和驱动版本 nvcc -V # 查看系统CUDA版本 python -c import torch; print(torch.version.cuda) # 查看PyTorch自带的CUDA版本这里有个常见的坑系统里用nvcc查到的CUDA版本和PyTorch里报出来的CUDA版本可能不一样甚至和TensorRT打包版本要求的CUDA版本也可能不一样。因为PyTorch经常自带CUDA runtime它不一定走系统CUDA。如果你用pip安装TensorRT的方式一定要确保它对应的CUDA版本和实际运行环境能对上否则会出现“库已装上但加载引擎报错”的情况。2.2 芯片架构与TensorRT版本的关系GPU不同的芯片架构支持的TensorRT能力不完全一致。老一些的Maxwell/Pascal架构对INT8量化的支持、Tensor Core的调用能力都受到限制比较新的Volta、Turing、Ampere以及后续架构FP16和INT8的加速效果才真正发挥出来。如果你的GPU架构老一些写代码时不要强行使用Tensor Core特性否则要么运行报错要么精度异常。不同TensorRT主版本对CUDA版本的支持矩阵也在动态变化。装之前要对照你用的CUDA主版本来选TensorRT包。不能用高版本TensorRT硬配很老的CUDA也不要拿新版本CUDA库去兼容非常旧的TensorRT字段对不上是常有的事。最简单的做法是直接看官方文档里的支持矩阵表找到自己环境对应的那个安装命令。2.3 安装后的自检清单装完之后可以按下面几步确认安装没问题trtexec --help # 能输出帮助信息说明可执行文件已可用然后在Python里尝试导入import tensorrt as trt print(trt.__version__)如果打印出版本号说明Python绑定已经就位。如果只是想验证GPU环境下基础功能可以用一个最简单的模型文件跑一遍trtexec --onnxmodel.onnx --saveEnginemodel.engine一旦这条命令成功说明环境链路基本是通的。很多刚接触的人不知道怎么验证安装其实只要能成功build一个简单的onnx模型安装这关就稳了。3. 从普通模型到TensorRT引擎完整转换流程安装完TensorRT之后真正的核心工作是模型转换。这一步不像装包那样点两下就完事里面牵扯到ONNX导出的细节、TensorRT构建参数的选择、以及一连串经典的“为什么我的模型转换失败”问题。3.1 第一步把PyTorch模型导出为ONNXTensorRT本身不直接用PyTorch的权重文件中间普遍通过ONNX格式过渡。导出ONNX时要注意的几个点直接决定了后面TensorRT转换顺不顺利。用PyTorch导出ONNX的标准流程大致长这样import torch import torch.nn as nn class SimpleModel(nn.Module): def __init__(self): super().__init__() self.conv nn.Conv2d(3, 16, 3, padding1) self.relu nn.ReLU() self.fc nn.Linear(16 * 8 * 8, 10) def forward(self, x): x self.relu(self.conv(x)) x x.view(x.size(0), -1) return self.fc(x) model SimpleModel().eval() dummy_input torch.randn(1, 3, 8, 8) torch.onnx.export( model, dummy_input, simple_model.onnx, input_names[input], output_names[output], dynamic_axes{input: {0: batch}, output: {0: batch}}, opset_version17, )这段代码里dynamic_axes值得特别留意如果你需要支持动态batch就把它标出来如果不需要这里可以直接删掉TensorRT构建时也会简单很多。导出的ONNX可以在 [netron] 这种工具里打开看一眼结构和输入输出能够避免很多低级错误。3.2 第二步用trtexec快速验证ONNX能不能转换了TensorRT之后我最推荐的第一个动作是先拿trtexec命令行探路而不是直接写Python代码。因为它不用写构建脚本一条命令就能告诉你这个ONNX能不能被TensorRT解析有哪些算子是不支持的默认精度下性能大概什么样。trtexec --onnxsimple_model.onnx \ --saveEnginesimple_model.engine \ --fp16--fp16表示构建FP16精度引擎。不加这个选项时默认按FP32构建。命令跑完之后注意观察日志里有没有UNSUPPORTED_NODE或者WARNING: Unused Input这种字样。前者说明有算子没被支持后者说明ONNX输入可能没有被网络用到容易导致后续运行时报输入维度不匹配。如果你只需要快速确认性能和构建可行性trtexec完全够用。但如果你想在代码里高度定制引擎比如动态shape、并行推理、多路设备管理那就得用Python API手动搭构建流程。3.3 第三步用Python API构建引擎如果工程中需要精细控制通常会舍弃trtexec改用Python脚本。构建逻辑不算复杂基本是创建builder、构建网络、配置参数、build四步走import tensorrt as trt logger trt.Logger(trt.Logger.WARNING) builder trt.Builder(logger) network builder.create_network(1 int(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH)) parser trt.OnnxParser(network, logger) with open(simple_model.onnx, rb) as f: parser.parse(f.read()) config builder.create_builder_config() config.max_workspace_size 1 30 # 1GB config.set_flag(trt.BuilderFlag.FP16) engine builder.build_engine(network, config) with open(simple_model.engine, wb) as f: f.write(engine.serialize())这个示例里还有两个事值得展开EXPLICIT_BATCH和max_workspace_size。EXPLICIT_BATCH是为了配合动态batch它把batch作为网络输入的一个显式维度而不是隐式的固定值。如果你觉得“我不需要动态batch就固定batch1”那也必须加这个flag因为现在ONNX导出的模型几乎都带有显式batch维度。max_workspace_size是给TensorRT构建时使用的临时显存上限。设得越大builder就越能放开手脚去尝试更多分析算法设得太小构建可能会失败或者选到次优实现。惯常做法是设成1GB到2GB显存紧张时再往下压。3.4 经典转换期报错与定位思路转换过程中出现过的几个高频问题我按典型程度列一张表报错/现象常见原因排查思路UNSUPPORTED_NODE: xxx某个算子没有在TensorRT支持列表里换用新版TensorRT或用plugin实现也可以改写模型结构用等价算子替代ONNX parser卡死/内存暴涨模型里循环或递归结构过于复杂给ONNX导出设置onnx简化消除常量和多余结构构建失败cannot find implementation某种精度下找不到对应kernel实现换成FP32尝试或者降低workspace限制再用FP16重试动态shape运行报错OptProfile设置不正确或没设置在builder config里显式添加optimization profile并设置min/opt/max三个档位性能远低于预期算子融合没生效执行图过于碎片化检查网络是否是标准的ConvBNReLU结构若是自定义结构较复杂的层考虑重写模型遇到问题不要第一反应就是怀疑TensorRT有bug。绝大多数情况是模型结构或精度设置的适配问题。上面那几条占了我实际踩坑的八成以上。4. 性能实测同样跑推理延迟和吞吐差在哪环境装好了、引擎也构建出来了这时候最让人兴奋的事就是跑一次性能测试。性能测试不只是看秒数还得学会看trtexec输出的那堆指标并且要和原有推理框架做公平对比。4.1 trtexec输出怎么读跑测试时可以再加几个参数模拟真实部署场景trtexec --loadEnginesimple_model.engine \ --shapesinput:1x3x8x8 \ --fp16 \ --warmUp1000 \ --iterations100这里--shapes指定输入的实际shape--warmUp是预热时间跳过显存初始化带来的性能抖动--iterations是测试迭代次数。trtexec跑完会输出不少指标重点关注这几个Latency平均延迟、p50、p90甚至p99部署看p90/p99比看平均更合理。ThroughputQPS表示每秒能处理多少帧/多少次推理。Host Latency和Device Latency前者包含拷贝和调度时间后者是纯GPU计算时间。如果两者差距很大说明瓶颈在CPU侧或数据搬运上。那行GPU Compute Time超过均值是不是正常当然正常因为GPU可能同时在处理多个并发请求计算时间和端到端延迟并不完全一致。实际部署中要同时关注“客户端拿到的端到端延迟”和“GPU计算吞吐”两者结合才能定位性能瓶颈。4.2 和PyTorch、ONNX Runtime的对比实验设计我的建议是采用「同一模型、同一输入、同一GPU、同一精度档位」的对比原则。把模型分别用以下方式跑PyTorch FP32作为baseline代表“训练时的那套逻辑”。ONNX Runtime GPU FP32代表“不经过特殊优化、但用了GPU推理框架”的情况。TensorRT FP32评估TensorRT层融合和kernel选择带来的收益。TensorRT FP16评估精度下调带来的额外收益。测试脚本的框架并不复杂先创建输入然后分别预热几次再用循环计时。注意要保证每次推理是真正被GPU执行完的而不是异步提交后没等结果。最简单可靠的办法是用cuDNN推理时同步等待比如在PyTorch里推理后调用torch.cuda.synchronize()在ONNX Runtime里确保session.run执行完再计时。下面是我常用的一张模拟汇总表具体数字会随GPU和模型差异浮动但趋势通常一致推理方式FP32延迟(ms)相对baseline延迟说明PyTorch GPU6.201.00xbaselineONNX Runtime GPU5.100.82x已有一定优化TensorRT FP323.800.61x层融合和kernel选择效果TensorRT FP162.400.39x精度下调Tensor Core这张表能直观回答“TensorRT到底快多少”的问题但要注意几点模型越小、结构越简单TensorRT的优势可能越不明显模型越大、层数越深、融合空间越大优势才越明显。而且如果模型里batch1且算子碎片化严重TensorRT调度开销占比反而高这时候不如把精力放在模型剪枝上。4.3 测速最容易忽略的三个细节第一一定要预热。GPU在第一次推理时要加载kernel、分配显存这类开销不算正常稳态延迟。不预热测出来的数通常比实际稳定状态慢二到三倍。第二使用相同输入shape。不同shape会影响融合效果和kernel选择别拿一个batch1的TensorRT去对比PyTorch batch32那个对比既不公平也没意义。第三避免GPU降频。长时间烤机或者笔记本功耗限制都会让GPU自动降频。对比实验最好分两次交替跑保证每个推理方式都在相似的频率状态下。5. 部署阶段绕不开的坑显存、动态shape、引擎序列化引擎构建成功、性能测试通过只代表实验室环境通了。正式部署到服务里还会遇到一批更“脏”的问题这里挑几个高频场景拆开讲。5.1 显存策略别再默认整卡加载用TensorRT跑推理时默认行为是把引擎需要的显存一次性划出来即使模型没那么大也会预留整个工作区。多路并发服务时每个实例各占一块很快就爆显存。部署场景下有两个调节点构建设置max_workspace_size控制构建阶段可用的临时显存。实际推理时的显存占用也和这个值相关。运行时设置显存池上限通过trt.create_execution_context后显式分配设备内存可以选用固定的一小块显存复用而不是每次请求都开新的。这能明显降低峰值显存。还有一种做法是把多个模型共享一个context。如果你部署多个小模型代码逻辑允许尽量让它们复用同一块builder否则每个模型独立构建显存碎片会很严重。5.2 动态shape和Optimization Profile动态batch是个很典型的部署需求线上流量可能同时来1个请求、8个请求、甚至32个请求。如果你在构建时固定死了batch到了线上很容易遇到“shape不匹配”的运行时报错。动态shape的正确玩法是在builder config里添加optimization profileprofile builder.create_optimization_profile() profile.set_shape(input, (1, 3, 8, 8), (4, 3, 8, 8), (16, 3, 8, 8)) config.add_optimization_profile(profile)这里三个输入分别代表min shape、opt shape和max shape。TensorRT在运行时只保证在这三个尺寸区间内能正常工作如果你设置的输入超出max运行时会直接报错。实际线上部署时我会把opt shape设成线上流量的平均并发数这样引擎的核心tactic选择会优先照顾日常出现最多的那个shape。5.3 引擎序列化和反序列化的陷阱构建一个engine可能需要几分钟甚至大型模型加INT8校准要半小时以上。如果每次服务启动都重新build那等待时间会让人崩溃。所以要把build好的引擎保存为文件运行时直接load这个想法是对的但有一个隐藏前提。TensorRT引擎和CUDA设备是绑定关系。同一份engine文件在A卡上build直接copy到B卡上load大概率会失败或者性能异常因为kernel权重和tactic选择都是针对特定GPU型号来的。正确的部署姿势是在同一GPU型号的机器上构建并保存引擎然后只把这个文件分发给同样卡的机器。如果服务器型号混杂尽量为每种型号各保存一份engine或者直接在每台机器上重新build。5.4 推理上下文和并发一个engine不等于一个线程安全TensorRT的engine对象本身是线程安全的可以多个线程共享同一个engine、分别创建各自的execution context。实际使用中常见错误是多个线程同时用一个context做推理结果出现输出错乱或者崩溃。正确写法是每个线程持有独立的IExecutionContext再配合CPU侧的输入输出buffer复用。这样既避免了线程竞争又能在多路并发场景下顶住压力。6. 精度对比工具与调参有效经验再说一个很多人问了很久的问题FP16/INT8到底掉点多少怎么确认精度还能接受6.1 用逐层对比定位精度掉点碰过三次精度掉点之后我的习惯是不再只看最后输出误差而是定位到具体是哪一段网络掉得厉害。对比工具可以选择某开源调试工具常见的是Polygraphy它可以把ONNX Runtime的逐层输出和TensorRT引擎的逐层输出对齐逐个算子比较差异。操作上可以理解为把同一个输入分别喂给ONNX Runtime和TensorRT引擎程序会自动跑一轮完整推理然后把每一层的输出张量算一遍平均绝对误差或余弦相似度。误差大的那一层就是精度风险的源头。常见的处理方式有三种把该层强制设置成FP32或者调整智能缩放策略降低量化误差再或者干脆用精度校准数据集重新统计激活分布。6.2 我的部署工作流建议踩了这么多坑之后我现在项目里固定用一套工作流先在本地小模型上用trtexec验证onnx可转换性确认没有问题后再用Python API构建正式引擎构建完先跑几次性能对比测试确认延迟达标后再接业务代码业务上引入动态shape时一定要测试最小/最优/最大三个尺寸下的稳定性最后做一次精度对比测试输出报告后再上线。整条链路里最花时间的不是构建本身而是每遇到一个报错时的定位过程。这套流程走下来绝大多数TensorRT相关的问题都能被提前拦住而不是留到线上爆炸。

相关新闻

如何免费拥有一套本地 AI 音乐生成工作台:ACE-Step UI 指南

如何免费拥有一套本地 AI 音乐生成工作台:ACE-Step UI 指南

如何免费拥有一套本地 AI 音乐生成工作台:ACE-Step UI 指南 【免费下载链接】ace-step-ui 🎵 The Ultimate Open Source Suno Alternative - Professional UI for ACE-Step 1.5 AI Music Generation. Free, local, unlimited. Stop paying for Suno! 项…

2026/10/17 10:20:01 阅读更多 →
应急工作进入现场,工业设计如何组织判断与行动

应急工作进入现场,工业设计如何组织判断与行动

以溢油应急系统为例,我们讨论工业设计如何连接监测数据、预测建议、现场调度与事后评估。沿着一次处置过程,观察设计如何组织复杂信息,也重新理解工业系统中人与技术的关系。在溢油应急现场,发现泄漏只是工作的开始。地图上可能同…

2026/10/17 10:20:01 阅读更多 →
机器学习基础:SVM支持向量机原理与实战指南

机器学习基础:SVM支持向量机原理与实战指南

开始之前先把话放在前面:这一篇是机器学习基础系列的第一篇,专门聊聊SVM——支持向量机。如果你刚接触机器学习,听人说“SVM是经典分类算法”,但翻开教程一看到“间隔最大化”“核函数”就头大,那这篇就是给你看的。我…

2026/10/17 10:19:01 阅读更多 →

最新新闻

uniapp中scroll-view与swiper联动tab切换的实战避坑指南

uniapp中scroll-view与swiper联动tab切换的实战避坑指南

1. 项目概述:为什么这个组合在实际开发中总让人“手抖”做uniapp项目时,只要页面里有带tab栏的滑动切换需求,几乎没人能绕开scroll-view和swiper这两个组件。但凡你试过用它们搭一个“左右滑动切页顶部tab高亮联动”的功能,大概率…

2026/10/17 11:03:15 阅读更多 →
2026年Midjourney教程:核心参数、垫图与局部重绘实战全解

2026年Midjourney教程:核心参数、垫图与局部重绘实战全解

2026年Midjourney AI 图像生成器使用教程详解 从2023年我第一次在Discord里敲下“/imagine”那行命令算起,Midjourney这个AI绘画工具已经陪我踩了三年的坑。说实话,每次出图成功率稳定在八成以上的感觉,和刚开始十张废九张的体验完全是两回事…

2026/10/17 11:03:15 阅读更多 →
STM32H743IIT6 TouchGFX工程实战:从CubeMX配置到丝滑GUI的完整链路

STM32H743IIT6 TouchGFX工程实战:从CubeMX配置到丝滑GUI的完整链路

简介:该资源是面向STM32H743IIT6高端微控制器的Cubemx与Touchgfx整合工程,适合已掌握HAL库基础、希望进阶嵌入式GUI开发的工程师与学生。工程以4.3英寸800480液晶屏为显示载体,完成触摸驱动移植,可构建带动画、图标与菜单的复杂交…

2026/10/17 11:03:15 阅读更多 →
Xilinx FPGA OFDM基带设计:从MATLAB到硬件实现的完整链路与避坑指南

Xilinx FPGA OFDM基带设计:从MATLAB到硬件实现的完整链路与避坑指南

简介:这份资源面向FPGA开发工程师与通信基带设计学习者,提供基于Xilinx平台的OFDM通信系统基带完整工程实现,帮助读者理解从符号映射、IFFT变换、循环前缀插入到均衡解码的全链路硬件设计思路。压缩包共227个文件,约4.4MB&#xf…

2026/10/17 11:03:15 阅读更多 →
降AI味工具实测:千笔助手与WPS AI在本科论文中的组合用法

降AI味工具实测:千笔助手与WPS AI在本科论文中的组合用法

导师在批注里写下“AI味太重,重写这一段”的时候,你的第一反应是什么?委屈、愤怒,还是心虚?我帮人改过不少本科课程论文和毕业设计,这种批注这两年几乎成了高频批评方式。问题不在于你用了什么工具&#xf…

2026/10/17 11:03:15 阅读更多 →
基于YOLO与ByteTrack的车辆识别计数系统实战:从检测到统计的完整落地

基于YOLO与ByteTrack的车辆识别计数系统实战:从检测到统计的完整落地

我在一个车流统计的测试现场遇到过很有意思的情况:模型跑出来的mAP50有0.87,检测框画得也确实准,但路口统计到的车流量和人工数出来的差了将近两成。问题不在“识别”上,而在“计数”上。这也是我想写这篇文章的原因——基于YOLO系…

2026/10/17 11:02:14 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →