自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (2)
  • 收藏
  • 关注

原创 深度学习——CNN+RNN

文章目录CNN,RNN图片标注视频行为识别图片/视频问答CNN,RNN相同点都是传统神经网络的拓展前向计算产生结果,反向计算更新模型每层神经网络横向可以多个神经元共存,纵向可以有多层神经网络连接不同点CNN空间扩展,神经元与特征卷积;RNN时间扩展,神经元与多个时间输出计算RNN可以用于描述时间上连续状态的输出,有记忆功能,CNN用于静态输出CNN高级100+深度,RNN深度有限组合后大量信息同时具有时间空间特性:视频,图文结合,真实的场景对话带有图像的对话,文本表达更具体视频

2020-06-30 12:08:03 1588

原创 深度学习——递归神经网络RNN

文章目录RNNRNN的反向传播梯度消失问题LSTM Long Short-Term MemoryPeephole Connection另一个讲解激活函数Word2VecRNN传统神经网络和卷积神经网络只适用于预先设定的大小(固定大小的输入产生固定大小的输出)。RNN的输入输出长度都是可变的。可以用来做机器翻译,情绪分析等。RNNs的工作原理是迭代更新一个隐藏状态h,它是一可以有任意维度的向量。对于任意的一个ht:1、由对应的输入xt与上一个隐藏层ht-1来计算2、输出yt是由ht计算出的结

2020-06-28 17:01:32 724

原创 深度学习——卷积神经网络(目标探测)04

文章目录目标探测DPM Deformable Parts Model神经网络分类:R-CNN评估方法Fast R-CNNRPN的实现神经网络回归:YoLoSSD:The Single Shot Detector目标探测将目标探测任务转化为回归,分类问题分类思想:候选区域产生局部识别问题:比如一张图片有好几个动物在很多位置尝试识别,能够完成识别的地方就是目标位置找候选位置:不同scale的sliding windows遍历所有位置直接计算候选区域DPM Deformable Parts

2020-06-27 15:36:30 1023

原创 深度学习——卷积神经网络(目标分类)03

文章目录目标分类1.数据准备2. 模型设计3. 训练细节迁移学习目标分类1.数据准备数据来源:现有数据集的子集;网络采集;人工标注数据扩充:原始数据切割;噪声颜色等像素变化;旋转平移等姿态变化数据规范:均值处理;归一化;大小调整 resize图像效果算子使更模糊(高斯卷积核),使更清楚(unsharp卷积核),动作模糊(motion filter)旋转平移 R, T2. 模型设计基于现有模型局部更改(借鉴已有模型)类型:分类:表情分类,人群分类分类+回归:表情+程度,种类+

2020-06-26 20:06:09 506

原创 深度学习——卷积神经网络02

文章目录卷积神经网络LeNetAlexNetAlexNet特点VGGGoogLeNet 多分辨率融合ResNetDeepFaceU-Net卷积神经网络卷积神经网络的基本构成:卷积层+池化层+全连接层网络的整体思路架构是:卷积层+池化层+非线性变化层,然后到全连接层将输入归结到不同 类别的概率值;LeNet输入尺寸是32*32像素;卷积层3个;降采样层2个;全连接层1个;输出10个类别。AlexNet关于AlexNet的来源连接:https://www.jianshu.com/p/5816

2020-06-25 22:51:17 376

原创 深度学习——卷积神经网络01

文章目录链式反向梯度传导示例卷积神经网络卷积层 convolutional layer池化层 Pooling LayerZero PaddingFlatten 层和全连接层 Fully Connected Layer卷积层关键参数卷积问题卷积网络功能层链式反向梯度传导链式法则:神经网络中的链式法则:从loss向输入传播每层导数(Δy,Δx)结果存储用于下一层导数的计算。例如:f(x,y,z) = (z+y)*z分别求f对 x, y, z的偏导:设q = x + y , 则f = qz

2020-06-24 16:21:41 813

原创 深度学习——神经网络学习

文章目录线性回归线性到非线性非线性激活函数sigmoidtanhReLULeaky ReLU构建神经网络神经网络的“配件”损失函数-LossSoftmaxCross entropy自定义损失函数学习率学习率learning rate设置动量过拟合线性回归线性关系描述输入到输出的映射关系。目标方程:y = ax1 + bx2 + cx3 + d参数:m = [a,b,c,d]目标:min(y^-y)(y^为预测值,可以用最小二乘得到最优解,但这里优化方法选择梯度下降法。)优化方法:梯度下降法L

2020-06-23 13:59:53 383

原创 深度学习——引子note

文章目录深度学习应用特点框架比较TensorFlow基本深度学习概念深度学习深度学习传统到现在的推动因素:理论:CNN,RNN,ReLU(非线性激励函数)数据:ImageNet,LFW硬件:Nvidia CUDA+GPU应用特点优点:学习能力强覆盖范围广,适应性好可移植性好缺点:计算量大,便携性差硬件需求高模型设计复杂有可能被"hack"长于计算,弱于算计框架比较TensorFlow统一的模型标准,方便交流维持地位:TPU,Google Cloud,future

2020-06-22 23:47:31 175

原创 机器学习_支持向量机SVM

文章目录线性可分SVM推导目标函数计算举例线性支持SVM求解目标函数非线性支持SVM核函数 kernel functionSMO算法(SVM系数求解)线性可分SVM存在一个线可以把数据分类,数据就是线性可分的。SVM是有分割超平面两边的一些样本作为支撑点做出的支撑向量。分割超平面设C,D为不相交的凸集,则存在超平面P,将C,D分离。如何选择最优超平面?(间隔最大化)(w12+w22+…+wn2)0.5 = ||w|| (w的二范式)直到任意点和直线,可以求出点到直线的距离:d(xi,l)

2020-06-22 17:48:43 1944

原创 机器学习_提升(Boosting)

文章目录提升提升算法提升算法推导GBDT(一阶导数)二阶导信息推导(XGBoost)如何进行划分Adaboost偏差与方差提升随机森林的决策树分别采样建立,相对独立。是否能够利用之前的决策树来有益影响下一棵决策树的建立呢?投票过程是否可以在建立决策树时就确定呢?提升:可以用于回归和分类问题。每一步产生一个弱分类器(如决策树)并加权累加到总模型中,得到强分类器。梯度提升(Gradient boosting):每一步弱预测模型都是根据损失函数的梯度方向。弱分类器到强分类器样本加权上一

2020-06-21 16:24:36 380

原创 机器学习_回归(线性,逻辑)

文章目录重要概念高斯分布中心极限定理最大似然估计步骤正态分布的极大似然估计最小二乘法奇异值分解SVD线性回归梯度下降算法批量梯度下降算法随机梯度下降算法 SGDmini-batch正则:防止过拟合LASSO : L1-normRidge : L2-normElastic Net逻辑回归logistic回归参数的学习规则损失函数softmax回归带约束的优化问题处理共线性特征ROC AUCROC曲线绘制重要概念高斯分布正态分布(Normal distribution),也称“常态分布”,又名高斯分布(G

2020-06-20 15:43:32 518

原创 机器学习_决策树和随机森林

文章目录信息熵条件熵相对熵互信息熵,条件熵,互信息之间的等式决策树学习算法ID3 信息增益C4.5 信息增益率CART随机森林Bagging 的策略投票机制关于随机森林信息熵熵:描述不确定性。一个随机事件越不确定,熵越大;如果完全确定,熵为0。概率越低,信息量越大;如果概率为1,信息量为0,所以应该为一个减函数。在取对数的情况下,ln(xy) = lnx + lny; 取负为减函数。因此:x01p1-pplnp-ln(1-p)-lnp期望 E[lnp]

2020-06-19 22:53:37 521 1

原创 机器学习基础框架概念

文章目录归一化标准化缺失值处理特征选择原因降维过拟合L2正则化欠拟合监督学习分类学习k-近邻算法贝叶斯分类决策树决策树划分依据之一 - 信息增益 ID3决策树划分依据之一 - 信息增益比 C4.5决策树划分依据之一 - CART随机森林逻辑回归sigmoid函数逻辑回归损失函数回归模型线性回归岭回归求得模型当中的w使损失最小。无监督学习k-means性能评估分类模型评估Confusion Matrix回归性能评估模型选择和调优归一化sklearn.preprocessing.MinMaxScaler通

2020-06-16 16:01:53 445

原创 数据结构与算法(python)_08_ 树

文章目录树树的种类树的存储二叉树二叉树广度优先遍历先序,中序,后序遍历二叉树由遍历确定一棵树树树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。特点:每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点外,每个子节点可以分为多个不相交的子树

2020-06-14 14:23:20 174

原创 数据结构与算法(python)_07_排序查找

文章目录排序归并排序实现时间复杂度排序算法总结查找二分查找非递归实现递归实现时间复杂度排序归并排序归并排序是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。实现def merge(left,right): result = [] while left and right: if left[0] < right[0]: result.append(left.pop(0)) else:

2020-06-13 13:15:51 151

原创 数据结构与算法(python)_06_排序

这里写目录标题排序希尔排序实现时间复杂度快速排序实现时间复杂度排序希尔排序希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。实现def shell_sort(alist): gap = len(alist)//2 while gap > 0: for i in range(gap, n): while i > 0:

2020-06-12 22:27:40 134

原创 数据结构与算法(python)_05_栈队列排序

文章目录栈 LIFO, Last In First Out栈的实现队列 First In First Out队列的实现双端队列的实现排序排序算法的稳定性冒泡排序写法一写法二选择排序方法一时间复杂度方法二时间复杂度插入排序时间复杂度栈 LIFO, Last In First Out栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。没有了位置概念,

2020-06-12 18:05:09 264

原创 数据结构与算法(python)_04_单循环链表双链表

文章目录链表单向循环链表操作双链表操作指定位置插入节点删除元素链表单向循环链表单链表的一个变形是单向循环链表,链表中最后一个节点的next域不再为None,而是指向链表的头节点。操作is_empty() 判断链表是否为空length() 返回链表的长度travel() 遍历add(item) 在头部添加一个节点append(item) 在尾部添加一个节点insert(pos, item) 在指定位置pos添加节点remove(item) 删除一个节点search(item) 查找节

2020-06-11 23:30:25 146

原创 数据结构与算法(python)_03_单链表

文章目录链表单向链表单链表操作单链表和顺序表对比链表顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时又需要进行数据的搬迁,所以使用起来并不是很灵活。链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。**链表(Linked list)**是一种常见的基础数据结构,是一种线性表,但是不像顺序表一样连续存储数据,而是在每一个节点(数据存储单元)里存放下一个节点的位置信息(即地址)。单向链表单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元

2020-06-11 17:46:55 162

原创 数据结构与算法(python)_02_顺序表

文章目录顺序表元素外置顺序表顺序表结构顺序表添加与删除元素顺序表一个线性表是某类元素的一个集合,还记录着元素之间的一种顺序关系。线性表是最基本的数据结构之一,在实际程序中应用非常广泛,它还经常被用作更复杂的数据结构的实现基础。根据线性表的实际存储方式,分为两种实现模型:顺序表,将元素顺序地存放在一块连续的存储区里,元素间的顺序关系由它们的存储顺序自然表示。链表,将元素存放在通过链接构造起来的一系列存储块中。元素存储的物理地址(实际内存地址)可以通过存储区的起始地址Loc (e0)加上逻辑地址(

2020-06-10 23:18:18 209

原创 数据结构与算法(python)_01_时间复杂度

文章目录时间复杂度大O记法时间复杂度计算规则常见时间复杂度timeit模块list和dict内置操作的时间复杂度数据结构时间复杂度机器执行基本运算数量总和。描述算法的时间效率。假定计算机执行算法的每一个基本操作的时间是一个固定的时间单位,那么有多少个基本操作就代表会花多少时间单位。虽然对于不同机器环境而言确切的时间单位不同,但是对于算法进行多少个基本操作在规模数量级上却是相同的。示例:则上图时间复杂度为:T(n) = n^3 *2在分析中,只看大概特征就够了,所以: T(n) = n^3对于

2020-06-10 21:28:30 307

原创 消息队列系统Kafka_01

这里写目录标题消息队列消息队列的应用场景消息队列的两种模式Kafkakafka的基本架构kafka集群环境搭建Kafka集群操作消息队列消息:是指在应用系统之间传送的数据。队列:排队的模型 先进先出 类似于火车进隧道。消息队列(Message Queue)是一种应用间的通信方式。消息发布者只管把消息发布到MQ中而不管谁来取,消息使用者只管从MQ中取消息而不管谁发布的。帮助应用系统解耦。RabbitMQ,ActiveMQ,RocketMQ:主要是基于pub/subKafka:主要是基于pus

2020-06-09 21:16:51 266

原创 Hadoop_24_基础环境增强

文章目录Hadoop High AvailabilityNamenode HAYarn HAHadoop HA集群的搭建Hadoop FederationFederation架构设计Hadoop High Availabilityhadoop的ha模式:一般实际工作当中都要求我们的任务 7 *24 小时的可用伪分布模式下,只有一个namenode,只有一个resourceManager,通过高可用,可以解决我们主节点单机故障的问题。HA(High Available), 高可用,是保证业务连续性

2020-06-07 22:55:58 170

原创 Hadoop_23_oozie与hue整合

oozie与hue整合停止oozie与hue的进程修改hue的配置文件修改hue的配置文件hue.iniThe URL where the Oozie service runs on. This is required in order forusers to submit jobs. Empty value disables the config check.Requires FQDN in oozie_url if enabledsecurity_enabled=falseLocation on HDF

2020-06-07 19:36:24 227

原创 Hadoop_23_oozie

文章目录oozieoozie的安装解决oozie的页面的时区问题oozie的使用使用oozie调度shell脚本使用oozie调度hive使用oozie调度MR任务oozie的任务串联oozie的任务调度,定时任务执行oozie当中任务的查看以及杀死oozieOozie是运行在hadoop平台上的一种工作流调度引擎,它可以用来调度与管理hadoop任务,如,MapReduce、Pig等。OozieWorkflow中的一个个的action(可以理解成一个个MapReduce任务)根据向无环图(DAGDi

2020-06-07 19:17:09 322

原创 Hadoop_22_hue

文章目录Huehue的安装hue与其他框架的集成hue与hadoop的HDFS以及yarn集成配置hue与hive集成配置hue与impala的集成配置hue与mysql的集成解决hive以及impala执行权限不足的问题HueHUE=Hadoop User Experiencehue是一个开源的Apache Hadoop UI系统,由Cloudera Desktop演化而来,最后Cloudera公司将其贡献给Apache基金会的Hadoop社区,它是基于Python Web框架Django实现的。

2020-06-06 15:40:09 193

原创 Hadoop_21_impala

文章目录impalaimpala的架构impala的查询计划impala的安装挂载磁盘impalaimpala是cloudera 公司开源提供的一个sql交互查询的工具,兼具hive的优势,具有批量处理以及实时处理等优势。impala的优点与缺点:impala的优点:快,非常快impala的缺点:内存消耗大,官方推荐每台机器最少128G的内存impala不提供数据的存储功能,只提供数据的计算的功能。impala与hive的关系:紧耦合的关系impala的架构impala-server:

2020-06-05 17:42:17 227

原创 Hadoop_20_综合案例3

文章目录hive级联求和每月小费统计需求:统计每个用户每个月总共获得多少小费需求:统计每个用户累计小费关键路径转化率分析需求:查询每一个步骤的总访问人数需求:查询每一步骤相对于路径起点人数的比例需求:查询每一步骤相对于上一步骤的漏出率数据导出工作流调度hive级联求和每月小费统计数据如下需求:统计每个用户每个月总共获得多少小费select username,month,sum(salary) from t_salary_detail group by username,month;需求:统

2020-06-04 16:06:06 249

原创 Hadoop_19_综合案例2

文章目录数仓的设计维度建模星型模式雪花模式星座模式案例项目数仓设计ETL建表上传数据至hdfs原始表拆分统计分析流量分析多维度统计PV总量分组求TOPN人均浏览量受访分析各页面PV热门页面统计访客分析独立访客每日新访客访客visit分析回头/单次访客统计人均访问频次人均页面浏览量数仓的设计维度建模(dimensional modeling)是专门用于分析型数据库、数据仓库、数据集市建模的方法。维度建模的基本概念维度表:维度表示你要对数据进行分析时所用的一个量。例:昨天下午我在星巴克花费200元喝了

2020-06-03 17:20:25 400

原创 Hadoop_18_综合案例

这里写目录标题网站点击流日志数据分析点击流数据模型网站流量分析网站流量分析模型举例流量分析常见分类整体技术流程及架构数据处理流程系统的架构数据采集数据预处理网站点击流日志数据分析点击流数据模型点击流(Click Stream)是指用户在网站上持续访问的轨迹。通过js的方式,可以获取到访客在网站上面点击的所有的链接,按钮,商品,等等。埋点收集的数据都发送到了日志服务器,大概一条日志1kb。可以通过日志分析问题,如:有多少用户访问一共访问了多少页面平均一个用户访问了多少个页面页面的停留时间

2020-06-02 17:21:11 414

原创 Hadoop_17_sqoop

文章目录sqoopsqoop1安装sqoop工具的使用数据导入导入数据库表数据到HDFS导入到HDFS指定目录导入到hdfs指定目录并指定字段之间的分隔符导入关系表到hive导入关系表到hive并自动创建hive表导入表数据子集sql语句查找导入hdfs增量导入如何解决增量导入的问题?如何解决导入减量数据的问题?数据导出hdfs导出到mysqljava执行shell命令: sshxcutesqoopsqoop是apache旗下一款,数据导入导出的工具。通过MR的inputformat和outputfo

2020-06-01 22:04:33 160

原创 Hadoop_16_azkaban

文章目录工作流调度器azkabanazkaban架构azkaban的编译soloserver模式的安装与使用解压修改两个配置文件启动solo-server浏览器页面访问多服务模式的安装数据库准备解压软件安装包安装SSL安全认证azkaban web server安装azkaban executor server 安装启动服务工作流调度器azkabanAzkaban官网是由Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban定义了一种KV

2020-05-31 22:53:53 283

原创 Hadoop_16_flume

文章目录flumeflume安装部署采集案例flume采集目录到hdfsflume监控某个文件的变化flume的多个agent实现串联node02安装flumenode02配置flume配置文件node02开发脚本文件往文件写入数据node03开发flume配置文件顺序启动flume的failover高可用机制角色分配node01安装配置flume与拷贝文件脚本node02与node03配置flumecollection顺序启动命令FAILOVER测试flume的load balancer负载均衡机制角色分

2020-05-31 18:12:26 159

原创 Hadoop_15_hive调优

这里写目录标题hive数据存储与压缩调优Fetch抓取hive本地模式表的优化JoinMapJoinGroup ByCount(distinct)笛卡尔积使用分区剪裁、列剪裁动态分区调整分桶数据倾斜map个数reduce个数jvm重用hive数据存储与压缩数据的存储格式:两大类:行式存储 列式存储行式存储两种:textFile sequenceFile列式存储两种:parquet orc一般原始数据,别人给过来的,都是textfile这种形式的经过分析之后通过insert overwr

2020-05-30 22:25:23 347

原创 Hadoop_14_hive基本操作

这里写目录标题hive数据库与数据库表创建数据库创建表四种常见的表模型管理表外部表分区表外部分区表综合练习分桶表修改与删除hive数据加载hive查询语法hive排序hive Shell参数hive函数自定义函数示例hive的数据压缩开启Map输出阶段压缩开启Reduce输出阶段压缩hive的数据存储格式hive数据库与数据库表创建数据库创建一个数据库,就会再hdfs中创建一个文件夹。hive的表存放位置模式是由hive-site.xml当中的一个属性指定的hive.metastore.wareh

2020-05-29 20:13:54 274

原创 Hadoop_13_数仓工具hive

hive数据仓库数据仓库的主要特征数据仓库与数据库的区别数据仓库分层架构数据仓库元数据管理hive基本概念hive基本概念hive架构hive的数据存储hive安装derby版hive直接使用使用mysql共享hive元数据安装mysql (使用yum源进行安装)修改hive的配置文件hive三种交互方式Hive交互shellHive JDBC服务Hive命令行交互数据仓库数据仓库,Data Warehouse,可简写为DW或DWH。据仓库的目的是构建面向分析的集成化数据环境。数据仓库不“生产”,也

2020-05-28 16:52:45 226

原创 Hadoop_12_Mapreduce

Mapreduce增强自定义groupingCompatator实现分组求topN程序实现OrderBeanMapperPartitionComparatorReducerMain分区与分组的关系mapreduce参数优化资源相关参数在mapred-site.xml配置文件:在yarn-site.xml配置文件容错相关参数本地运行mapreduce 作业效率和稳定性相关参数yarn资源调度yarn主要组件和作用yarn当中的调度器yarn常用参数设置自定义groupingCompatator实现分组求to

2020-05-27 17:21:02 149

原创 Hadoop_11_案例练习

文章目录Hadoop案例:求取共同好友题目分析:用两个mapreduce实现第一个mapreduce第二个mapreducemapreduce倒排索引MapperReducer小文件合并自定义inputformatMyInputFormatMyRecordReaderMyMapperMyMain不同数据输出到不同路径自定义outputFormatMyOutputFormatMyRecHadoop案例:求取共同好友题目用户:用户的好友列表A:B,C,D,F,E,OB:A,C,E,KC:F,A,D,

2020-05-26 19:41:05 283

原创 Hadoop_10_maptask,reducetask,join算法

mapreduceMapTaskmapTask基础设置配置ReduceTaskMapReduce shuffle过程Snappy压缩join算法Reduce端joinMap端joinMapperMainMapTaskmaptask的并行度: 是指代有多少个maptask的任务FileInputFormat 里面有一个方法: getSplits这个方法返回的就是我们一个文件,有多少个切片,一个切片对应我们一个maptask的任务获取文件的切片的几个参数控制:mapred.min.split.

2020-05-25 21:43:12 176

原创 Hadoop_09-10_MapReduce上网流量综合练习

MapReduce上网流量综合练习手机上网流量的综合统计日志格式需求一:统计求和手机上网流量的综合统计日志格式需求一:统计求和统计每个手机号的上行流量总和,下行流量总和,上行总流量之和,下行总流量之和分析:以手机号码作为key值,上行流量,下行流量,上行总流量,下行总流量四个字段作为value值,然后以这个key,和value作为map阶段的输出,reduce阶段的输入...

2020-05-25 15:43:38 205

azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz

azkaban编译后的单服务模式安装模式所需要的编译后的安装包:azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz

2020-05-31

flume_interceptor-1.0-SNAPSHOT.jar

文章Hadoop_16_flume中自定义拦截器的jar包,可以用来测试使用。 在数据采集之后,通过flume的拦截器,实现不需要的数据过滤掉,并将指定的第一个字段进行加密,加密之后再往hdfs上面保存。

2020-05-31

空空如也

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

TA关注的人

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