当前位置: 首页 > news >正文

外贸网站设计模板/英文关键词seo

外贸网站设计模板,英文关键词seo,武汉网页设计与制作地址,国企网站建设的意义文章目录 16 粒子滤波16.1 背景介绍16.1.1 Particle Filter是什么?16.1.2 Patricle Filter的状态如何转移?16.1.3 如何通过采样求解Particle Filter 16.2 重要性采样16.2.1 重要性采样方法16.2.2 Sequential Importance Sampling16.2.3 Resampling16.2.4…

文章目录

  • 16 粒子滤波
    • 16.1 背景介绍
      • 16.1.1 Particle Filter是什么?
      • 16.1.2 Patricle Filter的状态如何转移?
      • 16.1.3 如何通过采样求解Particle Filter
    • 16.2 重要性采样
      • 16.2.1 重要性采样方法
      • 16.2.2 Sequential Importance Sampling
      • 16.2.3 Resampling
      • 16.2.4 采样总结——Basic Particle Filter
    • 16.3 具体算法——SIR Filter

16 粒子滤波

16.1 背景介绍

16.1.1 Particle Filter是什么?

Dynamic Model包含:

  • HMM——关注Decoding问题
  • Linear Dynamic System——关注Filtering问题
  • Patricle Filter——Nan-Linear,Nan-Gauss,关注Filtering问题

16.1.2 Patricle Filter的状态如何转移?

在HMM中有 λ = ( π , A , B ) \lambda = (\pi, A, B) λ=(π,A,B),用于表示状态转移矩阵和发射矩阵。

由于Linear Dynamic System和Particle Filter中的隐变量与观测变量连续,状态转移矩阵和发射矩阵不用矩阵A、B表示,表示为:
Z t = g ( Z t − 1 , u , ε ) ↦ A X t = h ( Z t , u , δ ) ↦ B \begin{align} Z_t & = g(Z_{t-1}, u, \varepsilon) \mapsto A \\ X_t & = h(Z_t, u, \delta) \mapsto B \end{align} ZtXt=g(Zt1,u,ε)A=h(Zt,u,δ)B
在Kalman Filter中我们假设以上两个公式均为线性,且噪声为Gauss。表示为:
Z t = A ⋅ Z t − 1 + B + ε ε ∽ N ( 0 , Q ) X t = C ⋅ Z t + D + δ δ ∽ N ( 0 , R ) \begin{align} Z_t & = A \cdot Z_{t-1} + B + \varepsilon & \varepsilon \backsim N(0, Q) \\ X_t & = C \cdot Z_t + D + \delta & \delta \backsim N(0, R) \end{align} ZtXt=AZt1+B+ε=CZt+D+δεN(0,Q)δN(0,R)

回顾:Kalman Filter通过预测+更新的方式求解Filtering问题

Step1: 求解Prediction问题
P ( Z t ∣ x 1 , … , x t − 1 ) = ∫ Z t − 1 P ( Z t ∣ Z t − 1 ) ⋅ P ( Z t − 1 ∣ x 1 , … , x t − 1 ) d Z t − 1 P(Z_{t} | x_1, \dots, x_{t-1}) = \int_{Z_{t-1}} P(Z_t | Z_{t-1}) \cdot P(Z_{t-1} | x_1, \dots, x_{t-1}) {\rm d}_{Z_{t-1}} P(Ztx1,,xt1)=Zt1P(ZtZt1)P(Zt1x1,,xt1)dZt1
Step2: 求解update问题
P ( Z t ∣ x 1 , … , x t ) ∝ P ( X t ∣ Z t ) ⋅ P ( Z t ∣ x 1 , … , x t − 1 ) P(Z_{t} | x_1, \dots, x_t) \propto P(X_t | Z_t) \cdot P(Z_t | x_1, \dots, x_{t-1}) P(Ztx1,,xt)P(XtZt)P(Ztx1,,xt1)
具体可以通过条件概率相互求解的公式求解。

而在Particle Filter中转移方程非线形非高斯,只能通过采样的方式求解。

16.1.3 如何通过采样求解Particle Filter

由于转移方程非线性非高斯,所以只能采取近似方法求解Filtering问题。这里使用Monte Carlo Method,通过采样求取期望:
P ( Z ∣ X ) → E Z ∣ X [ f ( z ) ] = ∫ Z f ( z ) ⋅ P ( Z ∣ X ) d Z ≈ 1 N ∑ i = 1 N f ( Z ( i ) ) P(Z|X) \rightarrow E_{Z|X}[f(z)] = \int_Z {f(z) \cdot P(Z|X)} {\rm d}Z \approx \frac{1}{N} \sum_{i=1}^N f(Z^{(i)}) P(ZX)EZX[f(z)]=Zf(z)P(ZX)dZN1i=1Nf(Z(i))
其中 Z ( i ) Z^{(i)} Z(i)为样本,且 Z ( 1 ) , Z ( 2 ) , … , Z ( N ) ∽ P ( Z ∣ X ) Z^{(1)}, Z^{(2)}, \dots, Z^{(N)} \backsim P(Z|X) Z(1),Z(2),,Z(N)P(ZX)

16.2 重要性采样

16.2.1 重要性采样方法

已知问题:
E [ f ( Z ) ] = ∫ f ( Z ) p ( Z ) d Z E[f(Z)] = \int f(Z) p(Z) {\rm d}Z E[f(Z)]=f(Z)p(Z)dZ
求解方法:

  1. p ( Z ) p(Z) p(Z)的分布复杂,无法直接采样,所以我们引入已知分布 q ( Z ) q(Z) q(Z) q ( Z ) q(Z) q(Z)也称为提议分布(Proposed dist):
    E [ f ( Z ) ] = ∫ f ( Z ) p ( Z ) d Z = ∫ f ( Z ) ⋅ p ( Z ) q ( Z ) ⋅ q ( Z ) d Z = 1 N ∑ i = 1 N f ( Z ( i ) ) ⋅ p ( Z ) q ( Z ) \begin{align} E[f(Z)] & = \int f(Z) p(Z) {\rm d}Z \\ & = \int f(Z) \cdot \frac{p(Z)}{q(Z)} \cdot q(Z) {\rm d}Z\\ & = \frac{1}{N} \sum_{i=1}^{N} f(Z^{(i)}) \cdot \frac{p(Z)}{q(Z)} \end{align} E[f(Z)]=f(Z)p(Z)dZ=f(Z)q(Z)p(Z)q(Z)dZ=N1i=1Nf(Z(i))q(Z)p(Z)

  2. 其中 p ( Z ) q ( Z ) \frac{p(Z)}{q(Z)} q(Z)p(Z)被称为weight,表示为 w ( i ) w^{(i)} w(i),用于表示提议分布与实际分布之间的相似度:
    E [ f ( Z ) ] = 1 N ∑ i = 1 N f ( Z ( i ) ) ⋅ w ( i ) E[f(Z)] = \frac{1}{N} \sum_{i=1}^{N} f(Z^{(i)}) \cdot w^{(i)} E[f(Z)]=N1i=1Nf(Z(i))w(i)

所以我们通过采样可以求出 f ( Z ( i ) ) f(Z^{(i)}) f(Z(i)),然后我们的目标就是求出对应的 w ( i ) w^{(i)} w(i)

16.2.2 Sequential Importance Sampling

引入SIS的原因:

  • 由于Filtering问题在递推过程中求解的是 P ( Z t ∣ X 1 : t ) P(Z_t | X_{1:t}) P(ZtX1:t),所以对应就会有 w t ( i ) = P ( Z t ∣ X 1 : t ) q ( Z t ( i ) ∣ X 1 : t ) w_t^{(i)} = \frac{P(Z_t | X_{1:t})}{q(Z_t^{(i)} | X_{1:t})} wt(i)=q(Zt(i)X1:t)P(ZtX1:t),但是随着 t t t增加,每次 w w w都要求 N N N遍,时间开销大。所以引入Sequential Importance Sampling,通过递推的方式求解 w w w w t − 1 ( i ) → w t ( i ) w_{t-1}^{(i)} \rightarrow w_t^{(i)} wt1(i)wt(i))。

推导过程:

  1. 已知:
    w t ( i ) ∝ P ( Z 1 : t ∣ X 1 : t ) q ( Z 1 : t ∣ X 1 : t ) w_t^{(i)} \propto \frac{P(Z_{1:t} | X_{1:t})}{q(Z_{1:t} | X_{1:t})} wt(i)q(Z1:tX1:t)P(Z1:tX1:t)

  2. 分解 P ( Z 1 : t ∣ X 1 : t ) P(Z_{1:t} | X_{1:t}) P(Z1:tX1:t),其中将已知量(只由观测变量构成的数据)假设为常数:
    P ( Z 1 : t ∣ X 1 : t ) = P ( Z 1 : t , X 1 : t ) P ( X 1 : t ) = 1 C ⋅ P ( X t ∣ Z 1 : t , X 1 : t − 1 ) ⋅ P ( Z t , X 1 : t − 1 ) = 1 C ⋅ P ( X t ∣ Z t ) ⋅ P ( Z t ∣ Z 1 : t − 1 , X 1 : t − 1 ) ⋅ P ( Z 1 : t − 1 , X 1 : t − 1 ) = 1 C ⋅ P ( X t ∣ Z t ) ⋅ P ( Z t ∣ Z t − 1 ) ⋅ P ( Z 1 : t − 1 , X 1 : t − 1 ) = 1 C ⋅ P ( X t ∣ Z t ) ⋅ P ( Z t ∣ Z t − 1 ) ⋅ P ( Z 1 : t − 1 ∣ X 1 : t − 1 ) ⋅ P ( X 1 : t − 1 ) = D C ⋅ P ( X t ∣ Z t ) ⋅ P ( Z t ∣ Z t − 1 ) ⋅ P ( Z 1 : t − 1 ∣ X 1 : t − 1 ) \begin{align} P(Z_{1:t} | X_{1:t}) & = \frac{P(Z_{1:t}, X_{1:t})}{P(X_{1:t})} \\ & = \frac{1}{C} \cdot P(X_t | Z_{1:t}, X_{1:t-1}) \cdot P(Z_t, X_{1:t-1}) \\ & = \frac{1}{C} \cdot P(X_t | Z_{t}) \cdot P(Z_t| Z_{1:t-1}, X_{1:t-1}) \cdot P(Z_{1:t-1}, X_{1:t-1}) \\ & = \frac{1}{C} \cdot P(X_t | Z_{t}) \cdot P(Z_t| Z_{t-1}) \cdot P(Z_{1:t-1}, X_{1:t-1}) \\ & = \frac{1}{C} \cdot P(X_t | Z_{t}) \cdot P(Z_t| Z_{t-1}) \cdot P(Z_{1:t-1}| X_{1:t-1}) \cdot P(X_{1:t-1}) \\ & = \frac{D}{C} \cdot P(X_t | Z_{t}) \cdot P(Z_t| Z_{t-1}) \cdot P(Z_{1:t-1}| X_{1:t-1}) \end{align} P(Z1:tX1:t)=P(X1:t)P(Z1:t,X1:t)=C1P(XtZ1:t,X1:t1)P(Zt,X1:t1)=C1P(XtZt)P(ZtZ1:t1,X1:t1)P(Z1:t1,X1:t1)=C1P(XtZt)P(ZtZt1)P(Z1:t1,X1:t1)=C1P(XtZt)P(ZtZt1)P(Z1:t1X1:t1)P(X1:t1)=CDP(XtZt)P(ZtZt1)P(Z1:t1X1:t1)
    通过以上推导可将 P ( Z 1 : t ∣ X 1 : t ) P(Z_{1:t} | X_{1:t}) P(Z1:tX1:t)分解为由 P ( Z 1 : t − 1 ∣ X 1 : t − 1 ) P(Z_{1:t-1}| X_{1:t-1}) P(Z1:t1X1:t1)组成的公式

  3. 分解 q ( Z 1 : t ∣ X 1 : t ) q(Z_{1:t} | X_{1:t}) q(Z1:tX1:t)
    q ( Z 1 : t ∣ X 1 : t ) = q ( Z t ∣ Z 1 : t − 1 , X 1 : t ) ⋅ q ( Z 1 : t − 1 ∣ X 1 : t ) = q ( Z t ∣ Z 1 : t − 1 , X 1 : t ) ⋅ q ( Z 1 : t − 1 ∣ X 1 : t − 1 ) \begin{align} q(Z_{1:t} | X_{1:t}) & = q(Z_t | Z_{1:t-1}, X_{1:t}) \cdot q(Z_{1:t-1}| X_{1:t}) \\ & = q(Z_t | Z_{1:t-1}, X_{1:t}) \cdot q(Z_{1:t-1}| X_{1:t-1}) \end{align} q(Z1:tX1:t)=q(ZtZ1:t1,X1:t)q(Z1:t1X1:t)=q(ZtZ1:t1,X1:t)q(Z1:t1X1:t1)

  4. 结合起来就是:
    w t ( i ) ∝ P ( Z 1 : t ∣ X 1 : t ) q ( Z 1 : t ∣ X 1 : t ) ∝ P ( X t ∣ Z t ) ⋅ P ( Z t ∣ Z t − 1 ) ⋅ P ( Z 1 : t − 1 ∣ X 1 : t − 1 ) q ( Z t ∣ Z 1 : t − 1 , X 1 : t ) ⋅ q ( Z 1 : t − 1 ∣ X 1 : t − 1 ) ∝ P ( X t ∣ Z t ) ⋅ P ( Z t ∣ Z t − 1 ) q ( Z t ∣ Z 1 : t − 1 , X 1 : t ) ⋅ w t − 1 ( i ) ∝ P ( X t ∣ Z t ) ⋅ P ( Z t ∣ Z t − 1 ) q ( Z t ∣ Z t − 1 , X 1 : t ) ⋅ w t − 1 ( i ) \begin{align} w_t^{(i)} & \propto \frac{P(Z_{1:t} | X_{1:t})}{q(Z_{1:t} | X_{1:t})} \\ & \propto \frac{P(X_t | Z_{t}) \cdot P(Z_t| Z_{t-1}) \cdot P(Z_{1:t-1}| X_{1:t-1})}{q(Z_t | Z_{1:t-1}, X_{1:t}) \cdot q(Z_{1:t-1}| X_{1:t-1})} \\ & \propto \frac{P(X_t | Z_{t}) \cdot P(Z_t| Z_{t-1})}{q(Z_t | Z_{1:t-1}, X_{1:t})} \cdot w_{t-1}^{(i)} \\ & \propto \frac{P(X_t | Z_{t}) \cdot P(Z_t| Z_{t-1})}{q(Z_t | Z_{t-1}, X_{1:t})} \cdot w_{t-1}^{(i)} \end{align} wt(i)q(Z1:tX1:t)P(Z1:tX1:t)q(ZtZ1:t1,X1:t)q(Z1:t1X1:t1)P(XtZt)P(ZtZt1)P(Z1:t1X1:t1)q(ZtZ1:t1,X1:t)P(XtZt)P(ZtZt1)wt1(i)q(ZtZt1,X1:t)P(XtZt)P(ZtZt1)wt1(i)

具体可以表示为一个算法:

条件:t-1时刻的采样已完成 → w t − 1 ( i ) \rightarrow w_{t-1}^{(i)} wt1(i)已知。

t时刻:
for i = 1 to N:
Z t ( i ) ∽ q ( Z t ∣ Z t − 1 , X 1 : t ) Z_t^{(i)} \backsim q(Z_t | Z_{t-1}, X_{1:t}) Zt(i)q(ZtZt1,X1:t) // 采样
w t ( i ) ∝ P ( X t ∣ Z t ) ⋅ P ( Z t ∣ Z t − 1 ) q ( Z t ∣ Z t − 1 , X 1 : t ) ⋅ w t − 1 ( i ) w_t^{(i)} \propto \frac{P(X_t | Z_{t}) \cdot P(Z_t| Z_{t-1})}{q(Z_t | Z_{t-1}, X_{1:t})} \cdot w_{t-1}^{(i)} wt(i)q(ZtZt1,X1:t)P(XtZt)P(ZtZt1)wt1(i) // 计算
end

w t ( i ) w_t^{(i)} wt(i)要归一化, ∑ i = 1 N w t ( i ) \sum_{i=1}^{N} w_t^{(i)} i=1Nwt(i)

但是通过SIS直接求解有一个问题: w t ( i ) w_t^{(i)} wt(i)的权值会退化——有的大有的小,随着维度上升,可能会出现如: w t ( 1 ) → 1 w_t^{(1)} \rightarrow 1 wt(1)1 w t ( N ) → 0 w_t^{(N)} \rightarrow 0 wt(N)0的情况。解决方案有:

  1. Resampling——重采样(通过别的方法重新采样)
  2. 选择一个合适的proposed dist q(Z)

16.2.3 Resampling

这里介绍一种最简单的重采样方法。

倘若第一遍的采样结果为第二列:

数据编号权重(weight)pdfcdf
x ( 1 ) x^{(1)} x(1)0.10.10.1
x ( 2 ) x^{(2)} x(2)0.10.10.2
x ( 3 ) x^{(3)} x(3)0.80.81

我们将权重假设为当前数据的概率,通过权重建立概率密度函数,并求出其分布函数,即可通过分段函数进行采样。

这样的优点是可以将数据集中在权重大的地方。

16.2.4 采样总结——Basic Particle Filter

结合:重要性采样方法+SIS+Resampling,就是简单的粒子滤波求解方案:Basic Particle Filter

16.3 具体算法——SIR Filter

Particle Filter整体就是通过每个时刻的采样迭代地计算权重,通过Monte Carlo方法预测的方法。

根据16.2.2已知迭代公式为:
w t ( i ) ∝ P ( X t ∣ Z t ) ⋅ P ( Z t ∣ Z t − 1 ) q ( Z t ∣ Z t − 1 , X 1 : t ) ⋅ w t − 1 ( i ) w_t^{(i)} \propto \frac{P(X_t | Z_{t}) \cdot P(Z_t| Z_{t-1})}{q(Z_t | Z_{t-1}, X_{1:t})} \cdot w_{t-1}^{(i)} wt(i)q(ZtZt1,X1:t)P(XtZt)P(ZtZt1)wt1(i)
其中我们令 q ( Z t ∣ Z t − 1 , X 1 : t ) q(Z_t | Z_{t-1}, X_{1:t}) q(ZtZt1,X1:t)为用于采样的分布,我们假设采样的分布就是状态转移函数:
q ( Z t ∣ Z t − 1 , X 1 : t ) = p ( Z t ∣ Z t − 1 ( i ) ) q(Z_t | Z_{t-1}, X_{1:t}) = p(Z_t | Z_{t-1}^{(i)}) q(ZtZt1,X1:t)=p(ZtZt1(i))
可以简化计算,算法可以总结为"generate and test":

  1. generate表示采样:采样的方式变成了:
    Z t ( i ) ∽ q ( Z t ∣ Z t − 1 , X 1 : t ) ⟹ Z t ( i ) ∽ p ( Z t ∣ Z t − 1 ( i ) ) Z_t^{(i)} \backsim q(Z_t | Z_{t-1}, X_{1:t}) \implies Z_t^{(i)} \backsim p(Z_t | Z_{t-1}^{(i)}) Zt(i)q(ZtZt1,X1:t)Zt(i)p(ZtZt1(i))

  2. test表示通过权重的迭代计算进行预测:变成了:
    w t ( i ) ∝ P ( X t ∣ Z t ( i ) ) ⋅ w t − 1 ( i ) w_t^{(i)} \propto P(X_t | Z_{t}^{(i)}) \cdot w_{t-1}^{(i)} wt(i)P(XtZt(i))wt1(i)

上面的方法总结下来就是:SIR Filter(Sampling-Importance-Resampling)——SIS + Resampling + ( q ( Z t ∣ Z t − 1 , X 1 : t ) = p ( Z t ∣ Z t − 1 ( i ) ) q(Z_t | Z_{t-1}, X_{1:t}) = p(Z_t | Z_{t-1}^{(i)}) q(ZtZt1,X1:t)=p(ZtZt1(i))

相关文章:

16 粒子滤波

文章目录 16 粒子滤波16.1 背景介绍16.1.1 Particle Filter是什么?16.1.2 Patricle Filter的状态如何转移?16.1.3 如何通过采样求解Particle Filter 16.2 重要性采样16.2.1 重要性采样方法16.2.2 Sequential Importance Sampling16.2.3 Resampling16.2.4…...

【appium】appium自动化入门之API(下)——两万字API长文,建议收藏

目录 Appium API 前言 1.contexts (返回当前会话中的上下文,使用后可以识别 H5 页面的控件) 2.current_context (返回当前会话的当前上下文 ) 3. context (返回当前会话的当前上下文) 4.find_e…...

开发改了接口,经常忘通知测试的解决方案!

目录 前言: Apifox解决方案 Apifox对此给出的解决方案是: 用Apifox怎么处理接口变更 接口代码实现逻辑修改 接口参数修改 前言: 在开发过程中,接口变动十分频繁,测试人员没有及时获得相关通知的情况也很普遍。这…...

Beyond Compare 4 无法打开

解决办法: 1.修改注册表。WINR呼出开始菜单,在搜索栏中输入 regedit,点击确定。 2.删除项目:\HKEY_CURRENT_USER\Software\ScooterSoftware\Beyond Compare 4\CacheId 根据这个路径找到cacheid 右击删除掉就可以...

MySQL高级数据操作

✅作者简介:热爱Java后端开发的一名学习者,大家可以跟我一起讨论各种问题喔。 🍎个人主页:Hhzzy99 🍊个人信条:坚持就是胜利! 💞当前专栏:MySQL 🥭本文内容&a…...

硬件设计电源系列文章-DCDC转换器基础知识

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 提示:这里可以添加技术概要 本文主要接着上篇,上篇文章主要讲述了LDO的相关基础知识,本节开始分享DCDC基础知识 整体架构流程 提示:这里可以添加技术整体架构 以下是…...

XdsObjects .NET 8.45.1001.0 Crack

XdsObjects 是一个工具包,允许开发人员使用 IHE XDS 和 XDS-I 配置文件开发应用程序,只需花费最少的时间和精力,因为遵守配置文件和 ebXML 规则的所有艰苦工作都由该工具包处理。 它为所有角色提供客户端和服务器支持,包括&#…...

数据安全--17--数据安全管理之数据传输

本博客地址:https://security.blog.csdn.net/article/details/131061729 一、数据传输概述 数据传输有两个主体,一个是数据发送方,另一个是数据接收方。数据在通过不可信或者较低安全性的网络进行传输时,容易发生数据被窃取、伪…...

SpringSecurity实现前后端分离登录token认证详解

目录 1. SpringSecurity概述 1.1 权限框架 1.1.1 Apache Shiro 1.1.2 SpringSecurity 1.1.3 权限框架的选择 1.2 授权和认证 1.3 SpringSecurity的功能 2.SpringSecurity 实战 2.1 引入SpringSecurity 2.2 认证 2.2.1 登录校验流程 2.2.2 SpringSecurity完整流程 2.2.…...

Vue3_ElementPlus_简单增删改查(2023)

Vue3,Element Plus简单增删改查 代码:https://github.com/xiaoming12318/Vue3_ElementPlus_CRUD.git 环境: Visual Studio Code Node.js 16.0或更高版本,https://nodejs.org/en axios 快速上手: 如果已经有16.0及…...

vue中重写并自定义console.log

0. 背景 在vue2项目中自定义console.log并输出文件名及行、列号 1. 实现 1.1 自定义console.log export default {// 输出等级: 0-no, 1-error, 2-warning, 3-info, 4-debug, 5-loglevel: 5,// 输出模式: 0-default, 1-normal, 2-randommode: 1,// 是否输出图标hasIcon: fal…...

基于OpenCV 和 Dlib 进行头部姿态估计

写在前面 工作中遇到,简单整理博文内容涉及基于 OpenCV 和 Dlib头部姿态评估的简单Demo理解不足小伙伴帮忙指正 庐山烟雨浙江潮,未到千般恨不消。到得还来别无事,庐山烟雨浙江潮。 ----《庐山烟雨浙江潮》苏轼 https://github.com/LIRUILONGS…...

24个Jvm面试题总结及答案

1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每…...

freemarker 生成前端文件

Freemarker是一种模板引擎,它允许我们在Java应用程序中分离视图和业务逻辑。在Freemarker中,List是一种非常有用的数据结构,它允许我们存储一组有序的元素。有时候,我们需要判断一个List是否为空,这在程序设计中有许多…...

Pycharm+pytest+allure打造高逼格的测试报告

目录 前言: 1、安装allure 2、安装allure-pytest 3、一个简单的用例test_simpe.py 4、在pycharm底部打开terminal 5、用allure美化报告 6、查看报告 总结: 前言: 今天分享的内容:在Pycharmpytest基础上使用allure打造高逼格…...

Mybatis-Plus中update更新操作用法

目录 一、前言二、update1、关于修改的4个条件构造器2、UpdateWrapper【用法示例】3、LambdaUpdateWrapper【用法示例】4、UpdateChainWrapper【 用法示例】5、LambdaUpdateChainWrapper【 用法示例】6、updateById 和 updateBatchById7、Mybatis-plus设置某个字段值为null的方…...

16道JVM面试题

1.jvm内存布局 1.程序计数器:当前线程正在执行的字节码的行号指示器,线程私有,唯一一个没有规定任何内存溢出错误的情况的区域。 2.Java虚拟机栈:线程私有,描述Java方法执行的内存模型,每个方法运行时都会…...

HttpRunner 接口自动化测试框架实战,打造高效测试流程

简介 2018年python开发者大会上,了解到HttpRuuner开源自动化测试框架,采用YAML/JSON格式管理用例,能录制和转换生成用例功能,充分做到用例与测试代码分离,相比excel维护测试场景数据更加简洁。在此,利用业…...

手写一个webpack插件(plugin)

熟悉 vue 和 react 的小伙伴们都知道,在执行过程中会有各种生命周期钩子,其实webpack也不例外,在使用webpack的时候,我们有时候需要在 webpack 构建流程中引入自定义的行为,这个时候就可以在 hooks 钩子中添加自己的方…...

jvm常见面试题

0x01. 内存模型以及分区,需要详细到每个区放什么。 栈区: 栈分为java虚拟机栈和本地方法栈 重点是Java虚拟机栈,它是线程私有的,生命周期与线程相同。 每个方法执行都会创建一个栈帧,用于存放局部变量表&#xff0…...

TF-A 项目的长期支持介绍

引流关键词:Armv8-A, Armv9-A, Cortex-A, Cortex-A12, Cortex-A15, Cortex-A17, Cortex-A32, Cortex-A34, Cortex-A35, Cortex-A5, Cortex-A510, Cortex-A53, Cortex-A55, Cortex-A57, Cortex-A65, Cortex-A65AE, Cortex-A7, Cortex-A710, Cortex-A715, Cortex-A72, Cortex-A7…...

企业电子招标采购系统源码java 版本 Spring Cloud + Spring Boot

项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及…...

7.Mysql 事务底层

一、事务的基础知识 mysql中的事务 分为 显式事务 和 隐式事务。 1.1 显式事务 显式事务就是我们手动开启事务,并且提交事务比如: -- 开启事务 begin; -- 执行查询语句 select *from where id = 1 for update ; -- 提交事务 commit;1.2 隐式事务 在 MySQL 中,隐式事务是…...

15.DIY可视化-拖拽设计1天搞定主流小程序-分类联动文章列表实时刷新

分类联动文章列表实时刷新 本教程均在第一节中项目启动下操作 分类联动文章列表实时刷新前言需求一:功能实现:点击首页分类,对应分类内容显示到当前页一、清空原分类界面:二. 设置选项卡三:设定展示内容字段:1.跨页面复制:文章分类组件到分类![在这里插入图片描述](https://img…...

【SpringCloud】二、服务注册发现Eureka与负载均衡Ribbon

文章目录 一、Eureka1、服务提供者与消费者2、Eureka原理分析3、搭建Eureka4、服务注册5、模拟多服务实例启动6、服务的发现 二、Ribbon1、负载均衡的原理2、源码分析3、负载均衡策略4、饥饿加载 一、Eureka 1、服务提供者与消费者 服务提供者:一次业务中&#xf…...

图形学实验(完整文件见上传)

CRect rect; this->GetClientRect(rect); pDC->Ellipse(rect); // DDALineView.cpp : implementation of the CDDALineView class // #include “stdafx.h” #include “DDALine.h” #include “DDALineDoc.h” #include “DDALineView.h” #ifdef _DEBUG #define new…...

Spark大数据处理学习笔记(3.2.1)掌握RDD算子

该文章主要为完成实训任务,详细实现过程及结果见【http://t.csdn.cn/FArNP】 文章目录 一、准备工作1.1 准备文件1. 准备本地系统文件2. 把文件上传到 1.2 启动Spark Shell1. 启动HDFS服务2. 启动Spark服务3. 启动Spark Shell 二、掌握转换算子2.1 映射算子 - map()…...

lammps初级:石墨烯、金属材料、纳米流体、热传导、多成分体系、金属、半导体材料的辐照、自建分子力场、MOFS、H2/CO2混合气体等模拟

1 LAMMPS的基础入门——初识LAMMPS是什么?能干什么?怎么用? 1.1 LAMMPS在win10和ubuntu系统的安装及使用 1.2 in文件结构格式 1.3 in文件基本语法:结合实例,讲解in文件常用命令 1.4 data文件格式 1.5 LAMMPS常见错误解…...

【MarkerDown】CSDN Markdown之时序图sequenceDiagram详解

CSDN Markdown之时序图sequenceDiagram详解 序列图 sequenceDiagram参与者与组参与者 participant拟人符号 actor别名 as组 box 消息(连线)激活/失活 activate/deactivate备注 Note循环 loop备选 Alt并行 par临界区 critical中断 break背景高亮 rect注释 %%转义字符的实体代码序…...

ReentrantLock实现原理-公平锁

在ReentrantLock实现原理(1)一节中,我们了解了ReentrantLock非公平锁的获取流程,在本节中我们来看下ReentrantLock公平锁的创建以及锁管理流程 创建ReentrantLock公平锁 创建公平锁代码如下: ReentrantLock reentrantLock new ReentrantL…...