精华内容
下载资源
问答
  • 模型检测学习笔记(一):绪论

    千次阅读 2018-10-15 19:09:54
    模型检测是一种用于自动验证有限状态并发系统的技术;模型检测算法通常对系统状态空间进行穷尽搜索来确定性质的真假。如果资源充足,检测过程总是以是或非终止,是表示系统满足性质,否表示不满足性质,并自动给出一...

    一、概念 

    模型检测是一种用于自动验证有限状态并发系统的技术;模型检测算法通常对系统状态空间进行穷尽搜索来确定性质的真假。如果资源充足,检测过程总是以是或非终止,是表示系统满足性质,否表示不满足性质,并自动给出一个反例。

    模型检测中最大的困难是状态空间爆炸;解决状态空间爆炸有如下方法:

    1. 符号化模型检验技术;
    2. 偏序规约技术;
    3. on-the-fly技术;
    4. 对称技术;
    5. 抽象和组合技术;

    二、模型检测的过程

    使用模型检测技术来进行系统设计的验证包含以下三个步骤:

    1、建模:第一个步骤是把设计转化为被模型检测工具接受的形式;可能由于验证时间和计算机内存的限制,还需要使用抽象技术简约不相关或不重要的细节(建模+简约)

    2、刻画:声明设计必须满足的性质。性质刻画通常以某种逻辑的形式(如时序逻辑,这种逻辑体系表示系统随着时间的变化)表示。(用一种逻辑形式来刻画一个性质)

    3、验证理想上的验证应该是完全自动的。但实际上常常需要人的帮助,其中之一就是分析结果。当得到失败结果后,通常可以给用户提供一个错误轨迹,可以把它看作检测性质的一个反例。

    三、解决状态空间爆炸的方法简介

    1、符号化模型检验技术

    1993年KL McMillan基于RE Byrant的有序二叉判定图(OBDD)来有效地表示状态迁移系统,提出了符号化模型检验,大大地提高了可有效应用模型检验技术的系统规模,使得模型检验在工业界逐步得到应用。

    用布尔公式刻画状态集合和状态对集合,用OBDD来表示这些布尔公式,使用OBDD上的布尔操作来计算谓词转换子(其不动点刻画了CTL模态子),从而使模型检验在压缩了的符号化状态空间上来验证CTL性质。

    2、偏序规约技术

    通过发掘系统中并发执行的迁移的交换性,减少本质上相同的状态,从而仅生成足以检验性质的小部分状态空间。

    3、on-the-fly技术

    把状态空间生成和检验它是否满足性质合在一起做,而不去预先生成整个状态空间,从而尽可能避免状态爆炸。

    4、对称技术

    针对由多个完全类似的进程组成的系统,利用其模型的状态空间的对称性来生成压缩的且对模型检验等价的模型。

    5、抽象和组合技术

    抽象方法通过把原来模型中与待验证性质无关的信息去掉而获得简化模型的方式来减小模型检验时问题的规模,抽象必须是保持性质的,即若简化的模型满足性质,则原来的模型亦满足该性质。

    组合方法基于分而治之的思路来缩减模型检验时问题的规模,先验证系统的构件的局部性质,然后把这些性质组合起来获得系统的全局性质。

    展开全文
  • 在符号模型检测中, 用布尔表达式表达一组状态,也就是对布尔公式中的每个变量赋值,可以计算出一个布尔值结果: f: Booln→Boolf: \ Bool^n \to Boolf: Booln→Bool 所以可以用一个类似于组合解空间树...

    1 BDT\toBDD\toOBDD

    在符号模型检测中, 用布尔表达式表达一组状态,也就是对布尔公式中的每个变量赋值,可以计算出一个布尔值结果:
    f: BoolnBoolf: \ Bool^n \to Bool

    所以可以用一个类似于组合解空间树(如果1视为选,0视为不选)的结构,即Binary Decision Tree (BDT) 来表达一个布尔公式,如下图:
    在这里插入图片描述

    图中每个结点vv有两个孩子分支,一条虚线对应low(v)low(v)表示v=0v=0,一条实线对应high(v)high(v)表示v=1v=1。如果不加任何约束,一个布尔公式可以对应多种结构的BDT。

    将BDT的所有相同的叶子结点(实际上就只有0和1)合并,就成了Binary Decision Diagram (BDD)。为了保证结构统一,再要求每一层的变量是同一个,即保证所有从根结点到叶子结点的路径上的变量顺序是固定的,就形成了Ordered Binary Decision Diagram (OBDD) ,如下图:
    在这里插入图片描述
    给定一个布尔表达式,从语法层面上来看,可以表示成合取范式(Constructive Normal Form,也称Product of Sum)、析取范式(Disjunctive Normal Form,也称Sum of Product)、电路(Circuit)等;从语义层面上来看,可以表示成真值表(Truth Table)、BDD等。

    2 Reduced OBDD

    OBDD还可以被约简,考虑两个方面:

    1. 合并同构子图,使得没有两个不同的结点有相同的变量(相同的变量在OBDD里只有可能在同一层)以及相同的low()low(\cdot)high()high(\cdot)子结点。对应于ROBDD的性质唯一性(Uniqueness)
    2. 消除冗余,使得没有结点有相同的low()low(\cdot)high()high(\cdot)子结点。对应于ROBDD的性质非冗余测试性(Non-redundant test)

    上面的OBDD合并同构子图后,如下图:
    在这里插入图片描述

    再消除冗余后,得到Reduced Ordered Binary Decision Diagram (ROBDD),如下图:
    在这里插入图片描述

    大多数时候,BDDs指的就是化简完的ROBDD。对于一个布尔表达式,在给定的变量顺序下,ROBDD是唯一的。使用ROBDD可以在线性时间内做等价性检验(Equivalence Checking),在常数时间内做满足性检验(Satisfiability Checking)

    对于同一个布尔表达式的不同变量顺序下的ROBDD,其复杂程度可能相差非常大,如下图:
    在这里插入图片描述
    寻找最佳的变量顺序是NP难问题。

    3 两OBDD上的APPLY运算

    给定BϕB\phiBψB\psi是两个OBDD,其中ϕ\phiψ\psi表示它们所表示的布尔表达式,定义两OBDD的APPLY运算:
    apply(op, Bϕ, Bψ)apply(op, \ B\phi, \ B\psi)

    其运算结果是对应与布尔表达式ϕ op ψ\phi \ op \ \psi的OBDD。

    具体计算方法是,从根节点出发,每次找两个OBDD的相对应的path的结果进行op运算,得到的就是新的OBDD上这条path的结果。
    在这里插入图片描述

    4 OBDD上的RESTRICT运算

    给定BϕB\phi是一个OBDD,定义RESTRICT运算:
    restrict(0, x, Bϕ)restrict(1, x, Bϕ) restrict(0, \ x, \ B\phi) \\ restrict(1, \ x, \ B\phi)

    其运算结果是对布尔表达式中xx进行真值指派(ϕ[0/x]\phi[0/x]ϕ[1/x]\phi[1/x])得到的新公式的OBDD。

    以指派为00为例(11也是类似的),具体计算方法是,对于所有变量是xx的结点vv,让其入边直接指向low(v)low(v),然后删除结点vv
    在这里插入图片描述

    参考阅读

    BDD MODEL CHECKING by Loïc Massin

    展开全文
  • 1 南溪最赞赏的目标检测模型——DETR 南溪最赞赏的目标检测模型是DETR, 论文名称:End-to-End Object Detection with Transformers

    1 南溪学习的目标检测模型——DETR

    南溪最赞赏的目标检测模型是DETR,

    论文名称:End-to-End Object Detection with Transformers

    1.2 decoder的必要性——实现共识

    2 数据集——COCO数据集

    COCO数据集下载地址:https://cocodataset.org/#download

    2.1 COCO数据集的介绍

    可以参考我的博文——《南溪的目标检测学习笔记》——COCO数据集的学习笔记

    3 模型实现速查表

    1. 预处理
    2. 回归任务的编码——encoding
    3. batch-size
    4. 主干网络
    5. loss函数
    6. 后处理

    3 模型设计

    3.1 预处理(norm)

    我们选择的预处理操作是:特征归一化数值归一化;(参考的是Deformable-DETR的实现)

    3.2 回归任务的编码——encoding

    接下来,需要对回归的坐标值进行编码;

    3.3 batch-size的设置——(至少是2,越大越好)

    (对于batch-size来说,网上资料的推荐值是batch_size=32

    这里我看到有两篇文献都是这样说的:

    有三AI:

    极市平台-皮特潘:

    然而,由于GPU的显存限制,我们目前无法使用32的batch-size)

    这里我使用的batch_size=4;

    3.4 主干网络的设计

    关于backbone的设计可以参考我的博文《南溪的目标检测学习笔记》——主干网络设计的学习笔记

    3.2 优化器选择——SGD or Adam

    其中,Scaled-YOLOv4使用的SGD算法,

    (这里使用SGD算法的原因,我是参考的PP-YOLO的论文:

    Under larger batch size setting, the entire network is trained with stochastic gradient descent (SGD) for 250K iterations with the initial learning rate being 0.01 and a minibatch of 192 images distributed on 8 GPUs.

    于是,我们可以使用下面的选择:

    在batch_size >= 8时,使用SGD;

    在batch_size < 8时,使用Adam。

    3.3 后处理方法——“最常见的是NMS”

    关于常见的后处理方法,可以参考我的博文,《南溪的目标检测学习笔记》——后处理方法的学习笔记

    展开全文
  • TS是一种常用的描述系统行为的模型,用结点表示状态,边表示转移关系,和KS的主要区别是状态转移是需要动作支持的,不同的动作往往对应着不同的状态转移。 1 基本概念 1.1 状态(State) 状态是在某时刻系统所具有的...

    TS是一种常用的描述系统行为的模型,用结点表示状态,边表示转移关系,和KS的主要区别是状态转移是需要动作支持的,不同的动作往往对应着不同的状态转移。

    1 基本概念

    1.1 状态(State)

    状态是在某时刻系统所具有的特性和行为。和KS一样用原子命题集合表示状态,例如{a=2,b>3}\{a=2,b>3\}

    • 对交通灯而言,灯的颜色就是状态。
    • 对顺序程序而言,变量的当前取值以及程序计数器的位置就是状态。
    • 对同步硬件电路而言,输入的若干比特以及寄存器的值就是状态。

    1.2 转移(Transition)

    转移是从一个状态到其它状态的演变。

    • 对交通灯而言,从一个颜色变成其它颜色即是它的转移。
    • 对顺序程序而言,语句的执行就是转移。
    • 对同步硬件电路而言,对于一组新的输入,寄存器内的值和输出位的改变即是转移。单一动作用希腊字母表示。

    1.3 动作(Action)

    动作这个概念一般用于通信方面的建模,不同进程之间需要进行消息传递,这时候会用到动作。

    2 数学表示

    2.1 定义

    上节课学习的KS定义为四元组,而TS定义为六元组:
    TS=(S,Act,,I,AP,L)TS=(S,Act,\to,I,AP,L)
    这之中:

    • SS是状态集合
    • ActAct是动作集合
    • S×Act×S\to \subseteq S \times Act \times S状态-动作-状态的转移关系集合
    • ISI \subseteq S是初始状态集合
    • APAP是原子命题集合
    • L:S2APL:S \to 2^{AP}是标签函数

    如果状态集SS、动作集ActAct、原子命题APAP都是有限的,那么称这个TSTS是有限的。

    2.2 基于动作的转移关系

    从状态ss经动作α\alpha转移到状态ss'记为sαss \stackrel{\alpha}{\longrightarrow} s',注意:

    • 状态ss的下一状态是非确定的(nondeterministically)
    • 动作α\alphass的下一状态是ss'这件事确定下来
    • 当初始状态集包含超过1个状态时,初始状态也是非确定的
    • 动作是为通信建模而引入的机制,其它时候可以忽略动作

    2.3 标签函数

    将状态送入标签,返回原子命题集合,即L(s)2APL(s) \in 2^{AP},注意:

    • 状态ss满足命题逻辑公式Φ\Phi,当且仅当L(s)L(s)使此公式为真。即sΦ   iff  L(s)=Φs \models \Phi \ \ \ iff \ \ L(s)=\Phi
    • 原子命题集合APAP应当选择感兴趣(即此模型需要考虑)的特征

    注意,L(s)2APL(s) \in 2^{AP}即是L(s)APL(s) \subseteq AP,课件上用的是等式左边的表述,这里也保留了下来,实际就按右边理解即可。

    3 可满足性关系\models

    对原子命题集合APAP的定值(真值指派,此处可以理解成对变量的赋值影响相关原子命题的真值,例如设置a=2a=2那么命题a<0a<0的真值为假,将所有的命题计算得真假即是对整个合取式的真值指派)是将其映射到0或1上,即μ:AP{0,1}\mu : AP \to \{0,1\},记Eval(AP)Eval(AP)APAP内命题的全部的真值指派方式组成的集合。可满足关系\models是一个二元关系(μ,ϕ)(\mu,\phi),它指示的是在μ\mu这个定值方式下,命题逻辑公式ϕ\phi的计算结果为真。显然有:

    • μtrue\mu \models true
    • μa   iff  μ(a)=1\mu \models a \ \ \ iff \ \ \mu(a)=1
    • μ¬ϕ   iff  μ⊭ϕ\mu \models \neg \phi \ \ \ iff \ \ \mu \not\models \phi
    • μϕψ   iff  μϕμψ\mu \models \phi \wedge \psi \ \ \ iff \ \ \mu \models \phi \wedge \mu \models \psi

    4 非确定性(nondeterministic)

    4.1 应用

    • 通过interleaving(两进程交替执行) 对独立活动的并行执行进行建模。
    • 对两个进程访问同一共享资源而出现的复杂状况建模。
    • 用于抽象目的和underspecification。
    • 对未知或不可预测环境下的接口建模。

    4.2 例子:饮料机

    在这里插入图片描述

    • 状态集合S={pay,select,soda,beer}S = \{ pay , select, soda, beer \}
    • 初始状态集合I={pay}I = \{ pay \}
    • 动作集合Act={insert_coin,get_soda,get_beer,τ}Act = \{ insert\_coin, get\_soda, get\_beer, \tau \}

    这是一个非确定的系统,因为在投入硬币后,既可以选择提供啤酒,也可以选择提供苏打水。

    注意,当表示内部活动或者不相关活动时,使用一个特殊符号τ\tau

    • 原子命题是要考虑的性质:
      AP={paid,drink}AP=\{paid,drink\}
    • 标签函数作用在状态上,得到的是原子命题的子集
      L(pay)=L(select)={paid}L(soda)=L(beer)={paid,drink} L(pay)=\varnothing \\ L(select) = \{paid\} \\ L(soda)=L(beer)=\{paid,drink\}
      可以理解为,系统中只有两个要考虑的量paidpaiddrinkdrink并且只能取值真和假。一开始既没有付款也没有喝饮料,所以对paypay取标签函数得到的是空集;在投入硬币进入selectselect状态后,因为已经付款了,所以取标签得到的是{paid}\{paid\};在出了饮料之后,即认为同时也可以喝了,所以取标签得到的是{paid,drink}\{paid,drink\}

    5 后继和前任

    5.1 直接后继

    TS=(S,Act,,I,AP,L)TS=(S,Act,\to,I,AP,L)中的sSs \in S以及αAct\alpha \in Act,状态ss对动作α\alpha的直接后继定义为:
    Post(s,α)={sSsαs}Post(s,\alpha)=\{s' \in S | s \stackrel{\alpha}{\longrightarrow} s'\}
    ss经过α\alpha所能到达的状态ss'的集合,记作αsuccessors\alpha-successors

    状态ss的直接后继(不说关于某动作)定义为:
    Post(s)=αActPost(s,α)Post(s) = \bigcup\limits_{\alpha \in Act} Post(s,\alpha)
    即所有经过任一动作α\alpha能达到的状态的集合。

    5.2 直接前任

    TS=(S,Act,,I,AP,L)TS=(S,Act,\to,I,AP,L)中的sSs \in S以及αAct\alpha \in Act,状态ss对动作α\alpha的直接前任定义为:
    Pre(s,α)={sSsαs}Pre(s,\alpha)=\{s' \in S | s' \stackrel{\alpha}{\longrightarrow} s\}
    即经过α\alpha能到达状态ss的若干前置状态ss'的集合,记作αpredeccessors\alpha-predeccessors

    状态ss的直接前任(不说关于某动作)定义为:
    Pre(s)=αActPre(s,α)Pre(s) = \bigcup\limits_{\alpha \in Act} Pre(s,\alpha)
    即所有由任一动作α\alpha而来此状态的前置状态的集合。

    5.3 用状态集合扩展直接后继和直接前任

    提供一个状态集合CSC \subseteq S,可以在其上定义直接后继或直接前任,实际上就是对所有其内的状态sCs \in C求直接后继或直接前任:
    Post(C,α)=sCPost(s,α),Post(c)=sCPost(s)Pre(C,α)=sCPre(s,α),Pre(c)=sCPre(s) Post(C,\alpha)=\bigcup\limits_{s \in C} Post(s,\alpha) ,Post(c) =\bigcup\limits_{s \in C} Post(s) \\ Pre(C,\alpha)=\bigcup\limits_{s \in C} Pre(s,\alpha) ,Pre(c) =\bigcup\limits_{s \in C} Pre(s)

    5.4 TS的终止状态

    称状态ss是TS的终止状态,当且仅当它没有后继即Post(s)=Post(s)=\varnothing

    对顺序程序而言,终止状态标志着程序运行结束。

    对并行程序而言,往往不希望看到终止状态。

    6 确定性的TS

    谈及TS的确定性,一般可以分为以下两种类型。

    6.1 关于actionaction的确定TS

    对所有状态ss和动作α\alpha,如有I1|I| \leq 1并且Post(s,α)1|Post(s,\alpha)| \leq 1,即任意状态经任意动作最多跳转到1个状态去,此时称这个TS是actiondeterministicaction-deterministic的。

    6.2 关于APAP的确定TS

    对所有状态ssAPAP的子集A2APA \in 2^{AP}(其实就是AAPA \subseteq AP),如有I1|I| \leq 1并且Post(s){sSL(s)=A}1|Post(s) \cap \{s' \in S | L(s')=A\}| \leq 1,即从某一状态出发的直接后继,其Label函数的计算结果一定是不一样的,此时称这个TS是APdeterministicAP-deterministic的。

    7 执行片段与执行

    7.1 有限执行片段

    TS的有限执行片段定义为:
    ϱ=s0α1s1α2...αnsn\varrho = s_0 \alpha_1 s_1 \alpha_2 ... \alpha_n s_n
    其中对所有的0i<n0 \leq i < n,有siαi+1si+1s_i \stackrel{\alpha_{i+1}}{\longrightarrow} s_{i+1}成立。其中n0n \geq 0是有限执行片段的长度。

    7.2 无限执行片段

    TS的无限执行片段定义为:
    ρ=s0α1s1α2s2α3...\rho = s_0 \alpha_1 s_1 \alpha_2 s_2 \alpha_3 ...
    其中对所有的0i0 \leq i,有siαi+1si+1s_i \stackrel{\alpha_{i+1}}{\longrightarrow} s_{i+1}成立。

    7.3 最大/初始的执行片段

    一个最大(maximal)执行片段是一个以终止状态结束的有限片段,或是一个无限执行片段。

    当执行片段从初始状态开始时,称其为初始(initial)的片段。

    7.4 执行

    TS的执行是指一个初始的、最大的执行片段。

    7.5 可达状态

    状态sSs \in S是可达的,意为存在这样的初始、有限的执行片段:
    s0α1s1α2...αn(sn=s)s_0 \stackrel{\alpha_1}{\longrightarrow} s_1 \stackrel{\alpha_2}{\longrightarrow} ... \stackrel{\alpha_n}{\longrightarrow} (s_n=s)
    Reach(TS)Reach(TS)为TS的所有可达状态。

    展开全文
  • 形式化模型的构建思路 舍弃和性质无关的细节,保留系统中的关键属性。 如对于电路而言,各个门和布尔值是需要关心的,而电压是不关心的。 对于通信协议而言,信息的交换过程是需要关心的,而具体交换的信息是和...
  • 目标检测笔记No.4模型训练与评估模型训练数据流超参数模型评估mAP是啥改进尝试原SSD论文对比多特征层融合分类头与回归头数据增强 很有幸参加Datawhale 十二月组队学习,本次笔记参考链接: 动手学CV-Pytorch第三章...
  • 目标检测笔记No.2锚框与模型锚框什么是锚框锚框生成程序定义9个先验框程序网络模型简化的SSD模型回归与分类SSD模型 锚框 什么是锚框 这个在论文(paper)中说法不太一样,如Faster RCNN中称之为anchor(锚),而SSD称之...
  • 笔记2最后例子里的四位加法器之上添加了请求操作的模型。在这个模型里,一开始加法器在闲置状态,请求来了之后,加法器的最低位工作得到结果,同时将请求信号和这一位计算时产生的进位信号送给高一位,如果反复,...
  • IC3算法全称是Incremental Construction of Inductive Clauses for Indubitable Correctness,可以用来检测迁移系统上的不变性性质。 1 术语约定 1.1 clause和literal 这里逻辑公式(logic formula)一律用合取范式...
  • 异常检测学习笔记 03线性模型 本节主要介绍异常检测的线性回归和主成分分析 参考来源:Datawhale 1.数据相关性 真实数据集中不同维度的数据通常具有高度的相关性。统计学中用于分析数据相关性的方法有两种:线性...
  • opencv调用YOLOv3模型进行目标检测 基于python3的Opencv(一)-打开摄像头显示图像 请点击此链接下载YOLOv3模型文件 链接:https://pan.baidu.com/s/1M8EVfUZ7NCWV5yJMuK2LbQ 提取码:u41w 说明 实现opencv加载预...
  • 形式化验证:静态验证,用数学方法对模型的功能、功能、规范做检验。验证的完备性高,但实施困难。 半形式化验证:形式化验证和前面结合。 形式化验证分类 按验证内容分类 性质检验(property checking):...
  • 可以把赋值式模型改写成上节学习的约束式模型(slide里的模型有些错误,从l2到l4应该是a ,这里做了修正): MODULE main VAR a : 0..100; b : 0..100; pc : {l1, l2, l3, l4, l5}; INIT pc = l1 TRANS -- 进入...
  • 模型检测的过程: Modeling 建模 将设计转换为模型检测工具可接受的形式。 Specification 规约 使用时序逻辑等方法描述设计所必须满足的特性或者说设计需要验证的性质。 但模型检查提供了检查设计模型是否满足给定...
  • 3. 从D和C的比较看出,采用3*3的卷积代替1*1的卷积,能够检测出更多的图像上下文信息,比单纯的观测一个像素点,识别效果要更好( it is also important to capture spatial context by using conv. filters with ...
  • 由于机器内存的原因,讲训练模型拆分到两个GPU上进行,每个GPU上放置一半的卷积核,而两个GPU只在部分层进行通信,比如Layer3读取两个GPU中Layer2的输出,而Layer4只读取各自GPU的layer3的输出 3. 局部响应归一化...
  • 2 进程并发的几种模型 2.1 TS上的Interleaving 两TS模型 TSi=(Si,Acti,→,Ii,APi,Li), for i=1,2TS_i = (S_i,Act_i,\rightarrow,I_i,AP_i,L_i), \ for \ i=1,2TSi​=(Si​,Acti​,→,Ii​,APi​,Li​), for i=1,2的...
  • 人脸框检测模型SSH论文学习笔记 原论文:《M Najibi, P Samangouei R Chellappa, et al. SSH: Single Stage Headless Face Detector[C]. 2017 IEEE International Conference on Computer Vision(ICCV), Venice, ...
  • 3 如何编写CNN模型代码 3.1 数据准备 3.2 数据载入操作 3.3 定义模型整体结构 3.3.1 输入样本的预处理操作 3.3.2 定义网络结构 3.3 训练模型 3.4 模型推理 4 模型搭建备忘 1 前言 今天在学习MTCNN的代码~...
  • 以下我为这篇《Rapid Deployment of Anomaly Detection Models for Large Number of Emerging KPI Streams》做的阅读笔记 - Jeanva Abstract Rapid deployment of anomaly detection models for large number of ...
  • 本章主要介绍了模型检测、标记算法、不动点,并且以面向CTL的模型检测为根据,编写了CTL模型检测算法的伪代码,最后简单介绍了一些状态爆炸问题。
  • 有限自动机⇌正则语言⇌正则表达式有限自动机\rightleftharpoons正则语言\rightleftharpoons正则表达式有限自动机⇌正则语言⇌正则表达式 1 有限字上的自动机 1.1 有限自动机 有限自动机(Finite Automata)可以表示...
  • 这里 Post(s)Post(s)Post(s)是从状态 sss的所有直接后继状态的集合,相关内容见笔记3中的定义。 约定,将无限长的path记为 π\piπ等小写字母,而将有限长的path记为 π^\hat{\pi}π^等头戴^的小写字母。从状态 sss...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,782
精华内容 712
关键字:

模型检测笔记