news 2026/4/20 13:11:20

新手入门不迷路:我花一周整理的神经网络工作原理通俗笔记,看完就能懂

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
新手入门不迷路:我花一周整理的神经网络工作原理通俗笔记,看完就能懂

引言

不知道有没有和我当初一样的朋友,刚接触深度学习的时候,信心满满翻开《深度学习》花书,刚看了两章神经元,满页的偏导、矩阵乘法直接给我干懵了。合上书脑子里就一个想法:神经网络这玩意儿是不是给天才准备的?我这种普通人是不是学不会?

后来被逼着我从0写一个简单的全连接神经网络做手写数字识别,写完调通跑通准确率出来那一瞬间,我突然发现:原来神经网络的原理根本没那么复杂!所有复杂的推导,本质上都是为了支撑几个非常简单的核心逻辑。

这篇文章是我当初整理的原始笔记,把所有复杂的概念都拆成了普通人能懂的类比,跳过晦涩的纯推导,先把核心逻辑讲透,适合新手快速建立对神经网络的整体认知,看完你就能说清楚:神经网络到底是怎么干活的。文章比较长,建议收藏慢慢看,肯定比你啃三天干巴巴的教材有用。


一、先搞懂背景:神经网络到底是为了解决什么问题?

很多新手上来直接啃原理,连为什么需要神经网络都没搞懂,看了半天也不知道学了干嘛,我当时走了这个坑,所以先把背景说清楚。

1.1 从传统机器学习的痛点说起

在神经网络火起来之前,我们解决AI任务用的是传统机器学习算法,比如SVM、决策树、随机森林这些。这些算法解决简单问题没问题,但遇到复杂任务就暴露了一个致命缺点:需要人工做特征工程

什么叫人工特征工程?举个例子,你要做一个识别图片里有没有猫的模型,用传统算法的话,你得手动告诉模型:猫长什么样。你要写规则:猫有两只尖耳朵、有胡须、体型大多是椭圆形、毛色有很多种… 就算你写一百条规则,遇到一个歪脖子睡觉的猫、只露出半个身子的猫,规则立马就失效了。

更复杂的任务呢?比如让模型翻译一段话,你能手动写出所有语义、语法的规则吗?根本不可能,人类语言太灵活了,规则永远写不完。

那神经网络呢?它最大的优势就是不需要人工特征工程。你不用告诉它猫长什么样,你只要把几十万张带标签的猫和狗的图片喂给它,它自己会从数据里学到猫的特征,自己总结规则,越复杂的任务,这个优势越明显。

1.2 神经网络的起源:从仿生学开始的半个世纪脑洞

神经网络不是最近十年才出来的,它的历史比很多人想的久多了,整个发展脉络其实很有意思:

  • 1943年,心理学家McCulloch和数学家Pitts一起,模仿生物神经元的工作方式,提出了世界上第一个人工神经元模型,这就是所有神经网络的祖宗。核心逻辑就是:生物神经元收到信号,累计到阈值就激活,传给下一个神经元,人工神经元就把这个过程数学化了。
  • 1958年,科学家罗森布拉特提出了「感知机」,这是第一个可以自动学习权重的神经网络,当时火了一阵,大家都觉得AI马上就要实现了,结果很快发现:感知机连最简单的异或问题都解决不了,直接给神经网络泼了一盆冷水,凉了快二十年。
  • 1986年,反向传播算法被重新整理推广,解决了多层神经网络的训练问题,神经网络又火了一阵,但当时计算能力不够,数据也少,深层网络训不动,所以还是没有大规模应用。
  • 2012年,AlexNet在ImageNet图像分类比赛里,把传统算法的准确率直接甩出了十几个百分点,一举夺冠,神经网络彻底火了,加上GPU计算能力的提升,海量数据的积累,就发展成了现在我们说的深度学习。

说白了,神经网络就是一个模仿人类神经元连接方式,自动从数据里学习规律的统计模型,没有什么玄乎的黑科技,本质就是喂数据,学规律,做预测。

1.3 为什么新手必须先搞懂基础神经网络原理?

现在打开任何AI平台,铺天盖地都是GPT、Transformer、扩散模型、多模态大模型,很多新手上来就说:我要学大模型,基础神经网络还有必要学吗?

我可以很明确的说:太有必要了。不管是CNN做图像,RNN做序列,还是Transformer做GPT,核心的工作原理从来没变过:都是前向传播算预测,反向传播调权重,梯度下降降误差。基础原理搞懂了,你学任何新的网络结构,都是换汤不换药,半个月就能摸到门道;基础不牢,你学大模型只会背“自注意力”“残差连接”这些名词,遇到问题根本不知道怎么调,找工作面试一问原理就露馅。

所以别着急跳级,把基础打牢,后面走的才快。


二、从0开始拆解:单个神经元到底是怎么工作的?

很多新手上来就看多层神经网络,越看越懵,其实所有复杂的神经网络都是一个个单个神经元堆起来的,把单个神经元搞懂了,多层就是重复计算,一点都不难。

2.1 用通俗类比讲透单个神经元的结构

人工神经元就是模仿生物神经元做的,我们用生活中的例子对应每个部分,看完你绝对能记住:

  • 输入信号:对应生物神经元树突接收到的信号,放到AI任务里,就是我们的原始数据。比如你识别图片,输入就是每个像素的数值;你判断垃圾邮件,输入就是每个词是否出现的标记。
  • 权重(Weight):就是每个输入信号的重要程度。比如判断垃圾邮件,输入里“中奖”“转账”这两个词,对判断垃圾邮件的贡献特别大,所以它们的权重就很高;“的”“这个”这种常用词,对判断没什么用,权重就很低。
  • 偏置(Bias):就是神经元激活的门槛。你可以理解成找工作的学历门槛,要求本科及以上,这个“本科”就是偏置,没达到就不激活,不输出信号。
  • 激活函数(Activation Function):就是决定要不要把这个信号传给下一个神经元。累计完输入信号之后,超过门槛我就激活,把信号传出去,没超过就不激活,或者只传很小的信号。
  • 输出:对应生物神经元轴突传出去的信号,就是这个神经元处理完的最终结果,传给下一层的神经元继续处理。

把这些用数学写出来,其实就一个公式:
y=f(W⋅X+b) y = f(W \cdot X + b)y=f(WX+b)
翻译成人话就是:神经元输出 = 激活函数(所有输入乘以对应权重再加偏置),就这么简单,没有任何复杂的东西。

我们举个生活中真实的例子,你瞬间就能懂:现在你要决定周末要不要去户外打球,两个输入:

  • x1:今天出不出太阳,出就是1,不出就是0,权重w1=0.6(出太阳对打球很重要)
  • x2:今天你有没有空,有空就是1,没空就是0,权重w2=0.6(有空也很重要)
  • 偏置b=-0.8,也就是两个条件都满足才够门槛,激活函数用最常用的ReLU(小于0输出0,大于0输出本身)

那我们算一下:

  1. 如果今天出太阳,你也有空:输出 =max(0, 0.6*1 + 0.6*1 - 0.8) = 0.4,输出大于0,激活,所以决定去打球。
  2. 如果今天出太阳,你没空:输出 =max(0, 0.6*1 + 0.6*0 - 0.8) = -0.2,输出0,不激活,不去。
  3. 如果今天不出太阳,你有空:结果和上面一样,还是不去。

完美!整个逻辑通顺,和人做判断的过程一模一样,你看,单个神经元是不是就是这么简单?

2.2 激活函数:为什么一定要加这一步?

很多新手这里卡壳:我直接输出加权和不行吗?为什么非要加个激活函数?

核心原因只有一句话:激活函数给神经网络引入了非线性,让它可以拟合复杂的规律。如果没有激活函数,不管你堆多少层神经网络,最后本质上还是一个线性变换,说白了就是只能用一条直线(或者高维空间的超平面)分类,只能解决线性可分的简单问题。

而我们遇到的大部分任务都是非线性的,比如我们后面要说的异或问题,一条直线根本分不了两类,必须用曲线,激活函数就是给神经网络画曲线的能力,没有它,多少层都没用。

现在常用的激活函数,新手只要记住这三个就够了,都是一句话就能讲清楚:

  • Sigmoid:把输出压缩到0~1之间,很像概率,适合二分类任务的输出层。缺点是输入太大或太小的时候,梯度会变得接近0,也就是常说的梯度消失,深层网络会训不动,所以现在隐藏层基本不用它了。
  • ReLU:现在隐藏层用的最多的激活函数,公式就是max(0, x),小于0就输出0,大于0就输出本身,计算超级简单,还不容易梯度消失,所以从提出来到现在一直是隐藏层的首选。
  • Softmax:多分类任务输出层的标配,把多个输出压缩到0~1之间,所有输出加起来等于1,刚好对应每个类别的概率,比如手写数字识别10个输出,每个输出就是这个图片是对应数字的概率,非常好用。

2.3 从神经元到感知机:最简单的神经网络原来长这样

把多个输入神经元接到一个输出神经元,就成了感知机,也就是世界上最简单的单层神经网络。感知机可以自动学习权重和偏置,能解决所有线性可分的分类问题,但是它有一个致命缺陷:解决不了异或问题,为什么?

异或问题的规则很简单:两个输入相同输出0,不同输出1,我们把四个点画在坐标系上:(0,0)输出0,(0,1)输出1,(1,0)输出1,(1,1)输出0,你现在拿笔试试,能不能画一条直线,把输出0的两个点和输出1的两个点分开?

你试多少次都不行,对不对?因为异或问题本身就不是线性可分的,感知机本质就是线性分类器,所以肯定解决不了。那怎么解决?加层,加隐藏层,变成多层神经网络,就可以解决非线性问题了。


三、多层神经网络核心:前向传播和反向传播到底在干啥?

这部分是整个神经网络原理的核心,也是90%的新手卡壳的地方,我不会上来就堆链式法则的推导,先讲逻辑,再举例子,最后说数学,保证你能懂。

3.1 多层神经网络的结构:三层就够讲清楚所有逻辑

我们今天讲最基础的全连接前馈神经网络,也是所有神经网络的基础,结构超级清晰,一共就三层:

  1. 输入层:放我们的原始输入数据,有多少个输入特征就有多少个神经元,比如手写数字是28*28的图片,一共784个像素,输入层就有784个神经元,输入层不需要计算,只要把数据传进去就行。
  2. 隐藏层:就是输入层和输出层中间的所有层,可以有1层也可以有100层,所有的特征提取、特征转换都在这里做,每个神经元都按照我们刚才说的单个神经元的规则计算,把结果传给下一层。因为这一层的结果我们看不到,所以叫隐藏层。
  3. 输出层:最后输出我们要的结果,分类任务输出类别概率,回归任务输出预测数值,就这么简单。

全连接的意思就是:上一层的每个神经元,都和下一层的所有神经元相连,每个连接都有一个独立的权重,结构就是这么简单,没有任何玄乎的地方。

3.2 前向传播:从输入到输出,神经网络是怎么得到预测结果的?

前向传播这个词听起来高级,其实超级直白,就是:数据从输入层进去,按照输入→隐藏→输出的顺序,每个神经元依次做计算,把结果一步步传到输出层,最后得到预测结果,这个从头到尾走一遍的过程就是前向传播

我们还是拿最经典的MNIST手写数字识别举例子,完整走一遍前向传播,你看完就懂了:
我们要识别一张手写数字3的图片,网络结构是:784个输入神经元→128个隐藏神经元→10个输出神经元(对应0~9十个数字)。

  1. 输入层:把784个像素的数值(0~1之间,越接近1颜色越深)传给隐藏层的128个神经元。
  2. 隐藏层:每个隐藏神经元都计算一次:激活函数(784个输入×对应权重 + 偏置),得到自己的输出,然后把这个输出传给输出层的10个神经元。128个隐藏神经元就算128次,就完了。
  3. 输出层:每个输出神经元接128个隐藏层的输出,同样计算加权和加偏置,最后用Softmax把10个输出转成概率,每个概率就是这张图片是对应数字的可能性。比如输出神经元3的概率是0.92,其他都低于0.02,那神经网络就预测这张图片是数字3。

你看,整个过程就是单个神经元计算的重复,从前往后走一遍就完了,我当初刚学的时候,以为前向传播是什么高级概念,原来就是从头到尾算一遍,名字起的玄乎而已。

3.3 反向传播:错了就改,从后往前改,核心就一句话

反向传播是新手最害怕的概念,我当初看到这四个字就头大,其实反向传播的核心逻辑超级简单,一句话就能说清楚:
前向传播得到了预测结果,和真实标签比有误差,我们要算出每个权重对这个误差贡献了多少,然后从输出层往输入层走,一步步把所有权重都往减小误差的方向调整,就完了

还是用刚才的手写数字例子说,那张图片真实就是数字3,要是神经网络预测3的概率是0.92,误差就很小,不用怎么调;要是它预测5的概率是0.8,误差就很大,就要调权重,过程是这样的:

  1. 第一步:先算输出层每个权重,对这个误差的影响有多大(数学上就是误差对这个权重的偏导数,也叫梯度),影响越大,调的幅度就越大。
  2. 第二步:再算隐藏层每个权重,对输出层误差的贡献是多少,同样算出每个权重的梯度——因为隐藏层的输出影响输出层的输入,所以隐藏层权重也会影响最终误差,要一层层倒推。
  3. 第三步:每个权重都往梯度反方向走一步,新的权重就能让误差变小一点。

那为什么要用链式法则?本质就是为了倒推梯度啊,误差在输出层,你要算隐藏层权重对误差的梯度,就得从输出层往回链式拆解,一层一层算过去,没有别的魔法,就是一个计算梯度的方法而已。

我当初学的时候,背了快一周反向传播的推导,还是记不住,后来自己写代码实现了一遍才发现:逻辑根本不用背,错了就改,从后往前改,每个改多少按贡献来,就这么简单,推导只是把这个过程用数学写出来而已,新手先把逻辑搞懂,推导需要的时候再看也完全不迟。

3.4 梯度下降:调权重为什么要这么调?

梯度下降也是新手经常搞混的概念,其实一句话就能说清楚:梯度就是误差对权重的导数,导数告诉我们两件事:权重变一点点,误差会变多少,往哪个方向变误差会变大。梯度下降就是说,既然梯度方向是误差上升最快的方向,那我往反方向走,不就是误差下降最快的方向吗?所以每次我都走一小步,走的次数多了,误差自然就降到最低,得到最优的权重。

这里还有个核心概念叫学习率,就是每次走的步长:步长太大,一下就跳过了误差的最低点,永远降不下去;步长太小,走半天走不到最低点,训练速度太慢,所以要选合适的学习率,现在都有自动调整学习率的方法,不用新手手动调,但你要知道这个概念是什么意思。

3.5 从头到尾走一遍完整训练流程,看完绝对通

我现在把整个神经网络训练的完整流程,用手写数字识别的例子从头到尾走一遍,你看完就能对整个过程有清晰的认知:

  1. 初始化:我们定好网络结构(784输入→128隐藏→10输出),给所有权重和偏置赋一个初始的随机小值。
  2. 选样本:从6万张训练图片里随机抽100张,这100张就是一个批次,batch size就是100。
  3. 前向传播:把100张图片依次输入网络,每个都算出预测概率,得到100个预测结果。
  4. 算误差:把100个预测结果和真实标签对比,算出总的误差(我们一般用交叉熵损失,就是衡量预测和真实差多少的指标)。
  5. 反向传播:从输出层往回算,算出每个权重和偏置的梯度(也就是对误差的贡献)。
  6. 更新权重:用梯度下降法,每个权重减去「梯度×学习率」,把所有的权重偏置都更新一遍。
  7. 循环:重复步骤2到6,几千次几万次,误差会越来越小,训练集上的准确率越来越高。
  8. 测试:拿训练好的网络,测一万张没见过的测试图片,看准确率有多高,整个训练就完成了。

我当初刚学的时候,不用PyTorch、TensorFlow,纯用numpy写这个完整流程,一共才150行代码,跑了10个epoch(就是把整个训练集过10遍),最终测试准确率就到97%了,当时那种成就感真的无法形容,原来神经网络真的就是这么工作的,一点都不神秘。


四、训练神经网络的核心概念,新手必须搞懂的几个坑

讲完核心流程,我再把新手经常搞混的几个核心概念用通俗话讲清楚,帮你避坑。

4.1 学习率、Batch Size、Epoch到底是什么?

这三个词是你看教程、跑代码每天都会遇到的,很多新手学了好久都没搞清楚,一句话区分:

  • Epoch:把整个训练集的所有样本都过一遍,就是一个Epoch。比如我们MNIST训练集有6万张,把6万张都学了一遍,就是一个Epoch,一般训练要跑几个到几十个Epoch,让网络充分学习。
  • Batch Size:每次更新权重之前,一次性喂给网络的样本数量。刚才我们一次喂100张,Batch Size就是100。为什么不一次喂完6万张?一是6万张一起算,内存放不下,计算量太大;二是一次喂一张,梯度波动太大,不稳定。所以现在一般用小批量,就是32、64、128这样的大小,兼顾计算速度和稳定性。
  • 学习率:就是每次更新权重的步长,刚才已经说过了,一般初始设0.001或者0.01,记住:学习率不对,网络根本训不出来。

4.2 欠拟合和过拟合:怎么判断怎么解决?

这两个是训练神经网络最常见的问题,用类比一下子就能懂:

  • 欠拟合:就是网络学的不够,训练集上准确率都很低,误差降不下去,相当于老师讲题你还没听懂,上考场肯定考不好。解决方法很简单:多训练几轮,或者增加网络的复杂度(加层、加神经元数量)。
  • 过拟合:这个是最常见的,就是网络学的太“过”了,把训练集里的噪音、特殊情况都当成规律学了,训练集准确率特别高,但是测试集没见过的样本准确率很低。相当于你考试前把往年真题的答案都背下来了,换一道同知识点的新题你就不会,泛化能力差。

解决过拟合的方法,新手记住这四个就够了:

  1. Dropout:训练的时候随机让一部分神经元不工作,不让网络依赖某几个神经元的输出,强迫它学到更通用的规律,就像你训练做题的时候,故意遮住几个知识点,让你不能依赖某个知识点,要整体理解。
  2. 正则化:给损失函数加一个惩罚项,让权重不要太大,避免网络对个别输入太敏感,常用的是L2正则化。
  3. 增加训练数据:这个是最根本的,更多的训练数据就能让网络学到更通用的规律,减少过拟合。
  4. 早停:训练的时候每过一个Epoch,就在验证集上测一次误差,如果验证集误差连续好几轮不下降了,就停止训练,避免继续训练学进去太多噪音。

4.3 为什么深层神经网络比浅层好?深度真的是力量吗?

很多人都听过一个定理:通用近似定理,说一个足够宽的单层隐藏层神经网络,可以拟合任意连续函数,那为什么我们现在要搞几十层、上百层的深层神经网络?

其实这个问题很好理解,定理说的没错,但是那需要的神经元数量是爆炸级的,参数多到根本训练不动,内存都装不下。而深层神经网络有一个巨大的优势:分层提取特征,参数效率更高

比如你用深层神经网络识别猫,第一层提取简单的边缘特征,第二层把边缘组合成形状(耳朵、眼睛、鼻子),第三层把形状组合成猫的各个部位,第四层就得到整个猫的轮廓,一层层抽象,用很少的参数就能表达很复杂的规律,同样的参数数量,深层网络的效果比浅层好太多了,这就是深度学习为什么这么强的核心原因。


五、新手学习神经网络常见的3个误区,我踩过你别踩

这都是我当初学的时候实打实踩过的坑,写出来给你避开:

5.1 误区一:必须先把所有数学推导都搞懂,才能动手

我刚学的时候就是这个误区,啃了半个月反向传播的推导,还是云里雾里,什么代码都不会写,后来导师跟我说:你先写个简单的跑通,再回头看推导,一下子就懂了,真的是这样。

对于新手来说,先搞懂核心逻辑,动手跑通一个简单的例子,比背会所有推导有用一万倍。你跑通了,知道每个步骤对应什么过程,再看推导,每个符号代表什么你都清楚,一下子就理解了,完全不用一开始就死磕数学,纯浪费时间,还打击信心。

5.2 误区二:神经网络是黑箱,我只要会调包就行,不用懂原理

现在很多新手学深度学习,上来就是PyTorch搭模型,调包跑,跑出来结果就完了,根本不懂原理,遇到问题根本不会调。比如训出来准确率上不去,不知道是学习率不对还是过拟合还是梯度消失,只会瞎试参数,试半个月都试不出来。

懂原理,你一看误差曲线就知道问题出在哪,该调什么,效率高太多了,而且找工作面试的时候,一问原理就露馅,所以基础原理必须懂,不能只会调包。

5.3 误区三:上来就学Transformer、GPT,跳过基础全连接

现在大模型火,很多新手上来就说我要学GPT,不学基础,其实所有的神经网络,不管多复杂,核心原理都是相通的,全连接网络是基础,把全连接的原理搞懂了,学CNN就是改了连接方式,学Transformer就是加了自注意力机制,核心的前向传播、反向传播、梯度下降从来没变过,半个月就能上手。

基础不牢,你学Transformer只会背名词,根本不知道为什么要加残差连接,为什么要层归一化,遇到问题根本改不了,所以一定要从基础来,慢慢来才是最快的。


六、总结:神经网络工作原理核心梳理

最后我把核心点梳理一遍,你看完可以对着复盘,快速记住整个逻辑:

  1. 神经网络本质是模仿生物神经元的工作方式,用多层神经元层层提取特征,自动从数据中学习规律,不需要人工特征工程,适合处理复杂的AI任务。
  2. 单个神经元的计算非常简单:输出 = 激活函数(输入加权和 + 偏置),激活函数引入非线性,让神经网络可以拟合复杂的规律。
  3. 整个神经网络的训练过程分为两个核心步骤:
    • 前向传播:数据从输入到输出,层层计算得到预测结果。
    • 反向传播:计算预测和真实的误差,从输出往输入层层推导每个权重的梯度,然后用梯度下降更新权重,减小误差。
  4. 训练就是不断重复「前向传播→算误差→反向传播→更新权重」的过程,循环多次,误差越来越小,网络的预测越来越准。
  5. 新手学习不用死磕推导,先懂逻辑,动手跑通例子,再逐步深入,避开常见误区,就能快速入门。

这篇差不多是我当初学神经网络整个过程的梳理,从最开始的一头雾水到后来搞懂,最大的感悟就是:神经网络真的没那么难,很多时候是被教材里的一堆公式给吓住了,拆解开,每个步骤都非常简单。。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/20 13:10:16

R 4.5低代码开发效率提升270%的4个核心配置技巧,附官方未公开的shiny.prerender参数实测清单

第一章:R 4.5低代码分析工具开发概览R 4.5 引入了更完善的模块化包管理机制与增强的 Shiny 框架集成能力,为构建低代码分析工具提供了坚实基础。其核心优势在于将统计建模能力、交互式可视化和可复用组件封装统一于声明式语法中,使业务分析师…

作者头像 李华
网站建设 2026/4/20 13:10:15

FPGA状态机设计避坑指南:从UART通信看三段式状态机的正确打开方式

FPGA状态机设计避坑指南:从UART通信看三段式状态机的正确打开方式 在FPGA开发中,状态机设计是数字逻辑实现的核心技术之一。无论是通信协议处理、数据流控制还是复杂时序逻辑,状态机都扮演着关键角色。然而,许多开发者在状态机设…

作者头像 李华
网站建设 2026/4/20 13:07:36

Tao-8k模型蒸馏实践:将大模型能力迁移至轻量级模型

Tao-8k模型蒸馏实践:将大模型能力迁移至轻量级模型 想让一个“小个子”模型拥有“大块头”模型的智慧吗?听起来像是天方夜谭,但在AI的世界里,这恰恰是“模型蒸馏”技术的魅力所在。想象一下,一位经验丰富的老师&#…

作者头像 李华
网站建设 2026/4/20 13:05:45

Windows窗口放大革命:Magpie v0.12.1如何让老旧电脑焕发新生

Windows窗口放大革命:Magpie v0.12.1如何让老旧电脑焕发新生 【免费下载链接】Magpie A general-purpose window upscaler for Windows 10/11. 项目地址: https://gitcode.com/gh_mirrors/mag/Magpie 在Windows系统上,你是否曾为游戏窗口放大后画…

作者头像 李华
网站建设 2026/4/20 13:04:16

WechatRealFriends技术指南:微信好友关系检测原理与系统化操作流程

WechatRealFriends技术指南:微信好友关系检测原理与系统化操作流程 【免费下载链接】WechatRealFriends 微信好友关系一键检测,基于微信ipad协议,看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRea…

作者头像 李华