- 博客(736)
- 资源 (92)
- 收藏
- 关注
原创 逆向解Unity打包的代码和资源(二)
我之前说过用Unity打包发布apk包的时候要非常小心,加密和防逆向篡改,因为unity游戏太容易篡改或逆向出来了,所以代码混淆、加密等工作还是十分重要的。大家如果使用的是unity开发游戏或者其他应用,不妨看下专栏的这篇文章:保护你的 Unity 游戏免遭黑客攻击:最佳实践和安全提示-CSDN博客相信这篇文章会对你的代码保护有启发,一旦你的未加密加固的apk流入网络,相当于裸奔,画面太美简直不敢直视,
2024-04-15 00:15:00 17495
原创 游戏服务器架构:游戏服务端如何支持百万玩家同时在线
用通俗的方法来描述一个好的服务端架构,最基础也是最重要的就两点: 支持百万玩家同时在线,不出问题。这两点也就分别对应了高并发和高可用。这篇文章系统的介绍游戏服务端中的高并发和高可用。高并发和高可用是一个相辅相成的工作,当我们支持百万玩家同时在线时却无法保证服务器的稳定可用,那高并发支持就无从谈起;而如果当玩家数量较多时服务器就常常出问题,那也不能称为高可用。
2024-04-12 00:30:00 18603 4
原创 【go从入门到精通】全面掌握struct结构体的成员函数
先后在 IBM PlatformComputing从事网格计算,淘米网,网易从事游戏服务器开发,拥有丰富的C++,go等语言开发经验,mysql,mongo,redis等数据库,设计模式和网络库开发经验,对战棋类,回合制,moba类页游,手游有丰富的架构设计和开发经验。
2024-04-12 00:15:00 19888
原创 Keras 与 PyTorch:深层次探讨哪种机器学习框架最适合你?
但是,为了在 PyTorch 中集成类似 Keras 的功能,你可以探索 PyTorch Lightning 等高级接口,它简化了 PyTorch 代码,以实现更简单的模型开发。Kanerika 在 Keras 和 PyTorch 等 AI/ML 框架方面拥有丰富的专业知识,再加上全面的数据管理和强大的分析能力,使其在美国成为领先的 AI/ML 实施合作伙伴。想象一下你最喜欢的流媒体平台上的个性化推荐、保护你的金融交易的欺诈检测系统或优化你的业务运营的预测性维护 - 这些只是机器学习变革潜力的一瞥。
2024-04-12 00:15:00 52
原创 iOS内购-部分玩家无法恢复购买
所有有丢单问题和兑换码无效的玩家的问题都解决了,不过这个bug还是得反馈的,一个功能对应一段代码,恢复购买目前是通过两种方式实现,其实并不是一个好的代码结构,反馈中,等待Apple bug进一步的回复OC的语法是shi与Apple TSI沟通3要素简单描述问题录制视频重现问题同时连接Macos的Console.app发调试信息。
2024-04-11 00:30:00 45301 1
原创 【go从入门到精通】struct结构体的内存布局问题
先后在 IBM PlatformComputing从事网格计算,淘米网,网易从事游戏服务器开发,拥有丰富的C++,go等语言开发经验,mysql,mongo,redis等数据库,设计模式和网络库开发经验,对战棋类,回合制,moba类页游,手游有丰富的架构设计和开发经验。
2024-04-11 00:15:00 698
原创 AutoTest 框架分析OneFlow框架的算子对齐任务
以百度的深度学习框架PaddlePaddle为例,一般的做法是调用其他标准库(例如调用cudnn的卷积验证卷积算子的正确性,调用scipy的erf验证erf算子的正确性)或者直接使用Numpy模拟的计算结果(例如,使用Numpy进行模拟来验证全算子的正确性)。PyTorch还硬编码了一些测试用例,即将固定输入用例的标准答案与算子计算出的结果进行比较,分析算子的正确性。然而,对于给定的输入,它将分别使用OneFlow和PyTorch运行,记录运行过程中获得的每个张量并记录相应的梯度张量的值。
2024-04-11 00:15:00 66
原创 RuntimeError: CUDA out of memory.
我认为对于 GPU 内存较低的 PyTorch 用户来说,这是一个非常常见的消息:X MiB free;X cached)但似乎效果不是很大。虽然为清除占用的cuda内存提供了一个很好的选择,我们还可以通过使用手动清除未使用的变量,但在使用这些命令后,错误可能会再次出现,因为 pytorch 实际上并没有清除内存,而是清除了对变量占用的内存的引用。因此,重新启动内核后减小batch_size并找到最佳batch_size是最好的选择(但有时不是一个非常可行的选择)。其中,两个参数都是可选的。
2024-04-10 11:55:33 11857
原创 RuntimeError: one of the variables needed for gradient computation has been modified by an inplace o
您在 pytorch 中遇到如下错误。!这意味着你使用张量或其部分来计算同一张量的一部分。下面的代码演示了这个错误。要修复此错误,请克隆赋值表达式右侧使用的张量部分。
2024-04-10 11:50:13 11732
原创 修复 Windows 上的 PyTorch 1.1 github 模型加载权限错误
→ 1 en2de = torch.hub.加载('pytorch/fairseq','transformer.wmt16.en-de',tokenizer='moses',bpe='subword_nmt')PermissionError: [WinError 32] 该进程无法访问该文件,因为该文件正在被另一个进程使用:'C:\\Users\\Ron/.cache\\torch\\hub\\master.zip'330 kwargs.pop('force_reload',无)
2024-04-10 11:42:31 11823
原创 在 Google Colab 中安装torch-xla 报错
高科,先后在 IBM PlatformComputing从事网格计算,淘米网,网易从事游戏服务器开发,拥有丰富的C++,go等语言开发经验,mysql,mongo,redis等数据库,设计模式和网络库开发经验,对战棋类,回合制,moba类页游,手游有丰富的架构设计和开发经验。
2024-04-10 11:37:55 11697
原创 Pytorch Windows EOFError: Ran out of input when num_workers>0
关于深度学习的一些学习框架,我使用过pytorch,caffe,caffe2,openchatkit,oneflow等,最近我将长达几十万字的报错手册重新进行了整理,制作出一个新的专栏,主要记录这几种常见的开发框架在安装和使用过程中常见的报错,以及我是如何解决掉的,以此来帮助更多的深度学习开发者解决你的问题。总之,Windows 上 PyTorch 中的“EOFError:Ran out of input when num_workers>0”错误是一个复杂的问题,可能由于兼容性、资源或软件冲突而出现。
2024-04-10 11:18:09 228
原创 ModuleNotFoundError: No module named ‘torch’
关于深度学习的一些学习框架,我使用过pytorch,caffe,caffe2,openchatkit,最近,我选择了 PyTorch 以及 NumPy、SciPy、MatplotLib 和其他 Python 库。经过一番研究,我发现这是一个常见错误,我被要求运行“pip”和“python”命令来检查版本并根据需要进行升级等,但没有任何效果。作为一名典型的学习者,我从以下命令开始在 Jupyter 中安装“PyTorch”。现在,当我重新运行“PyTorch”命令时。Jupyter 中的 PyTorch。
2024-04-10 10:57:31 11690
原创 深度学习框架中张量的执行过程
本文重点介绍深度学习框架中张量执行背后发生的情况。以操作符oneflow.relu为例,介绍执行该操作符需要依赖的Interpreter和VM机制。希望本文对您对深度学习框架的系统设计有所启发。在上面的代码中,输入x被送入算子relu,并打印结果。一切看起来简单而正常。但如果有人问你是否清楚这背后发生了什么以及relu GPU何时调用对应的Cuda Kernel,你可能就不是那么清楚了。我们习惯于直接使用深度学习框架,不会多思考,因此可能对其背后的原理理解不深。然而在这篇文章中,我将尝试解决这个问题。
2024-04-10 09:59:22 74
原创 集成 LlamaIndex 和 Qdrant 相似性搜索以进行患者记录检索
介绍由于医疗技术、数字健康记录(EHR)和可穿戴健康设备的进步,医疗领域目前正在经历数据的显着激增。有效管理和分析这些复杂多样的数据的能力对于提供定制医疗保健、推进医学研究和改善患者健康结果至关重要。矢量数据库是专门为高效处理和存储多维数据而定制的,作为一系列医疗保健用途的有效工具而得到认可。例如,目前,医疗专业人员很少实时利用过去的患者记录数据,尽管它们是信息宝库并且可以帮助诊断。如果我们能够构建一个系统,让医生、护士和护理人员仅使用自然语言输入即可快速访问过去的患者记录,结果会怎样?
2024-04-10 00:30:00 87 1
原创 【go从入门到精通】初识struct结构体
在Go语言中有一些基本的数据类型,如string、整型、浮点型、布尔等数据类型,Go语言中可以使用type关键字来定义自定义类型。自定义类型是定义了一个全新的类型。我们可以基于内置的基本类型定义,也可以通过struct定义。const (RANKTYPE_GLOBAL_DECORATE RANKTYPE = 0 //全服装扮排名RANKTYPE_PRIVANCE_DECORATE RANKTYPE = 1 //省级装扮排名。
2024-04-10 00:15:00 19780
原创 在 Unity 中存储和查找玩家数据指南
Unity,可以创造精彩的游戏。但为了使游戏真正具有交互性和动态性,你需要知道如何在运行时存储和查找玩家数据。我将使用易于理解的示例来探索在 Unity 中管理数据的各种方法。Unity 允许你轻松地将 C# 对象转换为 JSON 格式(序列化),反之亦然(反序列化)。{“playerName”:“约翰”,“playerScore”:1000,“trophyCount”:5,“hasWon”:true}我们举一个在 Unity 中使用 JSON 存储玩家得分、姓名、奖杯数和获胜状态的示例。
2024-04-09 00:15:00 31370 3
原创 【go从入门到精通】代码规范
代码规范:使用辅助工具帮助我们在每次提交 PR 时自动化地对代码进行检查,减少工程师人工审查的工作量;最佳实践目录结构:遵循 Go 语言社区中被广泛达成共识的目录结构,减少项目的沟通成本;模块拆分:按照职责对不同的模块进行拆分,Go 语言的项目中也不应该出现modelcontroller这种违反语言顶层设计思路的包名;显示与隐式:尽可能地消灭项目中的init函数,保证显式地进行方法的调用以及错误的处理;
2024-04-09 00:15:00 32346 2
翻译 如何将 PyTorch 模型移植到 Tensorflow-第 1 部分
然后,构建两个python脚本,一个用于pytorch推理(这里我称之为pytorch_inference.py),另一个用于tensorflow推理(我称之为tensorflow_inference.py)。使用两个.npy(torch_model_name.npy和tf_model_name.npy)是为了检查上述函数的整体参数名称。,并将两个框架的模型重命名为 model_partial(这里有 Pytorch 和 Tensorflow)。接下来,你必须了解模型中的操作类型并比较它们的输出和用法。
2024-04-08 09:49:42 63 1
原创 如何在Unity中使用设计模式
在 Unity 环境中,设计模式是游戏开发人员遇到的常见问题的通用解决方案。在此示例中,Player 类是主体,HealthUI 类是观察者。假设我们的游戏中有两个管理器:AudioManager 和 GameManager。观察者模式通常用于 UI 更新、事件处理或多个对象需要响应另一个对象中的更改而无需在它们之间紧密耦合的任何场景。现在,假设游戏中有各种服务或管理器,并且需要一种集中的方式来管理和访问它们。输入服务定位器模式。现在,让我们看看如何在 Unity 项目中使用此服务定位器。
2024-04-08 09:30:32 206
原创 【go从入门到精通】作用域,包详解
而闭包函数,GetGa()返回的匿名函数,赋值给b,每次执行b(),Ga的值都被记忆在内存中,下次执行b()的时候,取b()上次执行后Ga的值,而不是全局变量Ga的值,这就是闭包函数可以使用包含它的函数内的变量,因为作为代码块一直存在,所以每次执行都是在上次基础上运行。在代码中使用big.Int时,big指的才是.go文件中定义的包名称。当某个包被导入时,如果该包还导入了其它的包,那么会先将其它包导入进来,然后再对这些包中的包级常量和变量进行初始化,接着执行init()函数(如果有的话),依次类推。
2024-04-08 00:15:00 32199 1
原创 Unity UI 优化技巧
将画布分割为多个Canvas 是 Unity UI 的重要组成部分。它创建一个网格来表示放置在其顶部的 UI 元素,在 UI 元素更改时重建网格,并调用 GPU 来渲染实际的用户界面。创建这些网络可能非常昂贵。UI 元素应该写在组件中,以便可以使用尽可能少的签名来下载它们。由于批量生产成本高昂,我们只想在需要时复制它们。问题在于,当 Canvas 的任意数量的元素发生变化时,必须重新计算整个 Canvas 以找出如何以最佳方式绘制其元素。许多用户只为包含数千个元素的 UI 创建一个 Canvas。
2024-04-07 09:46:05 31736 1
原创 【go从入门到精通】常量和枚举详解
作者简介: 高科,先后在 IBM PlatformComputing从事网格计算,淘米网,网易从事游戏服务器开发,拥有丰富的C++,go等语言开发经验,mysql,mongo,redis等数据库,设计模式和网络库开发经验,对战棋类,回合制,moba类页游,手游有丰富的架构设计和开发经验。 (谢谢你的关注)——————————————————————————————————————————常量是指程序在执行过程中不能改变的固定值。常量可以是任何基本数据类型,例如整型常量、浮点常量、字符常量或
2024-04-07 00:15:00 32805
原创 【go从入门到精通】一文把map字典搞得明明白白
key 可以是任意可以用 == 或者!= 操作符比较的类型,比如 string、int、float。所以数组、函数、字典、切片和结构体不能作为 key (含有数组切片的结构体不能作为 key,只包含内建类型的 struct 是可以作为 key 的),但是指针和接口类型可以。value 可以是任意类型的;通过使用空接口类型,我们可以存储任意值,但是使用这种类型作为值时需要先做一次类型断言。map 也可以用函数作为自己的值,这样就可以用来做分支结构:key 用来选择要执行的函数。
2024-04-03 00:15:00 43510 2
原创 系统设计理念:满足设计要求
因此,如果我们的 SLA 保证 99.99% 的可用性,但我们的可用性低于这一水平,我们可能必须向客户提供退款或其他补偿。这可能意味着实施冗余系统,并确保始终有一个备份准备好在发生故障时接管,或者可能意味着将我们的系统设计为优雅地降级,因此即使某些功能不可用,核心功能也保持不变。如果我们的 SLO 过于宽松,我们可能会始终满足它们,但仍然违反我们的 SLA,从而导致客户不满意和潜在的经济处罚。例如,我们可能会设置一个 SLO,规定我们的 Web 服务应在 300 毫秒内(99.9% 的时间)响应请求。
2024-04-02 09:57:56 38460 1
原创 代理服务器:转发代理和反向代理是如何工作的?
这意味着如果多个用户请求相同的内容,代理可以从其缓存中提供该内容,而不是每次都从外部服务器获取内容,从而缩短加载时间并减少带宽。客户端向特定网址发送请求,反向代理将该请求转发到其背后的适当服务器。:关心隐私的个人可能会使用转发代理来隐藏他们访问的网站的 IP 地址和其他识别信息,从而难以跟踪他们的 Web 浏览活动。:它们将传入的网络流量分布在多个服务器上,确保没有任何一台服务器获得过多的负载,并防止任何服务器成为瓶颈。本质上,它接收来自客户端的请求,将其转发到相关服务器,然后将服务器的响应返回给客户端。
2024-04-02 00:15:00 38519
原创 Meta 如何将缓存一致性提高到 99.99999999
鲍勃、玛丽和爱丽丝。在这种情况下,当 TAO 副本查询 BOB 和 Mary 所在的区域时,它们的数据不一致,它会将消息发送到没有 Alice 消息的区域。绕过缓存的查询可能是计算密集型的,并且还可能使数据库面临风险,因为保护数据库和扩展读取繁重的工作负载是缓存的两个最常见的用例。根据定义,缓存不保存数据的真实来源,因此当真实来源中的数据发生更改时,应该有一个主动使过时缓存条目失效的过程。从元的角度来看,缓存不一致几乎与数据库中的数据丢失一样糟糕,从用户的角度来看,它们可能会导致非常糟糕的用户体验。
2024-04-01 11:00:42 38481
原创 负载均衡策略和技术的基本指南
CLB可以根据请求的内容进行流量分发,支持HTTP、HTTPS和TCP协议,适用于Web应用、移动应用和API服务等。:经典负载均衡、应用负载均衡和网络负载均衡。腾讯云和阿里云的负载均衡器都提供自动扩展、健康检查、会话保持、监控报警等功能,可以根据应用的需求选择合适的负载均衡器类型。负载均衡器的一个基本功能是对服务器进行持续的运行状况检查,以确保流量仅定向到在线且响应良好的服务器。在某些配置中,DNS 故障转移可以将流量从不再接受连接(例如发生故障的负载均衡器)的 IP 地址重新路由到预配置的备用 IP。
2024-04-01 00:15:00 38614
原创 缓存和缓存的常用使用场景
通过使用缓存,可以将这些数据存储在共享的缓存中,实现数据的共享和一致性,减少不必要的数据传输和同步操作。通过使用缓存,可以将一部分读取频率较高的数据存放在内存中,从而减少对数据库的访问压力,提高服务器的并发处理能力。通过使用缓存,可以将一部分需要频繁计算的结果存放在内存中,使得服务器能够快速响应玩家的请求,提供更好的游戏体验。一种常见的策略是 LRU(最近最少使用)。实际上在我们的游戏服务器开发过程中,经常使用缓存,主要是提升服务器的吞吐,减少DB的读写压力,最大可能的提升游戏服务器的性能和玩家用户体验。
2024-03-29 15:50:13 38793 2
原创 Unity WebRequest 变得简单
C# 中的 using 是一种简写,用于将实现 IDisposable 的对象的创建和使用包装在 try-finally 块中,其中在 finally 块中调用 Dispose 方法。")):这一行声明了一个名为 www 的 UnityWebRequest 对象,并使用对特定 URL 的 GET 请求来初始化它。C# 中的 using 语句用于确保特定资源(实现 IDisposable 接口的对象)得到正确清理,并在不再需要时释放其关联资源。让我们从向 URL 发出 GET 请求的基本示例开始。
2024-03-29 09:30:20 57837 8
原创 让Unity的协程变得简单
虽然 Unity 中的协程提供了用于管理异步任务的强大工具,但它们确实存在某些缺点。Unity 中的协程是处理异步任务的强大工具,例如动画、输入处理或任何不需要在单帧中发生的操作。
2024-03-28 15:53:04 57646 1
原创 【go从入门到精通】匿名函数详解
函数值字面量是一种表达式,它的值被称为匿名函数。从形式上看当我们不给函数起名字的时候,可以使用匿名函数,例如:不过我们经常用下面这两种方式使用匿名函数的:1.将匿名函数赋值给一个变量,然后通过这个变量调用函数的方式来实现对匿名函数的调用。
2024-03-28 00:15:00 58715 3
原创 GeoLite2 geoip数据库下载和使用
GeoLite2 数据库是免费的 IP 地理定位数据库,与MaxMind 的 GeoIP2 数据库相当,但准确度较低。GeoLite2 国家、城市和 ASN 数据库 每周更新两次,即每周二和周五。GeoLite2 数据还可作为 GeoLite2 Country 和 GeoLite2 City Web 服务中的 Web 服务提供。GeoLite2 Web 服务的用户每天每项服务的 IP 地址查找次数限制为 1000 次。
2024-03-27 10:57:16 61504 6
原创 【go从入门到精通】函数详解
Go语言函数基本组成:关键字func、函数名、参数列表、返回值、函数体和返回语句。func 函数名(参数列表) (返回值列表) {// 函数体return函数从第一条语句开始执行,直到执行return语句或者执行函数的最后一条语句。有点简单,很多做C,C++开发的都知道声明函数原型是一件有点冗余的事情,而转到go之后,你会发现go函数用起来便轻松简洁很多,至少不需要你声明函数原型。那么我们接下来一起先看看go函数都有哪些特点:• 无需声明原型。• 支持不定 变参。• 支持多返回值。
2024-03-27 09:15:51 71386 1
原创 AI学习笔记— 机器学习的种类
AI时代已经来临。我们除了学习AI领域常用的Python语言外,还可以做什么?这是「AI学习笔记」系列想要探讨的议题。包括AI是什么?AI可以做什么?以及AI未来的发展该与如何应用AI等问题。笔者个人的愿望是要在今年(虽然目前Q1)与明年好好的学习并理解AI领域相关的知识。笔者并非所谓的理工男,在学习的过程中透过阅读相关书籍、参加线上课程,并且加上实作等等方式来学习。期间并非一帆风顺。借此将这段时间学习的心得做纪录,希望对其他所谓的「文科生」,却想要学习AI相关知识的朋友有所帮助。
2024-03-27 01:30:00 60
原创 RWTH-PHOENIX Weather数据集模型说明和下载
RWTH-PHOENIX Weather 2014 T数据集说明:德国公共电视台PHOENIX在三年内(2009 年至 2011 年) 录制了配有手语翻译的每日新闻和天气预报节目,并使用注释符号转录了 386 个版本的天气预报。此外,我们使用自动语音识别和手动清理来转录原始德语语音。因此,该语料库允许训练从手语视频输入到口语的端到端手语翻译系统。本文将简要说明这个库的用法和提供快速下载地址链接。
2024-03-26 12:03:00 341
原创 机器学习的开发经验和实践总结
首先,网站后端的资料库是建立在Microsoft SQL Server 上,所以要捞这部分的资料就要从Production 的SQL Server 去捞资料,接着再用Web Based,或是connector 从资料库捞资料,最后,再用Python 或是其他语言输出到Kaggle Data Set,可以说是非常麻烦。做分析在商业上的成效非常显著,但第一线的伙伴通常不是没有资料,就是没有分析的技能,因此,你只要善用分析的技能将手上的资料,做一个非常简单的分析,提供给做决策、产品的人参考,就能带来很棒的成效。
2024-03-26 00:30:00 53
原创 【go从入门到精通】for和for range的区别
for 和 for range有什么区别?for可以遍历array和slice,遍历key为整型递增的map,遍历stringfor range可以完成所有for可以做的事情,却能做到for不能做的,包括遍历key为string类型的map并同时获取key和value,遍历channel所以除此之外还有其他区别吗?我们来用几个代码块说明他们的区别不仅仅是上面的这几点
2024-03-26 00:15:00 59457 4
原创 机器学习:处理jira工单的分类问题
如何根据jira工单的category、reporter自动找到处理它的组呢?这是一个利用机器学习中knn算法的小实践.机器学习是一种技术,它的目的是给机器学习能力,让它们可以根据数据自己做决定,所以对于训练机器掌握这种学习能力,有两种学习类型 ,一是监督学习,二是非监督学习。监督学习是我们引导机器去学习,我们希望机器可以按照我们教他的模式来理解问题。而非监督学习则相反,我们对数据不了解,我们希望借助机器从其中发现一些模式。
2024-03-25 16:17:18 242
ACM挑战程序设计竞赛C++习题和代码
2024-09-11
Unity射击游戏开发教程的源码
2024-09-09
PL/0 编译器的扩充-实验报告
2024-09-04
BERT: Pre-training of Deep Bidirectional Transformers forLanguag
2024-09-03
车牌识别算法C++项目源码
2024-09-03
QT绘制中秋佳节的月亮阴晴圆缺动画
2024-09-03
国庆特惠-世界国家名称及国旗数据
2024-09-03
分类不锈钢板中的表面缺陷类型数据集
2024-09-02
全国热门旅游景点数据集合excel
2024-09-02
Acm 练习题集合 C语言开发
2024-08-29
Deep Learning From Scratch训练营学习笔记
2024-08-29
图书馆管理系统C++语言
2024-08-29
回合制卡牌战斗游戏服务器架构和业务源码(跨平台,框架和主逻辑C++,登录支付php)
2024-08-22
基于MindX SDK 开发,使用yolo算法来进行目标检测的python代码
2024-08-19
K-means聚类算法
2024-08-19
mxVision-5.0.1打包下载,华为服务器arm环境
2024-08-16
yolov8的入门级(训练+预测)的代码demo
2024-08-14
神经网络学习资料整理从入门到精通
2024-08-14
golang开发使用mongodb统计数据并输出到excel中
2024-08-12
海康ISAPI开发指南-音频产品-广播音频输出
2024-08-12
rollercoaster-dataset过山车数据集下载
2024-08-09
海康音柱服务调用C++工程
2024-08-05
育龄人群备孕胎次与避孕方式数据集
2024-07-25
糖尿病并发症预警数据集
2024-07-25
海康相机算法检测SDK的C++开发项目源码
2024-07-22
aarch64-linux-gnu环境opencv4.5.5交叉编译库
2024-06-06
opencv跨平台编译库
2024-05-31
如何获取车机系统内部的文件和文件夹
2023-11-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人