LVQ神经网络的分类——乳腺肿瘤诊断

神经元网络算法的思想,神经网络算法神经元 人工神经网络算法“人工神经网络”(ARTIFICIALNEURALNETWORK,简称ANN)是在对人脑组织结构和运行机制的认识理解基础之上模拟其结构和智能行为的一种工程系统爱发猫 www.aifamao.com。早在本世纪40年代初期,心理学家McCulloch、数学家Pitts就提出了人工神经网络的第一个数学模型,从此开创了神经科学理论的研究时代。其后,FRosenblatt、Widrow和J.J.Hopfield等学者又先后提出了感知模型,使得人工神经网络技术得以蓬勃发展。... 阅读详情

这篇文章是我的一个结课小论文,分享出来,希望对各位有所帮助,源码以及解释都有。


author:xiao黄
缓慢而坚定的生长
公众号:Community Detection
欢迎各位关注嘻嘻嘻


程序和数据上传到网盘中,程序也可以看附录。
在这里插入图片描述
链接:https://pan.baidu.com/s/1cxVOK54Qx1ohhg-hURBtaw
提取码:k2yx


摘要:对于乳腺肿瘤分类过程中的问题,用LVQ神经网络来实现乳腺肿瘤的分类。LVQ算法是一种有监督的学习方法,其在模式识别和优化领域有广泛的应用。本文在MATLAB平台中建立LVQ神经网络识别器进行训练、测试。通过实验结果表示,本文中的LVQ算法分类精度为94.2%,与其他分类方法相比,分类精度得到进一步提高。
关键字:LVQ;乳腺肿瘤;分类;MATLAB

1 引言

目前,乳腺癌已经成为世界上妇女发病率最高的癌症。今年来在中国,尤其在相对比较发达的东部地区,乳腺癌的发病率及死亡率呈明显的增长趋势。研究表明,乳腺恶性肿瘤若能早期发现、早期诊断、早期治疗,可能取得良好的效果。过去的20年里,人们在分析和诊断各种乳腺肿瘤方面了很多方法,尤其是针对乳腺图像的分析已日趋成熟。医学研究发现,乳腺肿瘤病灶组织的细胞核显微图像与正常组织的细胞核显微图像不同,但是用一般的图像处理方法很难对其进行区分。因此,运用科学的方法,根据乳腺肿瘤病灶组织的细胞核显微图像对乳腺肿瘤属于良性或者恶性进行诊断显得尤为重要。
威斯康辛大学医学院经过多年的收集和整理,建立了一个乳腺肿瘤病灶组织的细胞核显微图像数据库。数据库中包含了细胞核图像的10个量化特征(细胞核半径、质地、周长、面积、光滑性、紧密度、凹陷度、凹陷点数、对称度、断裂度),这些特征与肿瘤的性质有密切的关系。因此需要建立一个确定的模型来描述数据库中各个量化特征与肿瘤性质的关系,从而可以根据细胞核显微图像的量化特征诊断乳腺肿瘤是良性还是恶性的。与其他模式识别和映射方式相比,LVQ神经网络的优点在于网络结构简单,只通过内部单元的相互作用就可以完成十分复杂的分类处理,也很容易将设计域中的各种繁杂分散的设计条件收敛到结论上来。而且它不需要对输入向量进行归一化、正交化处理,只需要直接计算输入向量与竞争层之间的距离,从而实现模式识别,因此简单易行。本文通过LVQ神经网络对乳腺肿瘤分类进行深入研究。

2 LVQ神经网络

2.1 LVQ网络结构

学习向量量化(Learning Vector Quantization, LVQ)神经网络是由芬兰学者Teuvo Kohonen在竞争型神经网络基础上提出的。LVQ神经网络是一种用于训练竞争层的有监督学习(supervised learning)方法的输入前向神经网络。LVQ神经网络已被广泛用于模式识别和优化领域。LVQ网络结构图如图1所示。

LVQ神经网络由3层神经元组成,即输入层、竞争层和线性输出层。输入层与竞争层之间采用全连接的方式,竞争层与线性输出层之间采用部分连接的方式。竞争层神经元个数总是大于线性输出层神经元个数,每个竞争层神经元只与一个线性输出层神经元相连接且连接权值恒为1。但是,每个线性输出层神经元可以与多个竞争层神经元相连接。竞争层神经元与线性输出层神经元的值只能是1或0。当某个输入模式被送至网络时,与输入模式距离最近的竞争层神经元被激活,神经元的状态为“1”,而其他竞争层神经元的状态均为“0”。因此,与被激活神经元相连接的线性输出层神经元状态也为“1”,而其他线性输出神经元的状态均为“0”。
在这里插入图片描述
其中,p为R维的输入模式;S1为竞争层神经元个数;IW1,1为输入层与竞争层之间的连接权系数矩阵;n1为竞争层神经元的输入;a1为竞争层神经元的输出;LW2,1为竞争层与线性输出层之间的连接权系数矩阵;n2为线性输出层神经元的输入;a2为线性输出层神经元的输出。

2.2 LVQ神经网络学习算法

LVQ神经网络算法是在有教师状态下对竞争层进行训练的一种学习算法,因此LVQ算法可以认为是把自组织特征映射算法改良成有教师学习的算法。LVQ神经网络算法可分为LVQ1算法和LVQ2算法两种。

(1)LVQ1算法
向量量化是利用输入向量的固有结构进行数据压缩的技术,学习向量量化是在向量量化基础上能将输入向量分类的监督学习技术。Kohonen把自组织特征映射算法改良成有教师学习算法,首先设计了LVQ1算法。LVQ1的训练过程开始于随机地自“标定”训练集合选择一个输入向量及该向量的正确类别。

LVQ1算法的基本思想是:计算距离输入向量最近的竞争层神经元,从而找到与之相连接的线性输出层神经元,若输入向量的类别与线性输出神经元所对应的类别一致,则对应的竞争层神经元权值沿着输入向量的方向移动;反之,若两者的类别不一致,则对应竞争层神经元权值沿着输入向量的反方向移动。基本的LVQ1算法的步骤为:

步骤1:初始化输入层与竞争层之间的权值wij及学习率η(η>0)。
步骤2:将输入向量x=(x1,x2,…,xR)T送入到输入层,并计算竞争层神经元与输入向量的距离:
在这里插入图片描述
式中,wij为输入层的神经元j与竞争层的神经元之间的权值。
步骤3:选择与输入向量距离最小的竞争层神经元,若di最小,则记与之连接的线性输出层神经元的类标签为Ci。
步骤4:记输入向量对应的类标签为Cx,若Ci=Cx,则用如下方法调整权值:
在这里插入图片描述
否则,按如下方法进行权值更新:
在这里插入图片描述
(2)LVQ2算法
在LVQ1算法中,只有一个神经元可以获胜,即只有一个神经元的权值可以得到更新调整。为了提高分类的正确率,Kohonen改进了LVQ1,并且被称为新版本LVQ2,。LVQ2算法局域光滑的移动决策边界逼近Bayes极限。LVQ2版本接着被修改,产生LVQ2.1,并且最终发展为LVQ3。这些后来的LVQ版本的共同特点是引用了“次获胜”神经元,获胜神经元的权值向量和“次获胜”神经元的权值向量都被更新。具体计算步骤如下:

步骤1:利用LVQ1算法对所有输入模式进行学习。
步骤2:将输入向量x=(x1,x2,…,xR)T送入到输入层,并根据公式(1)计算竞争层与输入向量的距离。
步骤3:选择与输入向量距离最小的两个竞争层神经元i,j。
步骤4:如果神经元i和神经元j满足以下两个条件:
1神经元i和神经元j对应于不同的类别;
2神经元i和神经元j与当前输入向量的距离di和dj满足公式(4):
在这里插入图片描述
其中,ρ为输入向量可能落进的接近于两个向量中段平面的窗口宽度,一般取2/3左右。则有
1若神经元i对应的类别Ci与输入向量对应的类别Cx一致,即Ci=Cx,则神经元i和神经元j的权值如下方法进行修正。
在这里插入图片描述
2若神经元j对应的类别Cj与输入向量对应的类别Cx一致,即Cj=Cx,则神经元i和神经元j的权值按如下方法进行修正。
在这里插入图片描述
步骤5:若神经元i和神经元j不满足步骤4中的条件,则只更新距离输入向量最近的神经元权值,更新公式与LVQ1算法步骤4相同。

3 模型建立

3.1 设计思路

将乳腺肿瘤病灶组织的细胞核显微图像的10个量化特征作为网络的输入,良性乳腺肿瘤和恶性乳腺肿瘤作为网络的输出。用训练数据集对设计的LVQ神经网络进行训练,然后对测试集数据进行测试并对测试结果进行分析,最后通过与BP神经网络测试的结果进行对比分析。

3.2 设计步骤

根据上述设计思路,设计步骤主要包括以下几个,如图2所示:
在这里插入图片描述
1)数据采集:采用威斯康辛大学的数据集;
2)网络创建:利用MATLAB自带的神经网络工具箱中的函数newlvq()可以构建一个LVQ神经网络;
3)网络训练:网络创建完毕后,根据数据的格式对神经网络的参数进行设置和修改。将训练集的数据输入网络,然后对LVQ神经网络进行训练;
4)网络仿真:LVQ神经网络通过训练后,将测试集的量化特征输入网络,便可以得到对应的输出(即分类)。
5)结果分析:通过对网络仿真结果的分析,可以得到误诊率(包括良性被误诊为恶性及恶性被误诊为良性),从而可以对该方法的可行性进行评价。

4 实验验证

为了验证基于LVQ神经网络乳腺肿瘤分类的可靠性与识别精度,利用MATLAB(2018-a)平台构建LVQ神经网络模型。本文采用威斯康辛大学医学院的乳腺肿瘤癌数据集中共包括569个病例,其中,良性357例,恶性212例。本文随机选取500组数据作为训练集,剩余69组作为测试集。

每个病例的一组数据包括采样组织中各细胞核的10个特征量的平均值、标准差和最坏值(各特征的3个最大数据的平均值)共30个数据。数据文件中每组数据共分32个字段,第1个字段为病例编号;第2个字段为确诊结果,B为良性,M为恶性;第3-12个字段是该病例肿瘤病灶组织的各细胞核显微图像的10个量化特征的平均值;第13-22个字段是相应的标准差;第23-32个字段是相应的最坏值。

本文使用多特征信号对神经网络进行训练,由于输入层为30组不同的特征信号,识别目标为2种不同的肿瘤类别;所以LVQ神经网络结构确定为30-20-2型,其中20为竞争层神经元个数。最大迭代次数设置为1000,显示频率设置为10,学习率选取0.1,训练目标最小精度设为0.1.经过7步训练网络达到稳定并满足误差精度要求,训练结束。随机将500组数据进行训练,将69组测试样本输入已经训练好的LVQ模型,进行乳腺肿瘤分类验证。
在这里插入图片描述
在这里插入图片描述
由于训练集和测试集是随机产生的,因此每次运行的结构都会有所不同。某次运行结构如图xx所示。并通过与BP算法乳腺肿瘤分类进行对比,具体数据如表1、表2所示,LVQ神经网络的分类效果良好。
在这里插入图片描述
结合表1和表2可知,在69组测试集数据中心,有4组数据误诊断(1组将良性乳腺肿瘤误诊为恶性乳腺肿瘤,3组将恶性乳腺肿瘤误诊为良性乳腺肿瘤),平均诊断正确率达94.2%(65/69)。
在这里插入图片描述
由表2中的数据可知:
LVQ算法的总误差为5.80%,而BP算法的误差高达14.49%,即LVQ神经网络的误差要小于BP神经网络的误差,约为BP神经网络的2/5;故LVQ神经网络的识别准确率优于BP神经网络,具有较高的分类精度。
LVQ神经网络的运行速度为9.000s,而BP神经网络的运行时间为3.000s,即LVQ的运行速度要小于BP神经网络,是BP神经网络的3倍。

5 结论

针对乳腺肿瘤的特征多样性,提出了LVQ神经网络识别分类方法,建立了乳腺肿瘤的LVQ神经网络分类模型。通过训练与试验,试验结果表明LVQ神经网络有效地提高了模型识别准确度,验证了LVQ神经网络具有较强的学校、泛化能力,能够精确地分类乳腺肿瘤。

附录 代码

matlab代码 LVQ神经网络的

%% LVQ神经网络的分类——乳腺肿瘤诊断

%% 清空环境变量
clear all
clc
warning off

%% 导入数据
load data.mat
a = randperm(569);
Train = data(a(1:500),:);
Test = data(a(501:end),:);
% 训练数据
P_train = Train(:,3:end)';
Tc_train = Train(:,2)';
T_train = ind2vec(Tc_train);
% 测试数据
P_test = Test(:,3:end)';
Tc_test = Test(:,2)';

%% 创建网络
count_B = length(find(Tc_train == 1));
count_M = length(find(Tc_train == 2));
rate_B = count_B/500;
rate_M = count_M/500;
net = newlvq(minmax(P_train),20,[rate_B rate_M],0.01,'learnlv1');
% 设置网络参数
net.trainParam.epochs = 1000;
net.trainParam.show = 10;
net.trainParam.lr = 0.1;
net.trainParam.goal = 0.1;

%% 训练网络
net = train(net,P_train,T_train);

%% 仿真测试
T_sim = sim(net,P_test);
Tc_sim = vec2ind(T_sim);
result = [Tc_sim;Tc_test]
result1 = result(1, :);
%% 结果显示

% 预测结果图形
figure(1)
plot(Tc_test, '-*') % 正确结果
hold on
plot(result1, 'r:o')
xlabel('测试集样本编号')
ylabel('测试集输出')
title('LVQ测试集输出')
legend('期望输出', '预测输出') % 图标

% 网络预测误差图形
error = result1 - Tc_test;
figure(2)
plot(error, '-*');
xlabel('样本')
ylabel('误差')
title('LVQ预测误差')

total_B = length(find(data(:,2) == 1));
total_M = length(find(data(:,2) == 2));
number_B = length(find(Tc_test == 1));
number_M = length(find(Tc_test == 2));
number_B_sim = length(find(Tc_sim == 1 & Tc_test == 1));
number_M_sim = length(find(Tc_sim == 2 &Tc_test == 2));
disp(['病例总数:' num2str(569)...
      '  良性:' num2str(total_B)...
      '  恶性:' num2str(total_M)]);
disp(['训练集病例总数:' num2str(500)...
      '  良性:' num2str(count_B)...
      '  恶性:' num2str(count_M)]);
disp(['测试集病例总数:' num2str(69)...
      '  良性:' num2str(number_B)...
      '  恶性:' num2str(number_M)]);
disp(['良性乳腺肿瘤确诊:' num2str(number_B_sim)...
      '  误诊:' num2str(number_B - number_B_sim)...
      '  确诊率p1=' num2str(number_B_sim/number_B*100) '%']);
disp(['恶性乳腺肿瘤确诊:' num2str(number_M_sim)...
      '  误诊:' num2str(number_M - number_M_sim)...
      '  确诊率p2=' num2str(number_M_sim/number_M*100) '%']);

matlab 代码 BP神经网络的

%% BP神经网络的分类——乳腺肿瘤诊断

%% 创建网络
net = newff(minmax(P_train),[50 1],{'tansig','purelin'},'trainlm');

%% 设置网络参数
net.trainParam.epochs = 1000;
net.trainParam.show = 10;
net.trainParam.lr = 0.1;
net.trainParam.goal = 0.1;

%% 训练网络
net = train(net,P_train,Tc_train);

%% 仿真测试
T_sim = sim(net,P_test);
for i = 1:length(T_sim)
    if T_sim(i) <= 1.5
        T_sim(i) = 1;
    else
        T_sim(i) = 2;
    end
end
result = [T_sim;Tc_test]
result1 = result(1, :);
% 预测结果图形
figure(1)
plot(Tc_test, '-*') % 正确结果
hold on
plot(result1, 'r:o')
xlabel('测试集样本编号')
ylabel('测试集输出')
title('BP测试集输出')
legend('期望输出', '预测输出') % 图标

% 网络预测误差图形
error = result1 - Tc_test;
figure(2)
plot(error, '-*');
xlabel('样本')
ylabel('误差')
title('BP预测误差')


number_B = length(find(Tc_test == 1));
number_M = length(find(Tc_test == 2));
number_B_sim = length(find(T_sim == 1 & Tc_test == 1));
number_M_sim = length(find(T_sim == 2 &Tc_test == 2));

disp(['病例总数:' num2str(569)...
      '  良性:' num2str(total_B)...
      '  恶性:' num2str(total_M)]);
disp(['训练集病例总数:' num2str(500)...
      '  良性:' num2str(count_B)...
      '  恶性:' num2str(count_M)]);
disp(['测试集病例总数:' num2str(69)...
      '  良性:' num2str(number_B)...
      '  恶性:' num2str(number_M)]);
disp(['良性乳腺肿瘤确诊:' num2str(number_B_sim)...
      '  误诊:' num2str(number_B - number_B_sim)...
      '  确诊率p1=' num2str(number_B_sim/number_B*100) '%']);
disp(['恶性乳腺肿瘤确诊:' num2str(number_M_sim)...
      '  误诊:' num2str(number_M - number_M_sim)...
      '  确诊率p2=' num2str(number_M_sim/number_M*100) '%']);
LVQ学习向量量化网络 一、学习向量量化        LVQ神经网络是一种混合网络,通过有监督及无监督的学习来形成分类。        在LVQ网络中,第一层的每个神经元都制定给某给类,常常几个神经元被制定给同一类,每类再被指定给第二层的一个神经元。第一层神经元的个数S1,第二层神经元个数S2,至少相同,并且通常大一些。        和竞争网络一样,LVQ网络的第一层的每个神经元学习原型向量,它可以对输入空间的 阅读详情

相关推荐

机器学习(十二):学习向量量化算法(LVQ)

机器学习中的学习向量量化算法原理以及实现案例

全栈川川 3023

LVQ神经网络基本原理与从聚类角度看本质

《老饼讲解神经网络》:本文介绍LVQ神经网络的结构、运作与训练,是LVQ的入门教程,是LVQ原理理解、代码实现、实际应用的理论基础。在matlab中使用工具箱使用LVQ,和挖出工具箱源码,重写LVQ请查看《LVQ-matlab工具箱使用》《LVQ-matlab工具箱源码重写》,你没看错,是挖出源码重写...

dbat 7739

《MATLAB 神经网络43个案例分析》:第26章 LVQ神经网络的分类——乳腺肿瘤诊断

《MATLAB 神经网络43个案例分析》是MATLAB技术论坛(www.matlabsky.com)策划,由王小川老师主导,2013年北京航空航天大学出版社出版的关于MATLAB为工具的一本MATLAB实例教学书籍,是在《MATLAB神经网络30个案例分析》的基础上修改、补充而成的,秉承着“理论讲解—案例分析—应用扩展”这一特色,帮助读者更加直观、生动地学习神经网络。《MATLAB神经网络43个案例分析》共有43章,内容涵盖常见的神经网络(BP、RBF、SOM、Hopfield、Elman、LVQ、Koho

sinat_34897952的博客 929

快速了解LVQ神经网络是什么

LVQ神经网络全称为Learning Vector Quantization,主要用于做分类,它是Kohonen于1989年提出基于竞争网络的学习矢量量化网络,本文面向新人入门,简单介绍LVQ神经网络的结构、运作,通过本文可快速了解LVQ神经网络是个什么东西

dbat 1386

基于LVQ神经网络的乳腺肿瘤分类诊断

LVQ(Learning Vector Quantization)神经网络,一种通过竞争学习进行模式识别的前馈神经网络。它借鉴了人脑神经元的处理机制,通过调整神经元之间的连接权重来模拟学习过程。与传统的人工神经网络相比,LVQ在分类问题上表现出更高的效率和准确性。在医疗诊断的实践中,已经有许多成功的深度学习与机器学习结合的应用案例。例如,在乳腺癌的自动分类任务中,研究者通过构建一个CNN模型用于从影像中提取特征,并将这些特征传递给逻辑回归模型进行分类,取得了与专业放射科医生相当的诊断准确率。

weixin_42360733的博客 1023

基于MATLAB的LVQ神经网络乳腺肿瘤分类诊断实践

本文还有配套的精品资源,点击获取 简介:本项目旨在探索MATLAB中LVQ神经网络在乳腺肿瘤诊断中的应用。LVQ网络通过调整码书向量实现模式识别和分类,尤其适用于医疗诊断领域。内容包括LVQ网络原理、MATLAB实现步骤、数据预处理、特征选择、网络结构调整、验证和测试策略以及结果后处理等优化方法,为乳腺肿瘤提供高精度的分类模型辅助工具。 1. LVQ神经网络原理 ...

weixin_42389113的博客 1678

LVQ神经网络的分类——乳腺肿瘤诊断(matlab实现)

' 确诊率p1=' num2str(number_B_sim/number_B*100) '%']);' 确诊率p2=' num2str(number_M_sim/number_M*100) '%']);' 误诊:' num2str(number_B-number_B_sim)...' 误诊:' num2str(number_M-number_M_sim)...disp(['良性乳腺肿瘤确诊:' num2str(number_B_sim)...' 恶性:' num2str(total_M)]);

2201_75454341的博客 148

MATLAB实现基于LVQ神经网络的乳腺肿瘤诊断分类代码

本文还有配套的精品资源,点击获取 简介:本资源详细介绍了如何使用MATLAB和LVQ(Learning Vector Quantization)神经网络进行分类与判别建模,重点在于乳腺肿瘤的诊断。LVQ神经网络是一种用于模式识别和分类任务的监督学习算法,通过学习样本的矢量化表示创建原型,进行有效的数据分类。资源包括MATLAB实现、LVQ网络说明、乳腺肿瘤诊断模型构建、交叉...

weixin_31974443的博客 1044

matlab newlvq,基于LVQ神经网络的乳腺肿瘤分类

LVQ神经网络1.结构由3层神经元组成,即输入层、竞争层和线性输出层,输入层与竞争层之间采用全连接方式,竞争层与线性输出层之间采用部分连接的方式。2.学习算法LVQ1算法、LVQ2算法概述数据库包含细胞核图像的10个量化特征(细胞核半径、质地、周长、面积、光滑度等),这些特征与肿瘤的性质密切相关。因此需要建立一个确定的模型来描述数据库中各个量化特征与肿瘤性质的关系,从而可以根据细胞核显微图像的量化...

weixin_32540109的博客 897

基于LVQ神经网络的乳腺肿瘤诊断分类代码

*LVQ神经网络(Learning Vector Quantization Network)**是一种基于竞争学习的人工神经网络,广泛应用于分类问题。LVQ网络的核心思想是通过聚类或分组的方式,将输入数据映射到一个类别标签上,并根据训练样本的特征来调整模型的权重。与传统的神经网络相比,LVQ是一种无监督学习方法,但在训练过程中可以采用监督信息来改进模型。

weixin_58438203的博客 256

MATLAB实现的LVQ神经网络在乳腺肿瘤分类中的应用

本文还有配套的精品资源,点击获取 简介:本项目聚焦于使用MATLAB构建LVQ神经网络模型进行乳腺肿瘤的诊断,特别是在分类良性与恶性肿瘤方面。项目介绍了LVQ的原理、学习与竞争阶段,以及在MATLAB中的实现步骤,包括数据导入、网络初始化、训练、验证和测试。通过优化网络参数和数据预处理,提高了模型在医学诊断中的准确性和效率,展现了机器学习在医疗领域的实际应用价值。 ...

weixin_33173126的博客 668

MATLAB中乳腺肿瘤分类的LVQ神经网络实现

LVQ(Learning Vector Quantization,学习向量量化)是一种由Kohonen提出的竞争学习神经网络。其基本思想是通过竞争学习对输入样本进行分类,每一个类别都由一个代表向量(原型向量)表示,输入向量根据与各原型向量的距离被分配到最近的类别。在竞争学习过程中,神经元通过相互竞争来响应输入模式。这个过程是通过一组竞争神经元进行的,这些神经元通常排列在一个层中,并连接到输入层。每个输入模式会导致竞争层中的一个或多个神经元被激活。

weixin_35706255的博客 986

手把手教你用OpenCompass评估Qwen1.5-1.8B模型(含数据集配置详解)

本文提供了使用OpenCompass评估Qwen1.5-1.8B-Chat模型的详细实战教程。内容涵盖从创建独立Python环境、下载模型与核心数据集,到编写配置文件、执行评测命令及解读结果的完整流程。重点解析了模型与数据集的配置细节,并分享了性能调优与常见问题排查方法,旨在帮助开发者快速上手系统化的模型评估。

weixin_29228781的博客 138
上一篇: KL社区发现算法概述与源码
下一篇: 试题 入门训练 Fibonacci数列
xiao黄
xiao黄 优质创作者: 人工智能技术领域 优质创作者: 人工智能技术领域 领域专家: 数据科学与机器学习技术领域 领域专家: 数据科学与机器学习技术领域
博客等级 码龄8年 1万+粉丝 250原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiao黄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值