自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(113)
  • 收藏
  • 关注

原创 RNN-循环神经网络

目录词嵌入层RNN网络层RNN 网络原理自然语言处理(Nature language Processing, NLP)研究的主要是通过计算机算法来理解自然语言。对于自然语言来说,处理的数据主要就是人类的语言,我们在进行文本数据处理时,需要将文本进行数据值化,然后进行后续的训练工作。词嵌入层首先会根据输入的词的数量构建一个词向量矩阵,例如: 我们有 100 个词,每个词希望转换成 128 维度的向量,那么构建的矩阵形状即为: 100*128,输入的每个词都对应了一个该矩阵中的一个向量。在 PyTorch 中,

2024-05-20 12:59:31 983 2

原创 梯度下降算法

​ 在线性回归中,我们使用最小二乘法,能够直接计算损失函数最小值时的参数值,但是,最小二乘法有使用的限制条件,在大多数机器学习的使用场景之下,我们会选择梯度下降的方法来计算损失函数的极小值,首先梯度下降算法的目标仍然是求最小值,但和最小二乘法这种一步到位、通过解方程组直接求得最小值的方式不同,梯度下降是通过一种“迭代求解”的方式来进行最小值的求解,其整体求解过程可以粗略描述为,先随机选取一组参数初始值,然后沿着某个方向,一步一步移动到极小值点​ 一个人被困在山上,需要从山上下来。

2024-05-18 20:02:41 1280 5

原创 Logistic回归

本章节讲解逻辑回归的基本原理、逻辑回归模型构建过程。课程环境使用Jupyter notebook环境。

2024-05-17 09:43:00 1143 5

原创 机器学习中的聚类

它将一组数据分成若干个不同的群组,使得每个群组内部的数据点相似度高,而不同群组之间的数据点相似度低。质心的选择会影响图的松散程度:SSE = (−0.2) 2 + (0.4) 2 + (−0.8) 2 + (1.3) 2+ (−0.7) 2 = 3.02。对于n个点的数据集,迭代计算 k from 1 to n,每次聚类完成后计算 SSE,SSE 是会逐渐变小的,因为每个点都是它所在的簇中心本身。对计算每一个样本 i 到同簇内其他样本的平均距离 ai,该值越小,说明簇内的相似程度越大。

2024-05-13 23:28:16 1459 3

原创 集成学习思想

集成学习思想线性回归、逻辑回归、决策树都是单一模型预测我们想把多个相同模型、多个不同种类的模型组合起来,形成一个更强大的模型进行预测集成学习概念:将多个学习器(也称为基学习器)组合成一个更强大的学习器的机器学习技术。通过利用多个学习器的优势来提高预测的准确性和鲁棒性,从而达到更好的性能表现。集成学习通过构建多个模型来解决单一预测问题生成多基学习器,各自独立地学习和预测通过平权或者加权的方式,整合多个基学习器的预测输出。

2024-05-13 15:07:27 926 2

原创 机器学习特征降维

相关系数的值介于–1与+1之间,当 r>0 时,表示两变量正相关,r<0 时,两变量为负相关,当 |r|=1 时,表示两变量为完全相关,当r=0时,表示两变量间无相关关系。斯皮尔曼相关系数与之前的皮尔逊相关系数大小性质一样,取值 [-1, 1]之间,斯皮尔曼相关系数比皮尔逊相关系数应用更加广泛。PCA 通过对数据维数进行压缩,尽可能降低原数据的维数(复杂度)损失少量信息,在此过程中可能会舍弃原有数据、创造新的变量。通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变。

2024-05-12 22:56:06 889 4

原创 PyTorch的卷积和池化

卷积的计算是将卷积核放入左上角,在局部区域间做点积,然后将卷积核在Input上面依次从左向右,从上到下平移。左上角的点积操作:通过上面的卷积计算过程,我们发现最终的特征图比原始图像小很多,如果想要保持经过卷积后的图像大小不变, 可以在原图周围添加 padding 来实现按照步长为1来移动卷积核,得到上面的特征图,如果按照步长为2的话,特征图就变成了2*2的特征图了。

2024-05-12 19:56:44 533 3

原创 感知机和神经网络

我们今天学习的神经网络,不是人或动物的神经网络,但是又是模仿人和动物的神经网络而定制的神经系统,特别是大脑和神经中枢,定制的系统是一种数学模型或计算机模型,神经网络由大量的人工神经元连接而成,大多数时候人工神经网络能够在外界信息的基础上改变内部结构,是一种自适应的改变的过程,现代的神经网络是一种基于传统统计学的建模工具,常用来对输入和输出之间复杂的关系进行建模或者探索数据之间的模式人或动物的神经元如下,当人感受到刺激的时候,信号会通过传道部传递信号,最后会作用在效应部做出相应的反应。

2024-05-11 16:55:49 949 4

原创 机器学习面试篇

这样就将⼦集的选择看作是⼀个是⼀个优化问题,这⾥有很多的优化算法可以解决,尤其是⼀些启发式的优化算法,如GA,PSO,DE,ABC等,详⻅“优化算法——⼈⼯蜂群算法(ABC)”,“优化算法——粒⼦群算法(PSO)”。L1范数的解通常是稀疏性的,倾向于选择数⽬较少的⼀些⾮常⼤的值或者数⽬较多的insignificant的⼩值。L2正则化标识各个参数的平⽅的和的开⽅值。在机器学习中,正样本通常指的是那些标签或者类别与模型预测的目标一致的样本,而负样本则是指标签或类别与预测目标不一致的样本。

2024-05-11 15:45:51 826 5

原创 PyTorch 图像篇

计算机视觉技术是一门包括计算机科学与工程、神经生理学、物理学、信号处理、认知科学、应用数学与统计等多学科的综合性科学技术, 是人工智能的一个重要分支, 目前在智能安防、自动驾驶汽车、医疗保健、生成制造等领域具有重要的应用价值。

2024-05-10 20:08:01 1084

原创 简单的神经网络

对于二分类问题,假设我们只考虑正类(标签为1)和负类(标签为0)在多分类问题中,交叉熵损失函数可以扩展为−∑𝑖=1𝐾𝑦𝑖⋅log⁡(𝑝𝑖)−∑i=1K​yi​⋅log(pi​),其中𝐾K是类别的总数,( y_i )是样本属于第𝑖i个类别的真实概率(通常用one-hot编码表示),而𝑝𝑖pi​是模型预测该样本属于第( i )个类别的概率。全连接层通常用于网络的最后几层,它将之前层(如卷积层和池化层)提取的特征进行整合,以映射到样本标记空间,即最终的分类或回归结果。主要作用就是计算损失函数对模型参数的梯度,

2024-05-10 16:33:14 1181 1

原创 认识卷积神经网络

我们现在开始了解卷积神经网络,卷积神经网络是深度学习在计算机视觉领域的突破性成果,在计算机视觉领域,往往我们输入的图像都很大,使用全连接网络的话,计算的代价较高,图像也很难保留原有的特征,导致图像处理的准确率不高。

2024-05-09 22:49:21 1279 28

原创 神经网络案例实战

这样可以确保在训练集和验证集中各类别的比例与原始数据集中的比例相同,有助于提高模型的泛化能力,防止出现一份中某个类别只有几个。🔎我们可以自行将优化方法由 SGD 调整为 Adam , 学习率由 1e-3 调整为 1e-4 ,对数据数据进行标准化 ,增加网络深度。在这个问题中,我们不需要预测实际价格,而是一个价格范围,它的范围使用 0、1、2、3 来表示,所以该问题也是一个分类问题。数据预处理:对收集到的数据进行清洗和预处理,确保数据的质量和一致性。价格预测:使用训练好的模型来预测新手机的价格。

2024-05-08 23:01:53 1082 12

原创 认识大模型提示词

请注意,你生成后的内容服务于一个绘画AI,它只能理解具象的提示词而非抽象的概念,我将提供简短的中文描述,生成器需要为我提供准确的提示词,必要时优化和重组以提供更准确的内容,也只输出翻译后的英文内容。我将向你提供一个需要协助设计或重新开发网站的组织的相关细节,你的职责是建议最合适的界面和功能,以提高用户体验,同时也满足该公司的业务目标。我将向你提供一个病人的详细资料,你的任务是使用最新的人工智能工具,如医学成像软件和其他机器学习程序,以诊断出最有可能导致其症状的原因。你应该只回复你的评论,不要写解释。

2024-05-08 20:51:45 1114

原创 机器学习算法--朴素贝叶斯(Naive Bayes)

朴素贝叶斯算法(Naive Bayes, NB) 是应用最为广泛的分类算法之一。它是基于贝叶斯定义和特征条件独立假设的分类器方法。NB模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。当年的垃圾邮件分类都是基于朴素贝叶斯分类器识别的。什么是条件概率,我们从一个摸球的例子来理解。我们有两个桶:灰色桶和绿色桶,一共有7个小球,4个蓝色3个紫色,分布如下图:从这7个球中,随机选择1个球是紫色的概率p是多少?先选择桶再从选择的桶中选择一个球。

2024-05-07 22:47:33 738 2

原创 机器学习项目实践-基础知识部分

是在创建一个名为 ml 的虚拟环境,这样系统会自动创建一个文件夹ml,里面包含了Python的基本环境。这是因为axis等于零时,相当于按照零维度求和,相当于两个两行三列的数组求和。我们做项目第一步就是单独创建一个python环境,Python新的。这样会生成[1, 2, 3, 4, 1, 1, 1, 1]是 Python 的一个内置模块,用于创建虚拟环境。的一个很重要的第三方库,很多其他科学计算的第三方库都是以。这个数组的维度有三个,0、1、2。的一个重要特性是它的数组计算。最后两个元素:a[-2:]

2024-05-07 22:42:49 695

原创 神经网络中的归一化

神经网络的学习其实在学习数据的分布,随着网络的深度增加、网络复杂度增加,一般流经网络的数据都是一个 mini batch,每个 mini batch 之间的数据分布变化非常剧烈,这就使得网络参数频繁的进行大的调整以适应流经网络的不同分布的数据,给模型训练带来非常大的不稳定性,使得模型难以收敛。这个过程涉及到最小化一个包含L2正则化项的损失函数,以找到最佳的参数值,使得模型在训练集上的表现最优,同时通过正则化避免过拟合。方法本身并不直接产生预测结果,而是为后续的预测准备了必要的模型参数。默认值为1e-05。

2024-05-06 22:32:38 1309 8

原创 神经网络之防止过拟合

今天我们来看一下神经网络中防止模型过拟合的方法在机器学习和深度学习中,过拟合是指模型在训练数据上表现得非常好,但在新的、未见过的数据上表现不佳的现象。这是因为模型过于复杂,以至于它学习了训练数据中的噪声和细节,而不是数据的潜在分布。为了解决这个问题,正则化技术被引入,它通过在损失函数中添加一个惩罚项来对模型的复杂度进行限制。

2024-05-05 21:47:09 1833 27

原创 Stable Diffusion AI绘画

我们今天来了解一下最近很火的SD模型✨在人工智能领域,生成模型一直是研究的热点之一。随着深度学习技术的飞速发展,一种名为Stable Diffusion的新型生成模型引起了广泛关注。Stable Diffusion是一种基于概率的生成模型,它可以学习数据的潜在分布,并生成与训练数据相似的新样本。Stable Diffusion是基于连续扩散过程的一种生成模型。它的核心思想是将数据生成过程看作是一个随机过程,通过学习这个随机过程的条件概率分布,我们可以生成新的数据样本。

2024-05-04 22:16:54 2426 11

原创 Python面试十问2

区别和df.info():默认情况下,它会为数值型列提供中心趋势、离散度和形状的统计描述,包括计数、均值、标准差、最小值、下四分位数(25%)、中位数(50%)、上四分位数(75%)以及最大值。此外,你可以通过传递参数来调整的行为,例如include参数可以设置为'all'来包含所有列的统计信息,或者设置为'O'来仅包含对象列的统计信息。df.info():主要用于提供关于DataFrame的一般信息,如列索引、数据类型、非空值数量以及内存使用情况。

2024-05-03 22:26:18 960 4

原创 神经网络中的优化方法

,梯度为 0,参数无法优化,碰到局部最小值。AdaGrad 通过对不同的参数分量使用不同的学习率,AdaGrad 的学习率总体会逐渐减小,这是因为 AdaGrad算法认为:在起初时,我们距离最优目标仍较远,可以使用较大的学习率,加快训练速度,随着迭代次数的增加,学习率逐渐下降。AdaGrad通过这种方式实现了对每个参数的个性化学习率调整,使得在参数空间较平缓的方向上可以取得更大的进步,而在陡峭的方向上则能够变得更加平缓,从而加快了训练速度( 如果累计梯度值s大的话,学习率就会小一点)

2024-05-03 14:24:26 1351 30

原创 Python面试十问

⽣成器函数是使⽤yield关键字定义的函数,每次调⽤⽣成器函数时,它会返回⼀个迭代器对象,调⽤next()⽅法时,它会从上次暂停的位置继续执⾏,直到遇到下⼀个yield语句,然后返回⼀个值,并再次暂停。在Python中,⽣成器(Generator)是⼀种特殊的迭代器,它使⽤⽣成器函数来⽣成序列中的元素,⽽不是在内存中⼀次性⽣成所有元素。: 拷⻉对象中的每个元素,拷⻉对象和原有对象不在有关系,两个是独⽴的对象。: 拷⻉的是对象的引⽤,如果原对象改变,相应的拷⻉对象也会发⽣改变。当没有更多的元素时,

2024-05-02 21:27:47 821 5

原创 预训练模型介绍

ChatGPT 是由人工智能研究实验室 OpenAI 在2022年11月30日发布的全新聊天机器人模型, 一款人工智能技术驱动的自然语言处理工具. 它能够通过学习和理解人类的语言来进行对话, 还能根据聊天的上下文进行互动, 能完成撰写邮件、视频脚本、文案、翻译、代码等任务.

2024-05-02 08:27:21 1531 6

原创 神经网络参数初始化

💽参数初始化是神经网络训练过程中的一个重要步骤。对于偏置,通常可以将其初始化为0或者较小的随机数。然而,对于权重w的初始化,我们通常会采用更加复杂的方法,以确保网络能够更好地学习数据的特征。我们先给机器一个架构,如下图的两个隐藏层,还有这些神经元,还有给定激活函数,让机器去找w 的取值!这个模块提供了多种预定义的初始化方法,用户可以根据需要选择合适的方法来初始化网络参数。在PyTorch中,一般我们在构建网络模型时,每个网络层的参数都有默认的初始化方法,如果需要自定义参数的初始化,可以使用。

2024-05-01 13:29:42 1241 17

原创 神经网络反向传播算法

如图我们在最下边输入两个维度的值进入神经网络:0.05、0.1 ,经过两个隐藏层(每层两个神经元),每个神经元有两个值,左边为输入值,右边是经过激活函数后的输出值;这种算法基于梯度下降法来优化误差函数,利用了神经网络的层次结构来有效地计算梯度,从而更新网络中的权重和偏置。设置的初始权重w1,w2,...w8分别为0.15、0.20、0.25、0.30、0.30、0.35、0.55、0.60。其他的网络参数更新过程和上面的求导过程是一样的,这里就不过多赘述,我们直接看一下代码。类的实例时,它会首先调用。

2024-05-01 08:31:16 1673 42

原创 PyTorch模型的保存加载

我们平时在神经网络的训练时间可能会很长,为了在每次使用模型时避免高代价的重复训练,我们就需要将模型序列化到磁盘中,使用的时候反序列化到内存中。PyTorch提供了两种主要的方法来保存和加载模型,分别是直接序列化模型对象和存储模型的网络参数。这种方法可以方便地保存和加载整个模型,包括其结构、参数以及优化器等信息。训练完成后,通常需要保存模型的参数值,以便用于后续的测试过程。),这个状态字典包含了模型的可学习参数(权重和偏置值)函数将整个模型对象保存为一个文件,然后使用。函数来保存模型的状态字典(

2024-05-01 08:25:34 430 5

原创 神经网络的反向传播

对于复杂的复合函数,我们将其拆分为一系列的加减乘除或指数,对数,三角函数等初等函数,通过链式法则完成复合函数的求导。在实际应用中,梯度下降法的初始点是随机选择的,这意味着最终找到的最小值可能取决于初始点的选择。与梯度下降算法相结合,对网络中所有权重(w,b)计算损失函数的梯度,并利用梯度值来更新权值以最小化损失函数。在训练过程中,输入数据被送入网络,然后通过每一层进行传递,直到得到最终的预测输出。前向传播的目的是计算给定输入数据时网络的预测输出,以便在后续的训练过程中与实际目标值进行比较,并计算损失。

2024-04-28 09:26:47 2444 14

原创 神经网络的激活函数

然而,它也存在梯度消失的问题,这意味着在训练过程中,当输入值非常大或非常小的时候,梯度几乎为零,这会导致权重更新变得非常缓慢,从而影响网络的学习效率。Softmax 直白来说就是将网络输出的 logits 通过 softmax 函数,就映射成为(0,1)的值,而这些值的累和为1(满足概率的性质),那么我们将它理解成概率,选取概率最大(也就是值对应最大的)节点,作为我们的预测目标类别。假设有一个单层的神经网络,其输入为𝑥x,权重为𝑤w,偏置为𝑏b,那么该层的输出𝑦y可以表示为:𝑦=𝑤⋅𝑥+𝑏y=w⋅x+b。

2024-04-26 23:16:24 2221 36

原创 Pytorch实现线性回归模型

我们接下来使用Pytorch的API来手动构建一个线性回归的假设函数损失函数及优化方法,熟悉一下训练模型的流程。🧨我们将这批数据每次分成16份训练,并且这样重复训练epochs次,可以更深入地学习数据中的特征和模式,有助于防止模型快速陷入局部最优解,从而提高模型的泛化能力,而且。由于每个批次的数据都是随机抽取的。方法被调用时,PyTorch 会自动计算该张量相对于所有需要梯度的参数的梯度,并将这些梯度累加到对应参数的。是简单函数还是复杂的损失函数,都能利用相同的方法来进行梯度的反向传播。

2024-04-21 16:29:42 1770 16

原创 Pytorch-自动微分模块

🥇接下来我们进入到Pytorch的自动微分模块自动微分模块是PyTorch中用于。PyTorch通过其模块提供了自动微分的功能,这对于深度学习和优化问题至关重要,因为它可以自动计算梯度,无需手动编写求导代码。以下是backward()backward().grad。

2024-04-19 15:54:40 1885 30

原创 LLM-AI大模型介绍

🥂让我们通过一些具体的例子来理解语言模型如何计算句子的概率,并判断一句话是否符合自然语言的语用习惯。假设有一个非常简单的语言模型,它基于词频来计算句子的概率。这个模型会统计每个单词在大量文本中出现的次数,然后用这些频率来估计概率。例如,如果单词 "the" 在训练集中出现了非常多次,那么 P(the) 就会很高。对于句子 "The quick brown fox jumps over the lazy dog," 模型会计算每个单词的概率,并将它们相乘得到整个句子的概率 P(S)。

2024-04-17 09:33:39 1405 17

原创 Pytorch-张量形状操作

在 PyTorch 中,有些张量是由不同的数据块组成的,它们并没有存储在整块的内存中,view 函数无法对这样的张量进行变形处理,如果张量存储在不连续的内存中,使用view函数会导致错误。💎reshape 函数可以在保证张量数据不变的前提下改变数据的维度,将其转换成指定的形状,在后面的神经网络学习时,会经常使用该函数来调节数据的形状,以适配不同网络层之间的数据传递。当第二个参数为-1时,表示自动计算该维度的大小,以使得张量的元素总数不变,这样我们可以免去思考的时间。

2024-04-16 16:00:04 1335 15

原创 Pytorch - 张量转换拼接

比如在处理图像数据或者文本数据的时候,我们经常需要把二维的数据转换为三维的,这时候就可以使用。张量索引操作是处理多维数据的基础,它不仅能够让我们访问和修改数据,还能够帮助我们实现各种复杂的数据操作和算法。不会增加张量的总维度数量,它仅仅是在一个指定的维度上扩展了张量的大小。时,输入的张量必须在除了拼接维度外的所有其他维度上具有相同的大小。这表明在新的维度上,张量的个数是2,其它两个维度的大小保持不变。,这里的4表示在指定的维度上,元素的数量从原来的2个扩展到了4个。的二维张量A和B,我们可以通过指定。

2024-04-15 21:54:26 7248 26

原创 如何使用Docker部署WPS Office服务并实现无公网IP远程处理文档表格

使用上面的Cpolar http公网地址,在任意设备的浏览器进行访问,即可成功看到wps office界面,这样一个公网地址且可以远程访问就创建好了,使用了cpolar的公网域名,无需自己购买云服务器,即可发布到公网进行远程访问!隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https,因为我们设置的是3000端口,该端口是http访问端口,所以我们只需要关注http公网地址即可.这种随机地址的优势在于建立速度快,可以立即使用。

2024-04-15 15:23:18 1261 11

原创 Pytorch-张量基础操作

😆😆😆我们先来看一下张量的介绍😆😆😆。

2024-03-23 13:17:45 1306 7

原创 PyTorch-张量

📀PyTorch是一个开源的深度学习框架,由Facebook的人工智能研究团队开发,专为深度学习研究和开发而设计。PyTorch 中的张量就是元素为同一种数据类型的多维矩阵。在 PyTorch 中,张量以 "类" 的形式封装起来,对张量的一些运算、处理的方法被封装在类中。

2024-03-22 13:24:59 1274 8

原创 文本处理基本方法

在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符。命名实体识别(Named Entity Recognition, NER)是自然语言处理(NLP)中的一项基础任务,它的目标是从文本中识别出具有特定意义的实体,并将这些实体分类到预定义的类别。词性: 语言中对词的一种分类方法,以语法特征为主要依据、兼顾词汇意义对词进行划分的结果, 常见的词性有14种, 如: 名词, 动词, 形容词等。

2024-03-21 09:32:26 1041 7

原创 AI - 机器学习GBDT算法

GBDT属于Boosting方法的一种,这种方法会顺序构建一系列弱学习器(通常是决策树),每个后续模型都侧重于纠正前一个模型的错误。首先定义了一个参数网格(param_grid),包含了三个超参数:max_depth(树的最大深度)、n_estimators(弱学习器的数量)和eta(学习率)。负梯度是GBDT中用来指导模型优化的方向,它根据当前模型的损失函数来计算,并通过拟合这些负梯度来训练新的决策树,从而逐步提升模型的性能。是一个用于数据分割的参数,它指定了交叉验证的策略。

2024-03-20 09:16:57 1641 25

原创 AI - 集成学习

并且可以使用交叉验证等技术来选择最优的模型,根据性能评估的结果,可以调整集成学习器的参数,如基学习器的数量、投票策略等,以优化其性能。💎集成学习是机器学习中的一种思想,它通过多个模型的组合形成一个精度更高的模型,参与组合的模型成为弱学习器(基学习器)。基学习器是可使用不同的学习模型,比如:支持向量机、神经网络、决策树整合到一起作为一个集成学习系统也可使用相同的学习模型,一般情况下,更使用相同的学习模型。随机森林的随机性体现在每棵树的训练样本是随机的,树中每个节点的分裂属性也是随机选择的。

2024-03-19 09:10:47 1318 16

原创 Python进程与线程开发

另外,进程间的通信实现也不方便。在加锁的情况下,程序就变成了串行,也就是单线程,而有时,我们在不用考虑数据安全时,不用加锁,程序就变成了并行,也就是多线程。程序是通过threading模块下的Thread的类,去实例化一个此对象,并调用方法,实现生成多线程,target参数表示线程需要执行的方法,通过对象的start的方法,开启线程。GIL本质是一把互斥锁,但GIL锁住的是解释器级别的数据,同步锁,锁的是解释器以外的共享资源,例如:硬盘上的文件 控制台,对于这种不属于解释器的数据资源就应该自己加锁处理。

2024-03-18 14:47:37 1108 5

空空如也

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

TA关注的人

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