安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

建议收藏!27个Python机器学习深度学习库总结(含大量示

7月23日 小米粒投稿
  人工智能指的是一系列使机器能够像人类一样处理信息的技术;机器学习是利用计算机编程从历史数据中学习,对新数据进行预测的过程;神经网络是基于生物大脑结构和特征的机器学习的计算机模型;深度学习是机器学习的一个子集,它处理大量的非结构化数据,如人类的语音、文本和图像。
  因此,这些概念在层次上是相互依存的,人工智能是最广泛的术语,而深度学习是最具体的:
  为了大家能够对人工智能常用的Python库有一个初步的了解,以选择能够满足自己需求的库进行学习,对目前较为常见的人工智能库进行简要全面的介绍。
  Python常用机器学习及深度学习库介绍1、Numpy
  NumPy(NumericalPython)是Python的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,Numpy底层使用C语言编写,数组中直接存储对象,而不是存储对象指针,所以其运算效率远高于纯Python代码。
  我们可以在示例中对比下纯Python与使用Numpy库在计算列表sin值的速度对比:importnumpyasnpimportmathimportrandomimporttimestarttime。time()foriinrange(10):list1list(range(1,10000))forjinrange(len(list1)):list1〔j〕math。sin(list1〔j〕)print(使用纯Python用时{}s。format(time。time()start))starttime。time()foriinrange(10):list1np。array(np。arange(1,10000))list1np。sin(list1)print(使用Numpy用时{}s。format(time。time()start))
  从如下运行结果,可以看到使用Numpy库的速度快于纯Python编写的代码:使用纯Python用时0。017444372177124023s使用Numpy用时0。001619577407836914s2、OpenCV
  OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上。它轻量级而且高效由一系列C函数和少量C类构成,同时也提供了Python接口,实现了图像处理和计算机视觉方面的很多通用算法。
  下面代码尝试使用一些简单的滤镜,包括图片的平滑处理、高斯模糊等:importnumpyasnpimportcv2ascvfrommatplotlibimportpyplotaspltimgcv。imread(h89817032p0。png)kernelnp。ones((5,5),np。float32)25dstcv。filter2D(img,1,kernel)blur1cv。GaussianBlur(img,(5,5),0)blur2cv。bilateralFilter(img,9,75,75)plt。figure(figsize(10,10))plt。subplot(221),plt。imshow(img〔:,:,::1〕),plt。title(Original)plt。xticks(〔〕),plt。yticks(〔〕)plt。subplot(222),plt。imshow(dst〔:,:,::1〕),plt。title(Averaging)plt。xticks(〔〕),plt。yticks(〔〕)plt。subplot(223),plt。imshow(blur1〔:,:,::1〕),plt。title(Gaussian)plt。xticks(〔〕),plt。yticks(〔〕)plt。subplot(224),plt。imshow(blur1〔:,:,::1〕),plt。title(Bilateral)plt。xticks(〔〕),plt。yticks(〔〕)plt。show()
  可以参考OpenCV图像处理基础(变换和去噪),了解更多OpenCV图像处理操作。3、Scikitimage
  scikitimage是基于scipy的图像处理库,它将图片作为numpy数组进行处理。
  例如,可以利用scikitimage改变图片比例,scikitimage提供了rescale、resize以及downscalelocalmean等函数。fromskimageimportdata,color,iofromskimage。transformimportrescale,resize,downscalelocalmeanimagecolor。rgb2gray(io。imread(h89817032p0。png))imagerescaledrescale(image,0。25,antialiasingFalse)imageresizedresize(image,(image。shape〔0〕4,image。shape〔1〕4),antialiasingTrue)imagedownscaleddownscalelocalmean(image,(4,3))plt。figure(figsize(20,20))plt。subplot(221),plt。imshow(image,cmapgray),plt。title(Original)plt。xticks(〔〕),plt。yticks(〔〕)plt。subplot(222),plt。imshow(imagerescaled,cmapgray),plt。title(Rescaled)plt。xticks(〔〕),plt。yticks(〔〕)plt。subplot(223),plt。imshow(imageresized,cmapgray),plt。title(Resized)plt。xticks(〔〕),plt。yticks(〔〕)plt。subplot(224),plt。imshow(imagedownscaled,cmapgray),plt。title(Downscaled)plt。xticks(〔〕),plt。yticks(〔〕)plt。show()
  4、PythonImagingLibrary(PIL)
  PythonImagingLibrary(PIL)已经成为Python事实上的图像处理标准库了,这是由于,PIL功能非常强大,但API却非常简单易用。
  但是由于PIL仅支持到Python2。7,再加上年久失修,于是一群志愿者在PIL的基础上创建了兼容的版本,名字叫Pillow,支持最新Python3。x,又加入了许多新特性,因此,我们可以跳过PIL,直接安装使用Pillow。5、Pillow
  使用Pillow生成字母验证码图片:fromPILimportImage,ImageDraw,ImageFont,ImageFilterimportrandom随机字母:defrndChar():returnchr(random。randint(65,90))随机颜色1:defrndColor():return(random。randint(64,255),random。randint(64,255),random。randint(64,255))随机颜色2:defrndColor2():return(random。randint(32,127),random。randint(32,127),random。randint(32,127))240x60:width606height606imageImage。new(RGB,(width,height),(255,255,255))创建Font对象:fontImageFont。truetype(usrsharefontswpsofficesimhei。ttf,60)创建Draw对象:drawImageDraw。Draw(image)填充每个像素:forxinrange(width):foryinrange(height):draw。point((x,y),fillrndColor())输出文字:fortinrange(6):draw。text((60t10,150),rndChar(),fontfont,fillrndColor2())模糊:imageimage。filter(ImageFilter。BLUR)image。save(code。jpg,jpeg)
  6、SimpleCV
  SimpleCV是一个用于构建计算机视觉应用程序的开源框架。使用它,可以访问高性能的计算机视觉库,如OpenCV,而不必首先了解位深度、文件格式、颜色空间、缓冲区管理、特征值或矩阵等术语。但其对于Python3的支持很差很差,在Python3。7中使用如下代码:fromSimpleCVimportImage,Color,DisplayloadanimagefromimgurimgImage(http:i。imgur。comlfAeZ4n。png)useakeypointdetectortofindareasofinterestfeatsimg。findKeypoints()drawthelistofkeypointsfeats。draw(colorColor。RED)showtheresultingimage。img。show()applythestuffwefoundtotheimage。outputimg。applyLayers()savetheresults。output。save(juniperfeats。png)
  会报如下错误,因此不建议在Python3中使用:SyntaxError:Missingparenthesesincalltoprint。Didyoumeanprint(unittest)?7、Mahotas
  Mahotas是一个快速计算机视觉算法库,其构建在Numpy之上,目前拥有超过100种图像处理和计算机视觉功能,并在不断增长。
  使用Mahotas加载图像,并对像素进行操作:importnumpyasnpimportmahotasimportmahotas。demosfrommahotas。thresholdingimportsoftthresholdfrommatplotlibimportpyplotaspltfromosimportpathfmahotas。demos。load(lena,asgreyTrue)ff〔128:,128:〕plt。gray()Showthedata:print(Fractionofzerosinoriginalimage:{0}。format(np。mean(f0)))plt。imshow(f)plt。show()
  8、Ilastik
  Ilastik能够给用户提供良好的基于机器学习的生物信息图像分析服务,利用机器学习算法,轻松地分割,分类,跟踪和计数细胞或其他实验数据。大多数操作都是交互式的,并不需要机器学习专业知识。9、Scikitlearn
  Scikitlearn是针对Python编程语言的免费软件机器学习库。它具有各种分类,回归和聚类算法,包括支持向量机,随机森林,梯度提升,k均值和DBSCAN等多种机器学习算法。
  使用Scikitlearn实现KMeans算法:importtimeimportnumpyasnpimportmatplotlib。pyplotaspltfromsklearn。clusterimportMiniBatchKMeans,KMeansfromsklearn。metrics。pairwiseimportpairwisedistancesargminfromsklearn。datasetsimportmakeblobsGeneratesampledatanp。random。seed(0)batchsize45centers〔〔1,1〕,〔1,1〕,〔1,1〕〕nclusterslen(centers)X,labelstruemakeblobs(nsamples3000,centerscenters,clusterstd0。7)ComputeclusteringwithMeanskmeansKMeans(initkmeans,nclusters3,ninit10)t0time。time()kmeans。fit(X)tbatchtime。time()t0ComputeclusteringwithMiniBatchKMeansmbkMiniBatchKMeans(initkmeans,nclusters3,batchsizebatchsize,ninit10,maxnoimprovement10,verbose0)t0time。time()mbk。fit(X)tminibatchtime。time()t0Plotresultfigplt。figure(figsize(8,3))fig。subplotsadjust(left0。02,right0。98,bottom0。05,top0。9)colors〔4EACC5,FF9C34,4E9A06〕WewanttohavethesamecolorsforthesameclusterfromtheMiniBatchKMeansandtheKMeansalgorithm。Letspairtheclustercentersperclosestone。kmeansclustercenterskmeans。clustercentersorderpairwisedistancesargmin(kmeans。clustercenters,mbk。clustercenters)mbkmeansclustercentersmbk。clustercenters〔order〕kmeanslabelspairwisedistancesargmin(X,kmeansclustercenters)mbkmeanslabelspairwisedistancesargmin(X,mbkmeansclustercenters)KMeansfork,colinzip(range(nclusters),colors):mymemberskmeanslabelskclustercenterkmeansclustercenters〔k〕plt。plot(X〔mymembers,0〕,X〔mymembers,1〕,w,markerfacecolorcol,marker。)plt。plot(clustercenter〔0〕,clustercenter〔1〕,o,markerfacecolorcol,markeredgecolork,markersize6)plt。title(KMeans)plt。xticks(())plt。yticks(())plt。show()
  10、SciPy
  SciPy库提供了许多用户友好和高效的数值计算,如数值积分、插值、优化、线性代数等。
  SciPy库定义了许多数学物理的特殊函数,包括椭圆函数、贝塞尔函数、伽马函数、贝塔函数、超几何函数、抛物线圆柱函数等等。fromscipyimportspecialimportmatplotlib。pyplotaspltimportnumpyasnpdefdrumheadheight(n,k,distance,angle,t):kthzerospecial。jnzeros(n,k)〔1〕returnnp。cos(t)np。cos(nangle)special。jn(n,distancekthzero)thetanp。r〔0:2np。pi:50j〕radiusnp。r〔0:1:50j〕xnp。array(〔rnp。cos(theta)forrinradius〕)ynp。array(〔rnp。sin(theta)forrinradius〕)znp。array(〔drumheadheight(1,1,r,theta,0。5)forrinradius〕)figplt。figure()axfig。addaxes(rect(0,0。05,0。95,0。95),projection3d)ax。plotsurface(x,y,z,rstride1,cstride1,cmapRdBur,vmin0。5,vmax0。5)ax。setxlabel(X)ax。setylabel(Y)ax。setxticks(np。arange(1,1。1,0。5))ax。setyticks(np。arange(1,1。1,0。5))ax。setzlabel(Z)plt。show()
  11、NLTK
  NLTK是构建Python程序以处理自然语言的库。它为50多个语料库和词汇资源(如WordNet)提供了易于使用的接口,以及一套用于分类、分词、词干、标记、解析和语义推理的文本处理库、工业级自然语言处理(NaturalLanguageProcessing,NLP)库的包装器。
  NLTK被称为awonderfultoolforteaching,andworkingin,computationallinguisticsusingPython。importnltkfromnltk。corpusimporttreebank首次使用需要下载nltk。download(punkt)nltk。download(averagedperceptrontagger)nltk。download(maxentnechunker)nltk。download(words)nltk。download(treebank)sentenceAteightoclockonThursdaymorningArthurdidntfeelverygood。Tokenizetokensnltk。wordtokenize(sentence)taggednltk。postag(tokens)Identifynamedentitiesentitiesnltk。chunk。nechunk(tagged)Displayaparsetreettreebank。parsedsents(wsj0001。mrg)〔0〕t。draw()
  12、spaCy
  spaCy是一个免费的开源库,用于Python中的高级NLP。它可以用于构建处理大量文本的应用程序;也可以用来构建信息提取或自然语言理解系统,或者对文本进行预处理以进行深度学习。importspacytexts〔Netincomewas9。4millioncomparedtotheprioryearof2。7million。,Revenueexceededtwelvebilliondollars,withalossof1b。,〕nlpspacy。load(encorewebsm)fordocinnlp。pipe(texts,disable〔tok2vec,tagger,parser,attributeruler,lemmatizer〕):Dosomethingwiththedochereprint(〔(ent。text,ent。label)forentindoc。ents〕)
  nlp。pipe生成Doc对象,因此我们可以对它们进行迭代并访问命名实体预测:〔(9。4million,MONEY),(theprioryear,DATE),(2。7million,MONEY)〕〔(twelvebilliondollars,MONEY),(1b,MONEY)〕
  13、LibROSA
  librosa是一个用于音乐和音频分析的Python库,它提供了创建音乐信息检索系统所必需的功能和函数。Beattrackingexampleimportlibrosa1。Getthefilepathtoanincludedaudioexamplefilenamelibrosa。example(nutcracker)2。LoadtheaudioasawaveformyStorethesamplingrateassry,srlibrosa。load(filename)3。Runthedefaultbeattrackertempo,beatframeslibrosa。beat。beattrack(yy,srsr)print(Estimatedtempo:{:。2f}beatsperminute。format(tempo))4。Converttheframeindicesofbeateventsintotimestampsbeattimeslibrosa。framestotime(beatframes,srsr)14、Pandas
  Pandas是一个快速、强大、灵活且易于使用的开源数据分析和操作工具,Pandas可以从各种文件格式比如CSV、JSON、SQL、MicrosoftExcel导入数据,可以对各种数据进行运算操作,比如归并、再成形、选择,还有数据清洗和数据加工特征。Pandas广泛应用在学术、金融、统计学等各个数据分析领域。importmatplotlib。pyplotaspltimportpandasaspdimportnumpyasnptspd。Series(np。random。randn(1000),indexpd。daterange(112000,periods1000))tsts。cumsum()dfpd。DataFrame(np。random。randn(1000,4),indexts。index,columnslist(ABCD))dfdf。cumsum()df。plot()plt。show()
  15、Matplotlib
  Matplotlib是Python的绘图库,它提供了一整套和matlab相似的命令API,可以生成出版质量级别的精美图形,Matplotlib使绘图变得非常简单,在易用性和性能间取得了优异的平衡。
  使用Matplotlib绘制多曲线图:plotmulticurve。pyimportnumpyasnpimportmatplotlib。pyplotaspltxnp。linspace(0。1,2np。pi,100)y1xy2np。square(x)y3np。log(x)y4np。sin(x)plt。plot(x,y1)plt。plot(x,y2)plt。plot(x,y3)plt。plot(x,y4)plt。show()
  16、Seaborn
  Seaborn是在Matplotlib的基础上进行了更高级的API封装的Python数据可视化库,从而使得作图更加容易,应该把Seaborn视为Matplotlib的补充,而不是替代物。importseabornassnsimportmatplotlib。pyplotaspltsns。settheme(styleticks)dfsns。loaddataset(penguins)sns。pairplot(df,huespecies)plt。show()
  17、Orange
  Orange是一个开源的数据挖掘和机器学习软件,提供了一系列的数据探索、可视化、预处理以及建模组件。Orange拥有漂亮直观的交互式用户界面,非常适合新手进行探索性数据分析和可视化展示;同时高级用户也可以将其作为Python的一个编程模块进行数据操作和组件开发。
  使用pip即可安装Orange,好评pipinstallorange3
  安装完成后,在命令行输入orangecanvas命令即可启动Orange图形界面:orangecanvas
  启动完成后,即可看到Orange图形界面,进行各种操作。
  18、PyBrain
  PyBrain是Python的模块化机器学习库。它的目标是为机器学习任务和各种预定义的环境提供灵活、易于使用且强大的算法来测试和比较算法。PyBrain是PythonBasedReinforcementLearning,ArtificialIntelligenceandNeuralNetworkLibrary的缩写。
  我们将利用一个简单的例子来展示PyBrain的用法,构建一个多层感知器(MultiLayerPerceptron,MLP)。
  首先,我们创建一个新的前馈网络对象:frompybrain。structureimportFeedForwardNetworknFeedForwardNetwork()
  接下来,构建输入、隐藏和输出层:frompybrain。structureimportLinearLayer,SigmoidLayerinLayerLinearLayer(2)hiddenLayerSigmoidLayer(3)outLayerLinearLayer(1)
  为了使用所构建的层,必须将它们添加到网络中:n。addInputModule(inLayer)n。addModule(hiddenLayer)n。addOutputModule(outLayer)
  可以添加多个输入和输出模块。为了向前计算和反向误差传播,网络必须知道哪些层是输入、哪些层是输出。
  这就需要明确确定它们应该如何连接。为此,我们使用最常见的连接类型,全连接层,由FullConnection类实现:frompybrain。structureimportFullConnectionintohiddenFullConnection(inLayer,hiddenLayer)hiddentooutFullConnection(hiddenLayer,outLayer)
  与层一样,我们必须明确地将它们添加到网络中:n。addConnection(intohidden)n。addConnection(hiddentoout)
  所有元素现在都已准备就位,最后,我们需要调用。sortModules()方法使MLP可用:n。sortModules()
  这个调用会执行一些内部初始化,这在使用网络之前是必要的。19、Milk
  MILK(MACHINELEARNINGTOOLKIT)是Python语言的机器学习工具包。它主要是包含许多分类器比如SVMS、KNN、随机森林以及决策树中使用监督分类法,它还可执行特征选择,可以形成不同的例如无监督学习、密切关系传播和由MILK支持的Kmeans聚类等分类系统。
  使用MILK训练一个分类器:importnumpyasnpimportmilkfeaturesnp。random。rand(100,10)labelsnp。zeros(100)features〔50:〕。5labels〔50:〕1learnermilk。defaultclassifier()modellearner。train(features,labels)Nowyoucanusethemodelonnewexamples:examplenp。random。rand(10)print(model。apply(example))example2np。random。rand(10)example2。5print(model。apply(example2))20、TensorFlow
  TensorFlow是一个端到端开源机器学习平台。它拥有一个全面而灵活的生态系统,一般可以将其分为TensorFlow1。x和TensorFlow2。x,TensorFlow1。x与TensorFlow2。x的主要区别在于TF1。x使用静态图而TF2。x使用EagerMode动态图。
  这里主要使用TensorFlow2。x作为示例,展示在TensorFlow2。x中构建卷积神经网络(ConvolutionalNeuralNetwork,CNN)。importtensorflowastffromtensorflow。kerasimportdatasets,layers,models数据加载(trainimages,trainlabels),(testimages,testlabels)datasets。cifar10。loaddata()数据预处理trainimages,testimagestrainimages255。0,testimages255。0模型构建modelmodels。Sequential()model。add(layers。Conv2D(32,(3,3),activationrelu,inputshape(32,32,3)))model。add(layers。MaxPooling2D((2,2)))model。add(layers。Conv2D(64,(3,3),activationrelu))model。add(layers。MaxPooling2D((2,2)))model。add(layers。Conv2D(64,(3,3),activationrelu))model。add(layers。Flatten())model。add(layers。Dense(64,activationrelu))model。add(layers。Dense(10))模型编译与训练model。compile(optimizeradam,losstf。keras。losses。SparseCategoricalCrossentropy(fromlogitsTrue),metrics〔accuracy〕)historymodel。fit(trainimages,trainlabels,epochs10,validationdata(testimages,testlabels))21、PyTorch
  PyTorch的前身是Torch,其底层和Torch框架一样,但是使用Python重新写了很多内容,不仅更加灵活,支持动态图,而且提供了Python接口。导入库importtorchfromtorchimportnnfromtorch。utils。dataimportDataLoaderfromtorchvisionimportdatasetsfromtorchvision。transformsimportToTensor,Lambda,Composeimportmatplotlib。pyplotasplt模型构建devicecudaiftorch。cuda。isavailable()elsecpuprint(Using{}device。format(device))DefinemodelclassNeuralNetwork(nn。Module):definit(self):super(NeuralNetwork,self)。init()self。flattennn。Flatten()self。linearrelustacknn。Sequential(nn。Linear(2828,512),nn。ReLU(),nn。Linear(512,512),nn。ReLU(),nn。Linear(512,10),nn。ReLU())defforward(self,x):xself。flatten(x)logitsself。linearrelustack(x)returnlogitsmodelNeuralNetwork()。to(device)损失函数和优化器lossfnnn。CrossEntropyLoss()optimizertorch。optim。SGD(model。parameters(),lr1e3)模型训练deftrain(dataloader,model,lossfn,optimizer):sizelen(dataloader。dataset)forbatch,(X,y)inenumerate(dataloader):X,yX。to(device),y。to(device)Computepredictionerrorpredmodel(X)losslossfn(pred,y)Backpropagationoptimizer。zerograd()loss。backward()optimizer。step()ifbatch1000:loss,currentloss。item(),batchlen(X)print(floss:{loss:7f}〔{current:5d}{size:5d}〕)22、Theano
  Theano是一个Python库,它允许定义、优化和有效地计算涉及多维数组的数学表达式,建在NumPy之上。
  在Theano中实现计算雅可比矩阵:importtheanoimporttheano。tensorasTxT。dvector(x)yx2J,updatestheano。scan(lambdai,y,x:T。grad(y〔i〕,x),sequencesT。arange(y。shape〔0〕),nonsequences〔y,x〕)ftheano。function(〔x〕,J,updatesupdates)f(〔4,4〕)23、Keras
  Keras是一个用Python编写的高级神经网络API,它能够以TensorFlow,CNTK,或者Theano作为后端运行。Keras的开发重点是支持快速的实验,能够以最小的时延把想法转换为实验结果。fromkeras。modelsimportSequentialfromkeras。layersimportDense模型构建modelSequential()model。add(Dense(units64,activationrelu,inputdim100))model。add(Dense(units10,activationsoftmax))模型编译与训练model。compile(losscategoricalcrossentropy,optimizersgd,metrics〔accuracy〕)model。fit(xtrain,ytrain,epochs5,batchsize32)24、Caffe
  在Caffe2官方网站上,这样说道:Caffe2现在是PyTorch的一部分。虽然这些api将继续工作,但鼓励使用PyTorchapi。25、MXNet
  MXNet是一款设计为效率和灵活性的深度学习框架。它允许混合符号编程和命令式编程,从而最大限度提高效率和生产力。
  使用MXNet构建手写数字识别模型:importmxnetasmxfrommxnetimportgluonfrommxnet。gluonimportnnfrommxnetimportautogradasagimportmxnet。ndarrayasF数据加载mnistmx。testutils。getmnist()batchsize100traindatamx。io。NDArrayIter(mnist〔traindata〕,mnist〔trainlabel〕,batchsize,shuffleTrue)valdatamx。io。NDArrayIter(mnist〔testdata〕,mnist〔testlabel〕,batchsize)CNN模型classNet(gluon。Block):definit(self,kwargs):super(Net,self)。init(kwargs)self。conv1nn。Conv2D(20,kernelsize(5,5))self。pool1nn。MaxPool2D(poolsize(2,2),strides(2,2))self。conv2nn。Conv2D(50,kernelsize(5,5))self。pool2nn。MaxPool2D(poolsize(2,2),strides(2,2))self。fc1nn。Dense(500)self。fc2nn。Dense(10)defforward(self,x):xself。pool1(F。tanh(self。conv1(x)))xself。pool2(F。tanh(self。conv2(x)))0meanscopyoversizefromcorrespondingdimension。1meansinfersizefromtherestofdimensions。xx。reshape((0,1))xF。tanh(self。fc1(x))xF。tanh(self。fc2(x))returnxnetNet()初始化与优化器定义setthecontextonGPUisavailableotherwiseCPUctx〔mx。gpu()ifmx。testutils。listgpus()elsemx。cpu()〕net。initialize(mx。init。Xavier(magnitude2。24),ctxctx)trainergluon。Trainer(net。collectparams(),sgd,{learningrate:0。03})模型训练UseAccuracyastheevaluationmetric。metricmx。metric。Accuracy()softmaxcrossentropylossgluon。loss。SoftmaxCrossEntropyLoss()foriinrange(epoch):Resetthetraindataiterator。traindata。reset()forbatchintraindata:datagluon。utils。splitandload(batch。data〔0〕,ctxlistctx,batchaxis0)labelgluon。utils。splitandload(batch。label〔0〕,ctxlistctx,batchaxis0)outputs〔〕Insidetrainingscopewithag。record():forx,yinzip(data,label):znet(x)Computessoftmaxcrossentropyloss。losssoftmaxcrossentropyloss(z,y)Backpropogatetheerrorforoneiteration。loss。backward()outputs。append(z)metric。update(label,outputs)trainer。step(batch。data〔0〕。shape〔0〕)Getstheevaluationresult。name,accmetric。get()Resetevaluationresulttoinitialstate。metric。reset()print(trainingaccatepochd:sf(i,name,acc))26、PaddlePaddle
  飞桨(PaddlePaddle)以百度多年的深度学习技术研究和业务应用为基础,集深度学习核心训练和推理框架、基础模型库、端到端开发套件、丰富的工具组件于一体。是中国首个自主研发、功能完备、开源开放的产业级深度学习平台。
  使用PaddlePaddle实现LeNtet5:导入需要的包importpaddleimportnumpyasnpfrompaddle。nnimportConv2D,MaxPool2D,Linear组网importpaddle。nn。functionalasF定义LeNet网络结构classLeNet(paddle。nn。Layer):definit(self,numclasses1):super(LeNet,self)。init()创建卷积和池化层创建第1个卷积层self。conv1Conv2D(inchannels1,outchannels6,kernelsize5)self。maxpool1MaxPool2D(kernelsize2,stride2)尺寸的逻辑:池化层未改变通道数;当前通道数为6创建第2个卷积层self。conv2Conv2D(inchannels6,outchannels16,kernelsize5)self。maxpool2MaxPool2D(kernelsize2,stride2)创建第3个卷积层self。conv3Conv2D(inchannels16,outchannels120,kernelsize4)尺寸的逻辑:输入层将数据拉平〔B,C,H,W〕〔B,CHW〕输入size是〔28,28〕,经过三次卷积和两次池化之后,CHW等于120self。fc1Linear(infeatures120,outfeatures64)创建全连接层,第一个全连接层的输出神经元个数为64,第二个全连接层输出神经元个数为分类标签的类别数self。fc2Linear(infeatures64,outfeaturesnumclasses)网络的前向计算过程defforward(self,x):xself。conv1(x)每个卷积层使用Sigmoid激活函数,后面跟着一个2x2的池化xF。sigmoid(x)xself。maxpool1(x)xF。sigmoid(x)xself。conv2(x)xself。maxpool2(x)xself。conv3(x)尺寸的逻辑:输入层将数据拉平〔B,C,H,W〕〔B,CHW〕xpaddle。reshape(x,〔x。shape〔0〕,1〕)xself。fc1(x)xF。sigmoid(x)xself。fc2(x)returnx27、CNTK
  CNTK(CognitiveToolkit)是一个深度学习工具包,通过有向图将神经网络描述为一系列计算步骤。在这个有向图中,叶节点表示输入值或网络参数,而其他节点表示对其输入的矩阵运算。CNTK可以轻松地实现和组合流行的模型类型,如CNN等。
  CNTK用网络描述语言(networkdescriptionlanguage,NDL)描述一个神经网络。简单的说,要描述输入的feature,输入的label,一些参数,参数和输入之间的计算关系,以及目标节点是什么。NDLNetworkBuilder〔runndlLRndlLR〔sampleandlabeldimensionsSDimdimensionLDim1featuresInput(SDim,1)labelsInput(LDim,1)parameterstolearnB0Parameter(4)W0Parameter(4,SDim)BParameter(LDim)WParameter(LDim,4)operationst0Times(W0,features)z0Plus(t0,B0)s0Sigmoid(z0)tTimes(W,s0)zPlus(t,B)sSigmoid(z)LRLogistic(labels,s)EPSquareError(labels,s)rootnodesFeatureNodes(features)LabelNodes(labels)CriteriaNodes(LR)EvalNodes(EP)OutputNodes(s,t,z,s0,W0)〕〕作者:盼小辉
  原文链接:https:blog。csdn。netLOVEmy134611articledetails118761423
投诉 评论 转载

为什么vivo总能做到一发布新机就能拿到现货?其实也没有那么绝对说,vivo手机在一发布新品就能够拿到货。其实和很多其他手机厂商也一样,为了保持手机的高热度,并且提高消费者对于新品发布会的热情,手机厂商都是不会在发布会之前……日本竟研究出了仿生机器人,目前已领先全球?而我国水平又如何?机器人在我们的印象中,基本都是一种动作僵硬,机械感十足的类人机械。但日本却研究出一种可以依靠肌肉和骨骼运动的机器人,并且这种机器人动作非常的顺滑。看起来与一般人没有什么区别。……建议收藏!27个Python机器学习深度学习库总结(含大量示人工智能指的是一系列使机器能够像人类一样处理信息的技术;机器学习是利用计算机编程从历史数据中学习,对新数据进行预测的过程;神经网络是基于生物大脑结构和特征的机器学习的计算机模型……网传一份腾讯员工收入证明,税后收入250万,月均20万,这个是真实的,目前互联网大厂的工资是挺高,普通公司一般13薪,互联网一般16薪。不过要求也高,985211起步,这里说明一下,不是所有腾讯员工收入高,二三线城市腾讯分公司就没那么高……Vue数据同步获取如果我们的业务逻辑需要请求多个数据,并且后一个请求依赖于前一个请求的结果,这时候我们更不能保证数据获取顺序,因此我们需要将异步请求改成同步,以保证业务逻辑的正确性。asy……警惕!支付宝正在偷偷监听你,30秒关闭支付宝监听终于把支付宝监听关闭了!不知道大家有没有发现,现在我们的支付宝中也会出现广告!细心的话会发现,自己浏览一些商品,不管是电器啊,化妆品啊,没过多久,打开支付宝就会发现……V神货币互联网每笔交易的成本不应超过5美分仍是现在的目标以太坊创始人VitalikButerin发推表示,加密货币的采用率很高,但稳定币的采用率也很高;许多企业在USDT中运营。当然,如果美元本身开始出现更多问题,这可能会改变。因为……C语言自学单层循环99乘法表用单层循环来输出99乘法表。理解循环控制变量的使用。includestdio。hincludestdlib。hvoidmain(){变量定义……女朋友月薪三千,想买iPhone13Pro,我不建议买,请问感谢邀请女朋友月薪三千,想买iPhone13Pro,我不建议买,请问怎么样和她沟通消费观这个问题?在我看来两个人三观一致,才能走的长远。我来说说我自己好了,上大学的时候谈……小米MIXfold2曝光,120HZ8。1寸170W充电,友小米MIX系列自从第一代开始,就惊艳了无数米粉用户,它也代表了小米技术最顶尖的水平。不过随着后面发布的更迭产品,小米MIX逐渐成为了小米走量的机型,同时也让很多人用户开始对MI……王者荣耀不卡手机(低价的)推荐一下?感谢您的阅读!现在,很多游戏厂商在进行游戏的体验或者经济发布的时候,都会使用王者荣耀作为检测或者是发布会的内容。为什么大家会选择王者荣耀作为手机的检测游戏呢?因为,……动力电池装车量4月环比下滑!比亚迪缩小与宁德时代差距,什么信疫情扰动供应链,新能源车企4月产销出现分化,动力电池装车量也出现环比下滑,宁德时代和比亚迪市占率差距显著缩小。5月11日,中国汽车动力电池产业创新联盟发布数据显示,宁德时……
动视暴雪股价创新低投资人担心微软收购交易打水漂突发!年报发布当晚,新能源车起火烧毁?千亿巨头回应全力配合5岁左右的小孩子戴助听器是做硬耳模好还是软耳模?马云医院会让天下没有难看的病吗如何快速搭建实用高转化的独立站?OPPOReno6宣发海报公布,主打高颜值汽车制造行业之巨一科技研究报告继威马EX5后,威马W6可以为用户带来易于驾驶的智能驾驶体验小米智能家居营销成功后,雷军又把眼光放在了剃须刀上,物美价廉IBM和AWS扩大云合作聚焦于软件战略郝敏如何看这波中美科技脱钩说特斯拉将用比亚迪电池,为啥不买比亚迪?哪吒营销搞吴XX,开除

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利