自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

weixin_50917576的博客

知识的搬运工

  • 博客(213)
  • 收藏
  • 关注

原创 二叉树迭代遍历——给一个属性便可实现迭代结构完美统一

本文提出了一种统一的二叉树迭代遍历方法,通过为树节点添加flag标记来区分处理状态。前序、中序和后序遍历的核心区别仅在于节点压栈顺序和flag设置的位置:前序遍历在访问时立即输出并处理子节点;中序遍历先处理左子树再输出;后序遍历先处理左右子树再输出。这种标记法避免了复杂的指针操作,使三种遍历算法的实现逻辑清晰统一。代码示例展示了如何在保持原有树结构的前提下,通过封装TreeNodeWithFlag类实现完整的迭代遍历方案。

2025-05-28 17:18:14 659

原创 DeepSeek-V3网络模型架构图解

DeepSeekV3 整体预训练用了14.8万亿的高质量Token,并且在后期做了SFT和RL,模型参数量达到671B,但是每个Token仅激活37B参数。为了做到高效的推理和训练,DeepSeekV3自研了MLA注意力机制和无辅助损失负载均衡策略的MoE架构。从技术报告中看出,是经典的Transformer架构,比较亮眼的就是前馈网络使用的DeepSeekMoE架构、Attention机制使用MLA架构,其实这两个在DeepSeekV2模型已经被验证使...

2025-02-12 22:24:53 3080 5

原创 2024百度之星:BD202404 110串

题目要求计算修改不超过k次后不含子串"110"的01序列方案数。使用动态规划方法,定义状态dp[i][j][s]表示处理前i个字符、修改j次后处于状态s的方案数。状态s分为三种:以0结尾、以1结尾或以11结尾。根据当前字符是否为0或1,分别处理修改和不修改的情况,并转移状态。最终将所有可能状态的方案数相加,得到结果。时间复杂度O(nk),空间复杂度O(nk)。示例输入输出展示了修改2次后有效方案数为8种。

2025-06-27 22:50:42 901

原创 经典面试题:接雨水与接雨水II(LeetCode 42与407)

本文介绍了接雨水问题的两种解法。一维情况使用动态规划或双指针法,计算每个柱子左右两侧最高柱子的最小值来求接水量。二维情况采用广度优先搜索,从边界开始向内调整每个格子能接的雨水高度,确保不会漏水。解法1预处理左右最大值数组,解法2用双指针优化空间复杂度。二维解法通过维护优先队列处理相邻格子高度关系,确保雨水高度不超过周围最低点。两种解法时间复杂度均为O(n),二维解法为O(mn)。

2025-06-20 20:38:32 302

原创 Java运行原理分析

通过这段Java代码定义了一个名为Demo1的类,其中包含一个main方法。代码执行以下操作:首先,声明并初始化两个整数变量x和y,分别为500和100。接着,计算x除以y的结果并存储在变量a中。然后,声明并初始化另一个整数变量b为50。最后,输出a和b的和。运行该代码时,控制台将输出55,因为a的值为5(500除以100),b的值为50,两者相加为55。代码的类文件结构、字节码和运行原理可以通过分析类文件的详细信息来理解,包括常量池、方法描述符和字节码指令等。

2025-05-14 19:44:36 292

原创 HTTP状态码分类和列表

当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含 HTTP状态码的信息头(server header)用以响应浏览器的请求。

2025-05-07 22:32:43 741

原创 HTTP Request Header 请求头与响应头

HTTP Request Header 请求头与HTTP Request Header 请求头汇总。

2025-05-07 22:10:04 573

原创 字符流的介绍与使用

FileReader类是Reader下InputStreamReader的子类,它是用来读取文件的便捷类,允许以字符流的形式对文件进行读操作,虽然我们可以通过构造方法来创建一个该对象,但是该对象的读取方式是以字符一个个读取的形式来读取文件的,效率低下,所以我们一般直接使用它的过滤流(BufferedReader)来进行读取文件内容的操作。

2025-03-02 18:13:20 335

原创 Modular Prompt Learning Improves Vision-Language Models

浅层连续提示方法将提示插入到第一个Transformer层的输入中,这些提示参与到后续所有Transformer层的上下文化过程(即自注意力机制[16])中。而深层提示方法则持续用新插入的提示替换原有的连续提示。一个自然的问题是:移除插入的提示是否会丢失其中包含的信息?动机保留深层提示方法中删除的部分提示。流程解读me:相当于MaPLe其实就是删除了部分提示,有点像浅层提示和深层提示的居中办法。a) 添加操作Oadd​Oadd​将连续提示插入到Transformer层的输入中。

2025-03-02 18:08:21 1336 2

原创 字节流的介绍与使用

字节输入流的父类,抽象类,无法实例化• available() :获取到当前字节流对象的内容长度• close() :关闭流资源• reset() :重置指针的位置,回到最初的位置• skip(long n) :往前或者往后移动指定长度个位置• read() :读取指定的文件内容,每次读取一个字节• read(byte[] b) :读取指定的文件内容,每次读取一个字节数组。

2025-02-15 17:20:00 1133

原创 File类的概述以及常用API

File类可以让我们使用代码来做到我们在计算机上操作文件、文件夹的一切操作;比如创建、删除文件夹和文件,获取文件大小,文件夹或者文件的更名等等,需要注意的是, File对象并不能直接对文件进行读/写操作,只能查看文件的属性;

2025-02-15 17:16:52 742

原创 工厂设计模式概述-简单工厂模式

工厂模式(Factory Pattern)是开发中比较常用的设计模式之一。它属于创建型模式(单例模式就是创建型模式的一种),这种模式让我们在创建对象时不会直接暴露创建逻辑,而是通过使用一个共同的接口来完成对象的创建。工厂模式可以分为三种,分别是A简单工厂模式、B工厂方法模式以及C抽象工厂模式(后面的两种模式都是基于第一种模式进行的) ,我们主要来讲解简单工厂模式。

2025-02-14 20:48:35 542

原创 反射概念以及一些基本API的使用

JAVA反射机制是指在运行状态(非编译状态)中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性,这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。说的直白点,就是我们可以通过反射机制,来把类的各个组成部分(属性、构造函数、方法)给获取到。反射能干嘛?1:获取类的相关信息2:动态调用方法3:动态构造对象此处并没有列出这三个类中的所有方法, 只是这几个方法能够反映出该类的特点, 具体方法请参考API文档。

2025-02-14 19:35:18 317

原创 卷积定理理解:如何将系数多项式乘法降到n*log n的复杂度?

两个向量(每个向量各自对应一个多项式)的简单相乘(时间复杂度On2)可以通过两个向量各自对应的离散傅里叶变换的相乘(时间复杂度On⋅lgn)来代替,以此降低计算的时间复杂度。

2025-02-13 20:31:39 679

原创 一文通俗理解为什么需要泛型以及泛型的使用

没使用泛型,导致我们想使用的时候,一旦强转就会出现类型转换异常,而在我们工作中,其实很多时候,我们都只需要一个集合容器里面放一个类型,如果有多个类型,我们就分多个容器来存放,那么进行约束存放类型的功能,就叫泛型(Generic)语法,让你在设计API时可以指定类或方法支持泛型,这样我们使用API的时候也变得更为简洁,**并得到了编译时期的语法检查**...

2025-02-13 20:25:54 920

原创 代码小技巧: github1s.com帮助在线查看github上的代码

我们在github上看代码想点击自定义好跳转的方法是做不到的,只能ctrl+F或者找右边的窗口列表,但我又不想把代码下载下来。其实我们仅需仅需在网页链接上github单词加上1s即可...

2024-12-19 18:45:02 418

原创 RPO: Read-only Prompt Optimization for Vision-Language Few-shot Learning

近年来,提示调优已被证明在使预训练的视觉语言模型适应下游任务方面是有效的。这些方法旨在通过引入可学习的提示来适应预训练的模型,同时保持预训练的权重不变。然而,可学习提示会影响自注意模块的内部表示,这可能会对性能差异和泛化产生负面影响,特别是在数据不足的设置中。为了解决这些问题,我们提出了一种新的方法,只读提示优化(RPO)。RPO利用隐藏注意力来防止预训练模型中的内部表示转移。此外,为了便于优化RPO,根据预训练模型的特殊令牌初始化只读提示。

2024-12-08 21:11:32 1431

原创 SPT: Revisiting the Power of Prompt for Visual Tuning

我们总结了下面列出的主要挑战。提示初始化:现有的基于提示的方法,如VPT (Jia et al ., 2022)、GateVPT (Yoo et al ., 2023),采用随机初始化提示(如均匀或正常)的策略,然后在调优过程中更新提示,类似于传统神经网络的参数优化。然而,插入的提示令牌的不同初始化技术会显著影响准确性,如VPT及其变体的原始论文所示。提示长度:与完全微调相比,唯一需要调整的额外超参数是插入的提示令牌的数量。虽然现有方法的消融研究表明,VPT及其变体通常对插入提示符的数量敏感。

2024-12-08 21:04:28 1447 7

原创 VFPT: Visual Fourier Prompt Tuning

随着基于transformer的视觉模型的规模不断增长,为新任务调整这些大规模预训练模型已经变得越来越参数密集。针对这一趋势,提出了一种参数有效微调(PEFT)方法——视觉提示调谐。尽管取得了成功,但在几乎所有PEFT方法中都存在一个显著的研究挑战:当预训练和微调阶段使用的数据集之间存在实质性差异时,会观察到显著的性能下降。为了解决这一挑战,我们从人类视觉认知中汲取灵感,并提出了视觉傅立叶提示调谐(visual Fourier Prompt Tuning, VFPT)方法...

2024-12-08 20:58:22 973

原创 DeCoOp: Robust Prompt Tuning with Out-of-Distribution Detection

视觉语言模型(VLM),例如CLIP,已经为各种下游任务展示了令人印象深刻的零射击能力。通过一些提示调优方法可以进一步提高它们的性能。然而,目前的研究分别在基础课和新课上评估学习过的提示的表现。这种评估对于实际应用程序缺乏实用性,因为下游任务无法提前确定数据是属于基类还是新类。在本文中,我们探讨了一个名为开放世界提示优化(OPT)的问题设置,它涉及对基类的优化提示以及对基类和新类的组合进行评估。通过引入分解提示调优框架(DEPT)...

2024-12-05 22:53:46 1209

原创 Weak Distribution Detectors Lead to Stronger Generalizability of Vision-Language Prompt Tuning

我们提出了一种提高预训练视觉语言模型(VLMs)泛化能力的通用方法,同时对下游的少量任务进行微调。该思想是通过利用out-of-distribution(OOD)检测来预测样本是属于基本分布还是新分布,然后使用专用的基于竞争的评分函数生成的分数来融合零样本和少样本分类器来实现的。融合分类器是动态的,如果样本更有可能来自预训练的分布,它将偏向于零样本分类器,从而提高了从基础到新的泛化能力。我们的方法仅在测试阶段执行,适用于改进现有方法,而无需耗时的再训练。

2024-12-05 22:41:45 1054

原创 ResidualPrompts: Residual Prompt Tuning Improving Prompt Tuning with Residual Reparameterization

提示调优是预训练语言模型参数高效调优的成功方法之一。尽管可以说是参数效率最高的方法(调优软提示占总参数的比例< 0:1%),但它的性能通常比其他有效的调优方法差,而且对超参数相当敏感。在这项工作中,我们介绍了残余提示调谐-一种简单有效的方法,显着提高了提示调谐的性能和稳定性。我们建议使用带有残余连接的浅网络重新参数化软提示嵌入。我们的实验表明,残余提示调优在T5-Large、T5Base和BERT-Base模型上显著优于SuperGLUE基准的提示调优。

2024-12-02 19:17:20 917

原创 CLIP-LoRA: Low-Rank Few-Shot Adaptation of Vision-Language Models

最近在视觉语言模型(VLMs)的小样本自适应方面取得的进展进一步提高了它们的泛化能力,代价是在目标下游任务中只牺牲了几个标记样本。然而,这些有希望的,已经相当丰富的小样本几篇文献主要集中在提示学习上,并且在较小程度上,集中在适配器上,忽略了参数有效微调(PEFT)的最新进展。此外,现有的VLMs的小样本学习方法通常依赖于繁重的训练程序和/或精心选择的任务特定超参数,这可能会阻碍其适用性。作为回应,我们在VLMs的小样本学习中引入了低秩自适应(LoRA),并与当前最先进的基于提示和基于适配器的方法相比...

2024-12-02 19:08:23 3093

原创 MOH: MULTI-HEAD ATTENTION AS MIXTURE-OFHEAD ATTENTION

在这项工作中,我们升级了Transformer模型的核心——多头注意机制,以提高效率,同时保持或超越以前的精度水平。我们证明多头注意可以用求和形式表示。鉴于并非所有的注意头都具有同等的重要性,我们提出了一种将注意头视为专家混合(MoE)机制中的专家的新架构——头部混合(MoH)。MoH有两个显著的优点:首先,MoH使每个令牌能够选择适当的注意头,在不影响准确性或增加参数数量的情况下提高推理效率。其次,MoH用加权求和取代了多头注意中的标准求和,为注意机制引入了灵活性,释放了额外的性能潜力。

2024-12-01 21:41:33 1045 3

原创 ADALORA: ADAPTIVE BUDGET ALLOCATION FOR PARAMETER-EFFICIENT FINE-TUNING

在下游任务上对大型预训练语言模型进行微调已经成为自然语言处理的一个重要范例。然而,通常的做法是对预训练模型中的所有参数进行微调,当存在大量下游任务时,这变得令人望而却步。因此,提出了许多微调方法,以参数有效的方式学习预训练权值的增量更新,例如低秩增量。这些方法通常在所有预训练的权重矩阵上均匀地分配增量更新预算,而忽略了不同权重参数的不同重要性。因此,调优性能不是最优的。为了弥补这一差距,我们提出了AdaLoRA算法,该算法根据权重矩阵的重要性评分自适应地在权重矩阵之间分配参数预算。

2024-12-01 17:16:51 1157

原创 DPE-CLIP: Dual Prototype Evolving for Test-Time Generalization of Vision-Language Models

测试时自适应使模型能够泛化到具有未标记测试样本的不同数据,在现实场景中具有重要价值。最近,研究人员将这种设置应用于高级预训练视觉语言模型(VLMs),开发了测试时间提示调优等方法,以进一步扩展其实际适用性。然而,这些方法通常只关注于从单一模态适应VLM,并且随着处理的样本越来越多,无法积累特定于任务的知识。为了解决这个问题,我们引入了双原型进化(DPE),这是一种新的VLM测试时自适应方法,可以有效地从多模态中积累特定于任务的知识。

2024-11-30 21:38:31 1204

原创 CLIP-MMA: Multi-Modal Adapter for Vision-Language Models

大型pre-trained视觉语言模型,如剪辑[26],具有最先进的性能在一个广泛的图像分类任务,而不需要再培训。Few-shot CLIP与在下游任务上训练的现有专业架构具有竞争力。最近的研究表明,使用轻量级自适应方法可以进一步提高CLIP的性能。然而,以前的方法单独适应CLIP模型的不同模式,忽略了视觉和文本表示之间的相互作用和关系。在这项工作中,我们提出了多模态适配器,一种多模态自适应CLIP的方法。具体来说,我们添加了一个可训练的多头注意层,该层结合了文本和图像特征,以产生两者的附加适应。与现有的自

2024-11-30 21:27:52 1414

原创 XMA-Adapter: CROSS-MODAL ADAPTER_ PARAMETER-EFFICIENT TRANSFER LEARNINGAPPROACH

基于适配器的参数高效迁移学习在视觉语言模型中取得了令人振奋的成果。传统的适配器方法通常需要训练或微调,面临着样本不足或资源限制等挑战。虽然一些方法通过利用图像模态缓存和检索来克服训练的需要,但它们忽略了文本模态的重要性和跨模态线索对视觉语言模型中参数的有效适应。这项工作引入了一种名为XMAdapter的跨模态参数高效方法。XMAdapter为文本和图像模式建立缓存模型。然后,它利用视觉语言双峰信息的检索来收集推理线索。通过动态调整亲和比,实现跨模态融合,解耦不同模态相似性,评估各自的贡献...

2024-11-28 22:34:59 1329

原创 Tip-Adapter: Training-free CLIP-Adapter for Better Vision-Language Modeling

虽然CoOp[70]和CLIP-Adapter[17]在小样本分类基准测试中表现出较强的性能,但与CLIP[51]和线性探针CLIP[51]相比,由于随机梯度下降(Stochastic Gradient Descent, SGD)的收敛速度较慢[34,42]和GPU内存消耗巨大[54],它们通常需要大量的计算资源来对大规模视觉语言模型进行精细调整。

2024-11-28 22:28:48 1484 1

原创 SVL-Adapter: Self-Supervised Adapter for Vision-Language Pretrained Models

CLIP和CLIP-Adapter等方法的一个主要局限性是,它们没有对视觉编码器所编码的底层表示进行显著的修改。原因很简单:微调大型模型需要大量的监督,这在低监督学习设置中是很难获得的。如果下游分类任务的图像来自与互联网常见图像相同的分布,那么这不一定是个问题。然而,

2024-11-26 22:08:39 1206

原创 CLIP-Adapter: Better Vision-Language Models with Feature Adapters

由于CLIP的过度参数化和缺乏足够的训练样例,简单的微调会导致对特定数据集的过拟合,并且训练过程会非常缓慢由于在所有CLIP层之间的向前和向后传播。

2024-11-26 22:02:25 1431 3

原创 攀拓(PAT)- 程序设计(乙级)2024年春季考试

在攀拓考试的能力评估报告中,需要用 AI(人工智能)算法,根据考生的表现自动生成一段评语。本题并不是要求你写出生成评语用的代码,只是要求你准备好调用这个算法的输入数据。首先,已经有算法为每位考生计算出了 5 个维度的能力评估值,分别是:基础知识、进阶知识、熟练度、准确性、专业性。我们不妨将这些维度从 1 到 5 顺次编号。每个能力评估值都是 [0, 100] 区间内的整数。你先要获得每一个维度上所有$N$位考生的中位线值 —— 如果$N$是奇数,那么中位线是从大到小第$(N+1)/2$个值;如果$N$是偶

2024-11-07 21:11:43 1613 2

原创 ALIGN: Tuning Multi-mode Token-level Prompt Alignment across Modalities

视觉语言模型在提示调整方面的进步强调了它们在增强开放世界视觉概念理解方面的潜力。然而,之前的工作主要集中在单模态(每种情态只有一个提示)和整体层面(图像或句子)的语义对齐上,未能捕捉到样本多样性,导致次优提示发现。为了解决这一限制,我们提出了一个多模式令牌级调优框架,该框架利用最佳传输来学习和对齐一组跨模式的提示令牌。具体来说,我们依赖于两个基本因素:1)多模式提示发现,它保证了不同的语义表示;2)令牌级对齐,它有助于探索细粒度的相似性。因此,相似性可以计算为模态特定集之间的分层运输问题。

2024-10-26 19:59:31 1416

原创 AWT: Transferring Vision-Language Models via Augmentation, Weighting, and Transportation

预训练的视觉语言模型(VLMs)在各种视觉分类任务中显示出令人印象深刻的结果。然而,由于关于新类的信息有限,我们在调整它们以理解新概念时往往无法充分释放它们的潜力。为了解决这一限制,我们引入了一个新的适应框架,AWT(Augment, Weight, then Transport)。AWT包括三个关键组件:通过图像转换和语言模型,通过不同的视觉视角和丰富的类描述来增强输入;基于预测熵的动态加权输入;并利用最优传输在视觉语言空间中挖掘语义相关性。

2024-10-26 19:42:32 763

原创 DAPT: Distribution-Aware Prompt Tuning for Vision-Language Models

通过利用从大数据中学习到的知识,预训练的视觉语言模型(VLMs)在各种下游任务中表现出令人印象深刻的性能。通常,通过提示调优,可以进一步提高VLM在目标任务上的性能,这可以为输入图像或文本添加上下文。通过利用目标任务的数据,文献中研究了各种提示调优方法。提示调整的关键是通过固定模型参数的可学习向量在两个模态之间进行特征空间对齐。我们观察到,当每个模态的嵌入在潜在空间中“排列良好”时,对齐变得更加有效。受这一观察结果的启发,我们提出了用于视觉语言模型的分布感知提示调优(DAPT),该方法简单而有效。

2024-10-25 20:22:55 902

原创 CasPL: Cascade Prompt Learning for Vision-Language Model Adaptation

当应用于下游任务时,提示学习作为一种有效的方法来提高视觉语言模型(VLMs)的性能,如CLIP。然而,目前可学习的提示符号主要用于适应任务的单一阶段(即适应提示),容易导致过度拟合风险。在这项工作中,我们提出了一个新的级联提示学习(CasPL)框架,使提示学习同时服务于通用和特定的专业知识(即促进和适应提示)。具体来说,CasPL是一种新的学习范式,包括可学习提示的两个不同阶段:第一个增强提示是通过使用大量未标记的领域图像对齐其预测逻辑,从一个更大的高级CLIP教师模型中提取领域一般知识。

2024-10-25 20:14:56 987

原创 MMA: Multi-Modal Adapter for Vision-Language Models

图1所示。各种基于transformer的CLIP模型中不同层的数据集级识别精度。这个实验是为了确定样本属于哪个数据集。我们用不同的种子运行了三次,并报告了每层识别精度的平均值和标准差。XEmbed是指变压器块之前的文本或图像嵌入层(即自关注层和前馈层[13]),XProj是指文本或图像投影层。注意,本实验仅使用来自所有数据集的训练样例进行评估。如图1所示,我们有两个观测:在预训练的文本和图像编码器中,较高的层包含可区分的数据集特定表示,而较低的层包含跨不同数据集的可通用表示。

2024-10-24 21:39:46 1366

原创 SubPT+NFL翻译:Understanding and Mitigating Overfitting in Prompt Tuning for Vision-Language Models

预训练的视觉语言模型(VLMs),如CLIP,在具有适当文本提示的下游视觉任务中显示出令人印象深刻的泛化能力。上下文优化(CoOp)代替手动设计提示,最近有人提出使用特定任务的训练数据来学习连续提示。尽管在下游任务上的性能有所提高,但有研究报道CoOp在两个方面存在过拟合问题:(1)在训练过程中,对基类的测试准确率先提高后下降;(2)对新类的测试准确率不断下降。然而,现有的研究都不能理解和缓解这种过拟合问题。在本研究中,我们首先通过分析梯度流来探讨过拟合的原因。

2024-10-24 20:03:17 824

原创 SubPT+NFL:Understanding and Mitigating Overfitting in Prompt Tuning for Vision-Language Models

预训练的视觉语言模型(VLMs),如CLIP,在具有适当文本提示的下游视觉任务中显示出令人印象深刻的泛化能力。上下文优化(CoOp)代替手动设计提示,最近有人提出使用特定任务的训练数据来学习连续提示。尽管在下游任务上的性能有所提高,但有研究报道CoOp在两个方面存在过拟合问题:(1)在训练过程中,对基类的测试准确率先提高后下降;(2)对新类的测试准确率不断下降。然而,现有的研究都不能理解和缓解这种过拟合问题。在本研究中,我们首先通过分析梯度流来探讨过拟合的原因。

2024-10-24 18:06:49 1831 7

原创 AAPL: Adding Attributes to Prompt Learning for Vision-Language Models

近年来,大型预训练视觉语言模型在零样本下游任务上表现出色。在此基础上,最近的研究,如 CoOp 和CoCoOp,提出了使用提示学习的建议,即提示中的上下文被可学习的向量所取代,从而大大改进了手动制作的提示。然而,对于看不见的类的性能改进仍然是边际的,为了解决这个问题,数据增强在传统的零样本学习技术中经常被使用。通过我们的实验,我们发现了CoOp和CoOp中的重要问题:通过传统图像增强学习的上下文偏向于可见类,对未见类的泛化产生负面影响。

2024-10-23 18:18:36 1406 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除