news 2026/5/1 6:10:53

Flow-Planner疑问汇总

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Flow-Planner疑问汇总

一、Flow-Planner中ODE求解器使用的Midpoint和两倍步数的Euler法有啥区别?

#位置在torchdiffeq/torchdiffeq/_impl/fixed_grid.pyclassEuler(FixedGridODESolver):order=1def_step_func(self,func,t0,dt,t1,y0):f0=func(t0,y0,perturb=Perturb.NEXTifself.perturbelsePerturb.NONE)returndt*f0,f0classMidpoint(FixedGridODESolver):order=2def_step_func(self,func,t0,dt,t1,y0):half_dt=0.5*dt f0=func(t0,y0,perturb=Perturb.NEXTifself.perturbelsePerturb.NONE)y_mid=y0+f0*half_dtreturndt*func(t0+half_dt,y_mid),f0

写成公式,Euler(欧拉)法
xt+Δt=xt+Δt⋅v(xt,t) x_{t+\Delta t}=x_t+\Delta t \cdot v(x_t,t)xt+Δt=xt+Δtv(xt,t)

Midpoint法,分两步
xt+Δt2=xt+Δt2⋅v(xt,t)xt+Δt=xt+Δt⋅v(xt+Δt2,t+Δt2) \begin{align*} x_{t+ \frac{\Delta t}{2}}=x_t+ \frac{\Delta t}{2} \cdot v(x_t,t) \\ x_{t+ \Delta t}=x_t+ \Delta t \cdot v(x_{t+ \frac{\Delta t}{2}},t+\frac{\Delta t}{2}) \end{align*}xt+2Δt=xt+2Δtv(xt,t)xt+Δt=xt+Δtv(xt+2Δt,t+2Δt)

首先给出结论

midpoint ≠ 两倍步数的 Euler 即使在相同步长总预算下,midpoint 在“方向正确性”和稳定性上本质更强,而不是简单“多算一次”。Euler ×2 是先走到中点,再走到下一个点,而midpoint是利用中点得到的方向,从起点开始走。

原因是

第一步都一样,第二步的起点不同,两倍euler是从中点时刻(t+Δt2t+\frac{\Delta t}{2}t+2Δt)开始,midpoint从最初时刻ttt开始,所以midpoint和两倍步数的Euler是不一样的。
为啥midpoint就比Euler效果好?为啥midpoint是二阶求解器,euler就是一阶呢?
这里需要用到泰勒展开公式,
对ODE:dxdt=f(x,t)\frac{dx}{dt} = f(x,t)dtdx=f(x,t)做泰勒展开
x(t+Δt)=x(t)+Δtf(xt,t)+Δt22ddtf(xt,t)+O(Δt3) x(t+\Delta t)= x(t)+ \Delta t f(x_t,t)+ \frac{\Delta t^2}{2}\frac{d}{dt}f(x_t,t)+ O(\Delta t^3)x(t+Δt)=x(t)+Δtf(xt,t)+2Δt2dtdf(xt,t)+O(Δt3)
euler求解只用到了Δtf(xt,t)Δtf(x t,t)Δtf(xt,t),所以是一阶的。

midpoint?????

二、classifier-free guidence时的系数为啥大于1



对应代码

ifself.use_cfg:u_cond,u_uncond=torch.chunk(u,2)# the unconditioned batch is the first halfu=(1-self.cfg_weight)*u_uncond+self.cfg_weight*u_cond#速度场组合
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 5:02:36

RabbitMQ 在大数据领域的故障排查与解决方案

RabbitMQ 在大数据领域的故障排查与解决方案 关键词:RabbitMQ、大数据、消息队列、故障排查、性能优化、高可用性、消息丢失 摘要:本文深入探讨RabbitMQ在大数据环境下的常见故障及其解决方案。我们将从RabbitMQ的核心架构出发,分析其在大数据场景下面临的挑战,详细介绍故障…

作者头像 李华
网站建设 2026/5/1 5:24:21

VMware vSphere 9.0.2.0 发布 - 企业级工作负载平台

VMware vSphere 9.0.2.0 发布 - 企业级工作负载平台 ESXi 9.0 & vCenter Server 9.0 | vSphere 9.0 请访问原文链接:https://sysin.org/blog/vmware-vsphere-9/ 查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org 企业工作负…

作者头像 李华
网站建设 2026/5/1 5:25:47

K8s Nginx Pod 出现 CrashLoopBackOff?从配置排查到彻底解决

在Kubernetes日常运维中,Pod处于CrashLoopBackOff状态是高频问题之一。近期在部署Nginx Pod时,就遇到了这类故障,同时Redis Pod正常运行,说明集群环境无异常,问题聚焦在Nginx Pod自身配置。本文结合实操过程&#xff0…

作者头像 李华
网站建设 2026/4/30 21:50:09

计算机Java毕设实战-基于springboot的智慧医疗网上预约系统基于Java springboot智慧医疗问诊系统预约挂号【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/5/1 5:26:10

springboot_ssm819房屋出租系统预约看房--论文

目录具体实现截图摘要系统所用技术介绍写作提纲源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!具体实现截图 摘要 随着互联网技术的快速发展,传统的房屋租赁管理模式已无法满足现代社会的需求。基于SpringBoot和SSM&#…

作者头像 李华