算法卷积神经网络

卷积神经网络  时间:2021-02-25  阅读:()
第36卷第8期计算机应用与软件Vol36No.
82019年8月ComputerApplicationsandSoftwareAug.
2019基于卷积神经网络模型的手写数字辨识算法研究张烁1张荣21(山西青年职业学院计算机系山西太原030024)2(山西医科大学计算机教学部山西太原030001)收稿日期:2019-01-15.
山西医科大学校级基金项目(XJ2018099).
张烁,讲师,主研领域:人工智能,移动互联技术.
张荣,讲师.
摘要针对目前基于卷积神经网络模型(CNN)手写数字辨识算法收敛速度慢、识别率低的问题,设计一种CNN网络模型.
在模型训练时,改进模型学习率,使学习率指数可以动态衰减;使用Dropout正则化方法,提高模型的泛化能力;与批量随机梯度下降法、Momentum算法、Adagrad算法、RMSprop算法、Adam算法等参数优化方法作比较.
实验结果表明:基于RMSprop或Adam的优化算法CNN模型在对MNIST数据集进行训练时,算法收敛速度快、测试集识别准确率为99.
40%或99.
70%.
关键词CNN参数优化手写数字中图分类号TP3文献标识码ADOI:10.
3969/j.
issn.
1000386x.
2019.
08.
030HANDWRITTENDIGITALRECOGNITIONALGORITHMBASEDONCNNMODELZhangShuo1ZhangRong21(ComputerScienceDepartment,ShanxiYouthVocationalCollege,Taiyuan030024,Shanxi,China)2(ComputerInstruction,ShanxiMedicalUniversity,Taiyuan030001,Shanxi,China)AbstractAimingattheproblemsofslowconvergencespeedandlowrecognitionrateofhandwrittennumeralrecognitionalgorithmbasedonconvolutionalneuralnetworkmodel(CNN),wedesignedaCNNnetworkmodel.
Thelearningrateofthemodelwasimprovedsothatthelearningrateindexcanbeattenuateddynamically.
Dropoutregularizationmethodwasusedtoprovidethegeneralizationabilityofthemodel.
Finally,wecomparedthismethodwiththebatchrandomgradientdescentmethod,Momentumalgorithm,Adagradalgorithm,RMSpropalgorithmandAdamalgorithmemphaticallycompared.
TheexperimentalresultsshowthatwhentrainingMNISTdatasetsbasedonRMSproporAdamoptimizationalgorithmCNNmodel,thealgorithmconvergesfastandtherecognitionaccuracyoftestsetsis99.
40%or99.
70%.
KeywordsCNNParameteroptimizationHandwrittennumbers0引言手写数字辨识技术是指机器自动识别手写阿拉伯数字技术,是机器学习、模式识别等领域非常重要的一个研究方向[1].
1998年,LeCun等[2]提出了一种基于梯度学习的CNN算法(LeNet5),并应用于手写数字辨识中.
鉴于此,LeNet网络当时应用于整个美国的邮政系统中,通过识别手写邮政编码来分类邮件.
目前,在邮政编号识别、银行单据自动录入、财务报表自动录入等识别系统中,都使用了手写数字辨识技术[3].
近年来随着大数据和人工智能技术的快速发展,人们不但对手写数字的识别率提出了更高的要求,而且对算法训练模型的时间也提出了更高的要求[4].
目前,手写数字辨识的方法[5]主要包括:结构识别法、统计识别法、深度学习法.
结构识别法对相似数字有较强的识别能力,但是对于环境复杂的脱机数字识别往往识别正确率不高.
统计识别法是指从大量的统第8期张烁等:基于卷积神经网络模型的手写数字辨识算法研究173计数据中提取出特征,然后通过决策函数进行分类.
统计识别法通常有很强的抗干扰能力,但是往往识别的正确率也不理想.
深度学习法的出现解决了识别率低的问题,并且通过改进深度学习网络加快模型的训练速度.
在手写数字辨识问题领域,深度学习法是目前理想的选择.
卷积神经网络(CNN)是深度学习模型中最为成功的网络之一,并且在图像识别领域有很好的识别效果.
深度学习(包括CNN、RNN等)是端到端的学习,传统机器学习往往通过模块化的方法解决此类问题,分为图像预处理、特征提取、设计分类器等子步骤完成任务.
模块化的基本思想是:将一个复杂、繁琐的问题分成几个简单的子问题模块来处理.
但是,在处理每个子问题时,每个子问题都可能存在最优解,将这些子问题组合起来后,从全局来看,并不一定会得到最优解.
对于深度学习是基于端到端的深层次网络学习方式,整个流程并不进行子模块的划分,可以直接将原始数据输入到模型中,整个学习过程完全交给深层次网络模型,这样最大的优点就是可以统筹全局获得最优解.
1网络模型结构设计1.
1卷积神经网络卷积神经网络由输入层、卷积层、池化层、全连接层、输出层构成,多个层可以看成一个复杂的函数fCNN,损失函数由参数正则化损失和数据损失构成,在训练整个网络时,按照损失函数将参数误差反向传播给整个模型的各个层次,达到参数更新的目的.
整个训练过程可以看成从原始数据向最终目标的直接拟合,中间各层次的作用为特征学习.
CNN原理图如图1所示.
可以看出,卷积层和池化层是整个CNN网络的核心.
图1CNN基本原理图在卷积层中,通过可训练的卷积核对上一层的输入数据进行卷积操作,通常卷积核为3*3或5*5的矩阵,确定大小的卷积核按照规定的步长在上一层输入数据做从左到右、从上到下的"滑动"操作,并输出特征图,每次卷积操作都可以提取出一种特征.
如果在CNN网络训练时有n个卷积核就可以提取出图像的n个特征.
一般地,若一个三维张量xk为第k卷积层的输入,满足xk∈RRHk*Wk*Dk,该层的卷积核为wk∈RRH*W*Dk,卷积核有D个,则在同一数据位置上可以得到D维的卷积输出,即在k+1层的特征矩阵输入xk+1的通道数为D,可表示为:yk=∑Hi=0∑Wj=0∑Dkdk=0wki,j,dk*xki,j,dk+bn(1)式中:wki,j,dk为权值,bn为偏置值.
在池化层中,主要的任务是对上一层特征图进行下采样处理,这是一种采样较少的数据还保持原有重要信息的一种操作.
常用的池化操作类型[6]分为平均池化(AveragePooling)、最大池化(MaxPooling)等.
平均池化是在每次数据操作时,将池化核覆盖区域的数值取平均值,可表示为:ymaverage-pooling=1H*W∑0≤i卷积神经网络设计本文设计的CNN网络有8层构成,分别是1个输入层、2个卷积层、2个池化层、2个全连接层、1个输出层.
除去整个网络的输入层和输出层,中间的2个卷积层、2个池化层、2个全连接层可以看成网络的隐含层.
CNN网络结构如图2所示.
图2CNN网络结构图本文设计的CNN网络结构中,输入层INPUT包含28*28*1个神经元.
C1层为卷积层,卷积核大小为5*5,32个卷积通道数,每个通道为14*14的矩阵.
P1为池化层,包括32个池化通道,每个通道为14*14174计算机应用与软件2019年的矩阵,每个池化通道是由C1层经过大小为2*2、步长为2的最大池化后,通过ReLU激活函数进行非线性变化得到的.
C2为卷积层,包括64个卷积通道数,每个通道为7*7的矩阵.
P2为池化层,包括64个7*7的池化通道.
每个池化通道是由C2层经过大小为2*2、步长为2的窗口进行最大池化后,通过ReLU激活函数进行非线性变化得到的.
FC1为全连接层,有1024个神经元,每个神经元和P2层的每个神经元相连接.
FC2为全连接层,有10个神经元,每个神经元和FC1层的每个神经元相连接.
最后通过SoftMax函数输出分类结果.
2改进的CNN网络模型算法原理2.
1学习率改进一个理想的学习率要求一开始学习率的数值较大,并且有较快的收敛速度,然后随着迭代次数的增加,学习率的数值慢慢衰减,最后达到最优解.
本文设计的CNN网络模型定义一个学习率适应这样的过程,在实现批量随机梯度下降法时,实现学习率的指数衰减.
学习率指数衰减η(t)公式如下:η(t)=η0·10-tr(4)式中:η0为学习率初始值;t为迭代次数;r为衰减率.
2.
2Dropout正则化方法为了减少全连接层网络的复杂程度,本文设计的CNN网络使用Dropout正则化方法.
传统的神经网络中,每个神经元之间相互联系,每一个神经元都会反向传导后一个神经元的梯度信息并且相互之间联系紧密,增加了网络训练的复杂度.
Dropout可以降低神经元之间的紧密性和相互依赖,来提高算法的"泛化能力",防止发生"过拟合"现象.
Dropout的原理是:在训练时,对于网络每一层的神经元,以p为概率随机地丢掉一些神经元,也就是将这些神经元的权值w设为0;在测试时,将所有的神经元都设为激活状态,但需要将训练时丢掉的神经元权值w乘以(1-p)来保证训练和测试阶段各自权值有相同的期望.
具体如图3所示.
图3单个神经元的Dropout2.
3参数优化方法本文在训练CNN网络时,使用了不同的参数优化方法来比较各个参数优化方法在训练手写数字图像的性能.
(1)批量随机梯度下降法(minibatchbasedSGD)SGD在进行样本训练时,在每一轮的训练过程中,不对全部样本进行训练,只是随机的选择一个样本进行训练,这样可以提高收敛速度.
SGD可以分批计算训练集的代价函数并用梯度对θ参数进行更新公式如下:θ←θ-η·f(θ,xi,yi)(5)式中:f(θ,xi,yi)为代价函数;f(θ,xi,yi)是随机选取样本空间(xi,yi)的一点对θ的梯度;η为学习率.
(2)Momentum算法Momentum算法借助了物理中动量的概念,模拟了运动物体时的惯性,在参数更新的时候在一定程度上保留了之前更新的方向,可以增加稳定性并且有较快的学习速度,θ参数更新公式如下:vt=γ·vt-1+η·f(θ,xi,yi)(6)θ←θ-vt(7)式中:γ为动量;vi为i时的梯度变化.
(3)Adagrad算法Adagrad算法的最大特点是可以在训练时对学习率进行动态调整.
当参数出现的频率较低时,采用较大的学习率进行参数训练;相反,参数出现的频率较高时,采用较小的学习率进行参数训练.
在处理稀疏数据时,Adagrad算法有较好的训练效果.
θ参数更新公式如下:θ←θ-ηGt+槡ε·f(θ,xi,yi)(8)式中:Gt为对角矩阵每个位置参数对应从第1轮训练到第t轮训练梯度的平方和;ε为平滑项,防止分式的分母为0,一般取值为1e-8.
(4)RMSprop算法RMSprop算法是人工智能大师Hinton提出的一种自适应学习率动态调整算法,其目的是为了缓解Adagrad算法中学习率下降过快.
Adagrad算法会累加之前所有的梯度平方,而RMSprop算法是计算之前所有梯度的平均值.
θ参数更新公式如下:θ←θ-ηEt+槡ε·f(θ,xi,yi)(9)式中:Et为对角矩阵每个位置参数对应从第1轮训练到第t轮训练梯度的均值.
(5)Adam算法Adam算法也是一种学习率自适应算法,它利用梯度的一阶矩阵和二阶矩阵来动态调第8期张烁等:基于卷积神经网络模型的手写数字辨识算法研究175整参数的学习率.
其最大的优点是校正的学习率,使每一次迭代都有一个确定的范围,并且使参数更新比较平稳.
θ参数更新公式如下:θ←θ-ηvt+槡ε·mt(10)式中:vt和mt分别是对代价函数求梯度的一阶矩阵和二阶矩阵.
2.
4算法流程基于本文提出的CNN模型训练参数时,主要包括使用动态学习率,在网络训练时加入了Dropout方法和分别使用了批量随机梯度下降法、Momentum算法、Adagrad算法、RMSprop算法、Adam算法进行参数优化.
算法整体流程图如图4所示.
图4参数训练算法流程图3实验与结果分析3.
1实验数据集与仿真环境仿真实验所用的数据集是美国国家标准与技术研究所编制的MNIST数据集,该数据集有含有0~9的手写数字图像,其中训练集有60000个样本图像,测试集有10000个样本图像,训练集数据标签是"onehotvector"形式,每张图像大小为像素.
每次训练数据时,批次的大小为50,训练的迭代次数为101次,分别使用了本文提及的5种参数优化方法进行训练.
仿真实验硬件环境为Windows8操作系统,第八代i7处理器3.
60GHz,16GB内存,GeForce1080Ti独立显卡;软件环境为TensorFlow1.
4+Python3.
6.
3.
2实验数据测试本文是基于TensorFlow开源框架来构建CNN网络模型实现手写数字辨识的训练过程,其CNN网络模型参数具体配置如表1所示.
表1本文CNN网络模型参数操作类型参数输入输出1卷积f=5,p=1,s=1d=32,a=ReLU28*28*114*14*322池化f=2,s=214*14*3214*14*323卷积f=5,p=1,s=1d=64,a=ReLU14*14*327*7*644池化f=2,s=27*7*647*7*645全连接d=1024,a=ReLU7*7*641*1*10246Dropoutδ=0.
51*1*10241*1*10247全连接d=1024,a=ReLU1*1*10241*1*10248输出Loss=Softmax1*1*10-注:f为卷积核或池化核的大小,s为步长,d为该层卷积核的通道数(个数),p为填充参数,δ为dropout丢掉率,a为激活函数使用批量随机梯度下降法和表1的CNN网络模型参数配置来优化参数,学习率为动态指数衰减方式,实验分析包括测试集准确率、训练集代价函数错误率、迭代次数、训练时间.
如图5所示,在训练数据时,代价函数经过101次迭代后错误率为1.
80%,但是测试集准确率只为75.
60%,整个训练时间为14min33s.
这说明使用批量随机梯度下降法来优化参数时,整个网络模型的泛化能力不强,发生了过拟合现象.
(a)测试集正确率(b)训练集错误率图5批量随机梯度下降法训练CNN网络模型分别使用Momentum算法、Adagrad算法、RMSprop算法、Adam算法对网络参数进行优化来比较各个算法性能,如图6和图7所示.
(a)Momentum优化测试集正确率(b)Momentum优化训练集错误率176计算机应用与软件2019年(c)Adagrad优化测试集正确率(d)Adagrad优化训练集错误率图6Momentum算法和Adagrad算法训练CNN网络模型(a)RMSprop优化测试集正确率(b)RMSprop优化训练集错误率(c)Adam优化测试集正确率(d)Adam优化训练集错误率图7RMSprop算法、Adam算法训练CNN网络模型通过图6可以看出,Momentum算法和Adagrad算法在训练数据时,训练集经过101次训练后错误率分别为1.
70%和1.
72%,但是测试集的准确率分别只有79.
29%和82.
20%,并且收敛速度较慢.
训练时间分别为15min20s和15min13s.
从图中可以看出Adagrad算法在训练时震荡剧烈.
通过图7可以看出,RMSprop算法和Adam算法在训练数据时,训练集经过101次训练后错误率分别为1.
46%和1.
47%,在测试集的准确率分别为99.
40%和99.
70%,训练时间分别为15min58s和15min42s.
这两种算法在迭代次数较小的情况下,就已经达到较高的准确率,说明收敛速度较其他算法快.
可以看出,使用RMSprop算法和Adam算法在测试集的准确率远远高于其他优化器算法,并且Adam算法比RMSprop算法的准确率高出0.
3%,训练时间少16s.
各优化器算法总结如表2所示.
表2各优化器算法比较算法名称训练错误率/%测试准确率/%训练时间批量随机梯度下降法1.
8075.
6014min33sMomentum算法1.
7079.
2915min20s续表2Adagrad算法1.
7282.
2015min13sRMSprop算法1.
4699.
4015min58sAdam算法1.
4799.
7015min42s为了分析本文CNN网络在测试集的识别性能,将识别准确率与其他手写数字识别方法进行比较,如表3所示.
表3几种手写数字识别方法比较方法名称使用数据集测试准确率/%改进的LeNet-5网络[3]MNIST99.
02改进的深自编码网络[4]MNIST99.
20改进的栈式自编码网络[5]MNIST97.
53本文CNN网络+Adam算法MNIST99.
70综上所述,基于本文设计的CNN网络结构,Adam算法在训练集的错误率、测试集的准确率和收敛速度方面都优于其他优化器.
各优化器在训练集的错误率都较低,但使用批量随机梯度下降法、Momentum算法和Adagrad算法验证测试集准确率都表现不佳,说明这三种算法在优化网络参数时,泛化能力不强.
批量随机梯度下降法参数优化时间最短,但是测试准确率最低;RMSprop算法训练时间最长,测试准确率可以达到99.
40%.
所有算法训练时间都在可接受范围之内,并且与机器的配置有很大关系.
基于本文设计的CNN网络和Adam参数优化算法在相同数据集的情况下,测试集准确率高于文献[3-5]中数字识别方法的准确率.
4结语本文基于手写数字辨识对CNN网络模型参数优化进行研究.
实验结果表明:在本文设计的CNN网络模型下,使用学习率动态衰减、Dropout正则化方法,RMSprop算法和Adam算法在参数优化方面收敛速度快、识别准确率高,测试集准确率可达99.
40%和99.
70%.
下一步将优化CNN网络模型,可将优化的CNN网络模型使用RMSprop算法和Adam算法优化参数的方法应用在其他图像识别中.
参考文献[1]马义超,赵运基,张新良.
基于PCA初始化卷积核的CNN手写数字识别算法[J/OL].
计算机工程与应用:1-10(2018-09-19).
http://kns.
cnki.
net/kcms/detail/11.
2127.
TP.
20180917.
1428.
010.
html.
(下转第261页)第8期梁青艳等:特钢厂炼钢浇铸流程作业调度优化仿真模型261图9仿真生产甘特图4结语本文基于多智能体理论建立了炼钢浇铸流程优化调度仿真模型,构建了物料、设备、工序、总调度几大智能体模型,建立了任务分配机制以及前后工序间协调机制.
一方面通过任务分配机制解决了多设备之间任务分配问题,另一方面通过前后工序协调优化机制,消除了由于浇铸坑未准备好或者浇铸坑被占用导致产生无效的钢包等待(前序等后续),减少了由于中频入炉时间晚导致浇铸坑为等待钢包产生的长时待料(后序等前序).
仿真结果表明,所建模型能有效减少设备无效等待时间,提高设备作业效率,使冶炼作业计划更加紧凑连贯.
本文所提出的4类智能体模型及智能体模型的任务协调机制具有通用性,可用于其他生产车间,为一体化生产调度提供了基础.
参考文献[1]郑忠,龙建宇,高小强,等.
钢铁企业以计划调度为核心的生产运行控制技术现状与展望[J].
计算机集成制造系统,2014,20(11):2660-2674.
[2]王彬,王闯,王宝,等.
炼钢连铸过程生产计划与调度问题综合优化研究[J].
武汉科技大学学报(自然科学版),2014,37(3):161-166.
[3]LeeHS,MurthySS,HaiderSW,etal.
Primaryproductionschedulingatsteelmakingindustries[J].
IbmJournalofResearch&Development,1996,40(2):231-252.
[4]TangL,LiuJ,RongA,etal.
Areviewofplanningandschedulingsystemsandmethodsforintegratedsteelproduction[J].
EuropeanJournalofOperationalResearch,2001,133(1):1-20.
[5]常春光,胡琨元,汪定伟,等.
钢铁生产动态调度理论研究与工程应用综述[J].
信息与控制,2003,32(6):531-537.
[6]郑秉霖,胡琨元,常春光.
一体化钢铁生产计划系统的研究现状与展望[J].
控制工程,2003,10(1):6-10.
[7]於春月.
钢铁一体化生产计划与调度优化问题研究[D].
沈阳:东北大学,2009.
[8]龚永民.
炼钢流程生产作业计划编制相关基础问题研究[D].
重庆:重庆大学,2016.
[9]TangL,LuhPB,LiuJ,etal.
SteelmakingprocessschedulingusingLagrangianrelaxation[J].
InternationalJournalofProductionResearch,2002,40(1):55-70.
[10]冯振军,杨根科,杜斌,等.
炼钢连铸调度的启发式和线性规划两步优化算法[J].
冶金自动化,2005,29(4):18-22.
[11]战德臣,陈伟,王忠杰.
基于启发式规则的混合遗传算法及其在生产计划优化中的应用[J].
计算机工程与应用,2003(8):215-218.
[12]郑忠,何腊梅,高小强.
基于细胞自动机的流程仿真方法在炼钢生产中的应用[C]//2005中国钢铁年会论文集,2005:718-723.
[13]李文兵,纪扬,李华德.
基于面向对象的连铸生产过程仿真建模和实现[J].
系统仿真学报,2007,19(18):4288-4291.
[14]佘国林.
基于MultiAgent的连铸热轧一体化生产调度系统[D].
大连:大连理工大学,2007.
[15]李彪.
多智能体冶铸轧调度系统的开发研究[D].
包头:内蒙古科技大学,2008.
[16]陈勇,吴国献,林飞龙.
多品种多工艺车间作业调度的multiAgent建模[J].
浙江大学学报(工学版),2009,43(9):1672-1678.
[17]CowlingPI,OuelhadjD,PetrovicS.
Amultiagentarchitecturefordynamicschedulingofsteelhotrolling[J].
JournalofIntelligentManufacturing,2003,14(5):457-470.
(上接第176页)[2]LecunYL,BottouL,BengioY,etal.
GradientBasedLearningAppliedtoDocumentRecognition[J].
ProceedingsoftheIEEE,1998,86(11):2278-2324.
[3]李斯凡,高法钦.
基于卷积神经网络的手写数字识别[J].
浙江理工大学学报(自然科学版),2017,37(3):439-443.
[4]陈浩翔,蔡健明,刘铿然.
手写数字深度特征学习与识别[J].
计算机技术与发展,2016,26(7):19-23.
[5]邢远.
深度学习在手写数字识别中的应用[D].
苏州:苏州大学,2017.
[6]王秀席,王茂宁,张建伟,等.
基于改进的卷积神经网络LeNet5的车型识别方法[J].
计算机应用研究,2018,35(7):301-304.
[7]SrinivasS,BabuRV.
DeepLearninginNeuralNetworks:AnOverview[J].
NeuralNetworks,2015,61:85-117.
[8]李寰宇,毕笃彦,查宇飞,等.
一种易于初始化的类卷积神经网络视觉跟踪算法[J].
电子与信息学报,2016,38(1):1-7.
[9]吕国豪,罗四维,黄雅平.
基于卷积神经网络的正则化方法[J].
计算机研究与发展,2014,51(9):1891-1900.

建站选择网站域名和IP主机地址之间关系和注意要点

今天中午的时候有网友联系到在选择网站域名建站和主机的时候问到域名和IP地址有没有关联,或者需要注意的问题。毕竟我们在需要建站的时候,我们需要选择网站域名和主机,而主机有虚拟主机,包括共享和独立IP,同时还有云服务器、独立服务器、站群服务器等形式。通过这篇文章,简单的梳理关于网站域名和IP之间的关系。第一、什么是域名所谓网站域名,就是我们看到的类似"www.laozuo.org",我们可以通过直接记...

ShockHosting($4.99/月),东京机房 可享受五折优惠,下单赠送10美金

ShockHosting商家在前面文章中有介绍过几次。ShockHosting商家成立于2013年的美国主机商,目前主要提供虚拟主机、VPS主机、独立服务器和域名注册等综合IDC业务,现有美国洛杉矶、新泽西、芝加哥、达拉斯、荷兰阿姆斯特丹、英国和澳大利亚悉尼七大数据中心。这次有新增日本东京机房。而且同时有推出5折优惠促销,而且即刻使用支付宝下单的话还可获赠10美金的账户信用额度,折扣相比之前的常规...

提速啦(24元/月)河南BGP云服务器活动 买一年送一年4核 4G 5M

提速啦的来历提速啦是 网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑 由赣州王成璟网络科技有限公司旗下赣州提速啦网络科技有限公司运营 投资1000万人民币 在美国Cera 香港CTG 香港Cera 国内 杭州 宿迁 浙江 赣州 南昌 大连 辽宁 扬州 等地区建立数据中心 正规持有IDC ISP CDN 云牌照 公司。公司购买产品支持3天内退款 超过3天步退款政策。提速啦的市场定位提速啦主...

卷积神经网络为你推荐
主页改不了浏览器主页改不了缓冲区溢出教程溢出攻击法使用什么样的原理伪静态如何设置伪静态规则照片转手绘如何把真人图片用photoshop做成手绘图片镜像文件是什么什么叫镜像文件,作用是什么?如何建立一个网站怎样能创建一个网站godaddygodaddy域名怎样使用怎么升级ios6苹果6怎么升级最新系统bluestack安卓模拟器bluestacks怎么用?电子商务网站模板电子商务网站模板哪个好?电子商务网站模板免费建站怎么样?
cn域名价格 万网免费域名 duniu 网通代理服务器 浙江独立 服务器是干什么的 购买国外空间 申请网站 美国凤凰城 asp空间 小夜博客 蓝队云 qq空间打开很慢 cdn免备案空间 冰盾ddos防火墙 次世代主机 八度空间论坛 好看的空间图片 免费mysql空间 杭州汽车摇号申请网站 更多