TensorFlow +OpenVINO 整合开发CR-A07-自编码器(AE)-神奇的ML瑞士刀_第1页
TensorFlow +OpenVINO 整合开发CR-A07-自编码器(AE)-神奇的ML瑞士刀_第2页
TensorFlow +OpenVINO 整合开发CR-A07-自编码器(AE)-神奇的ML瑞士刀_第3页
TensorFlow +OpenVINO 整合开发CR-A07-自编码器(AE)-神奇的ML瑞士刀_第4页
TensorFlow +OpenVINO 整合开发CR-A07-自编码器(AE)-神奇的ML瑞士刀_第5页
已阅读5页,还剩256页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

--神奇的ML瑞士刀_1.小而美的自编码器(AE)3.开始创作之旅4.组合成维深度学习模型5.设计出自编码器(AE)6.AE的过滤和降维效果7.范例实现-18.范例实现-29.优化模型:使用OpenVINO优化器10.测试模型:使用OpenVINO推论引擎小而美的自编码器小而美的自编码器·AE是一种小而美的ML模型,它的用途非常多,所以有ML瑞士刀」之称。例如·PawerSobel就称之为:深度学习瑞士刀。小而美的自编码器Sobel在其文章里写道:当谈到在一个充满机器学习问题的世界中生存时,有一种算法可能像瑞士刀一样通用,它是一种自动编码·AE本身就有很多种变化型式,而且它可以跟其他ML模型相结合,成为ML模型创新的核心要素之一。复习:分类器以逻辑回归分类器为例·例如,有一群鸭和鸡,我们收集了它们的两项特征是:头冠大小与脚蹼大小。如下图所示:复习:分类器以逻辑回归分类器为例ML建模的三个视角如何设计视角-1:数据矣系视角-3:视角-2:空间对应复习:分类器·从视角-1<数据矢联>来看这个Al(ML)模型:BCDEFGH1J1X空间Z空间(Sigmoid)2头冠大小脚蹼大小TZ3420(鸡)4310(鸡)5200(鸡)6021(鸭)7151(鸭)8261(鸭)9学习复习:分类器以逻辑回归分类器为例·从视角-2<空间对应>来看这个模型:以逻辑回归分类器为例·从视角-3<神经网络>来看这个模型:sigmoidx0x1开始学习按下<学习>,这ML模型就寻找出最棒的W&B来表达上述ABCEFGH1J1X空间Z空间(Sigmoid)2头冠大小脚蹼大小TZ3420(鸡)04310(鸡)05200(鸡)06021(鸭)7151(鸭)18261(鸭)19W学习1.32326078B·于是,寻找出了很棒的W&B了,让预测值(Z)非常接近于目标值(T)了,呈现出的理想的空间对应矢系:·其中,是由人类去思考而提供出目标值。所以,它属于监督式学习模式。--组合两个分类器组合两个分类器增添一个新分类器(取名为分类器-2),并且拿这个Z值来做为这新模型的输ABCDEFGHJ1Z空2头冠大小脚蹼大小TZ03420(鸡)4P1310(鸡)05200(鸡)06021(鸭)7151(鸭)18261(鸭)19W学习B组合两个分类器增添一个新分类器应;2)分类器-2的空间对应。·现在,就将两者连结起来,形成下述的整合对应矢系:如下图:组合两个分类器分类器-2ABCDEFGHIJK12ZY空间(Linear)3t0tl4001(鸡)5001(鸡)6001(鸡)710(鸭)8110(鸭)9110(鸭)学习组合两个分类器分类器-2展开学习·接下来,就可按下<学习>,这回归模型就寻找出Wr&Br组合两个分类器分类器-2学习完成了ABCDEFGHIJ12ZY空间(Linear)34001(鸡)5001(鸡)6001(鸡)710(鸭)8110(鸭)9110(鸭)1.0180421-1.018042学习组合两个分类器这种组合模型的特性组合成为ABCDEFGHABCDEFGH1Z空2头冠大小脚蹼大小TZ3420(鸡)04P310(鸡)05200(鸡)06021(鸭)7151(鸭)18261(鸭)19W-1.51709652学习B-0.11976039组合成深度学习模型·现在将两个模型融合为一,成为一个多层的神经网络;它也是一个分类器。如下图:BCDEFGHIJKLM1X空间Y空间(Lin2头冠大小脚蹼大小H34201(鸡)43101(鸡)52001(鸡)60210(鸭)71510(鸭)82610(鸭)9学习组合成深度学习模型ABCDEFGH1JKLM1Y空间(Lin2头冠大小脚蹼大小H34201(鸡)4P3101(鸡)52001(鸡)60210(鸭)71510(鸭)82610(鸭)9Bo学习·其中的Wh和Bh就是这隐藏层的权重和偏移植。·由于这是监督式学习模式,所以在Y空间里设定了两个目标值(也就是上图里的标签),如下图所示:X0yoH组合成深度学习模型从X空间对应到Y空间的目标点6组合成深度学习模型展开学习·请按下<学习>,这个多层模型就展开学习,寻找出最好组合成深度学习模型学习完成了BCDEFGH1JKLM1X空间H空间(SiY空间(Linear)2头冠大小脚蹼大小H34201(鸡)43101(鸡)0152001(鸡)0160210(鸭)715010(鸭)826010(鸭)9学习学习完成了·其空间对应矢系,如下图所示:X空间H空间组合成深度学习模型此模型的特性·在这个模型里,也是人们去思考而提供了目标值(即分类标签),所以是采监督式学习模式。设计出自编码器采取非监督式学习学习。BCDEFGHJKLM1X空间H空间(SiY空间(Linear)2头冠大小脚蹼大小H34201(鸡)43101(鸡)0152001(鸡)0160210(鸭)715010(鸭)826010(鸭)9-1.2704818学习-0.2542166标签),就称为非监督式学习了。模型又如何学习呢?专家们就想到一个方法,就是:拿输入值(X)x0H空间的对应矢系,如下:X空间AE:展开训练·按下<学习>,这个AE就展开学习,寻找出最好的Wh&Bh,以及Wo&Bo,并且输出其预测值(Y):ABCEFGHIJKLM1X空间H空间(Sigmoid)Y空间2头冠大小脚蹼大小H3424222431312152020206020222715152682626269学习·按下<学习>,这个AE就展开学习,寻找出最好的Wh&Bh,以及Wo&Bo,并且输出其预测值(Y):123456789头冠大小脚蹼大小Ht0=x0tl=x1y0F0F1F2FBF4F5432012210256432012210256学习学习M210266Wh&BhH·按下<学习>,这个AE就展开学习,寻找出最好的Wh&Bh,以及Wo&Bo,并且输出其预测值(Y):123456789X空间头冠大小脚蹼大小H0.94019843201221025622M210266AE:展开训练·按下<学习>,这个AE就展开学习,寻找出最好的Wh&Bh,以及Wo&Bo,并且输出其预测值(Y):ABCEFGHIJKLM1X空间H空间(Sigmoid)Y空间(Linear)2头冠大小脚蹼大小H3424222431312152020206020222715152682626269学习-0.099AE:展开训练123456789头冠大小脚蹼大小P0P1P2P3P4P5432012学习L222222M210266AE:展开训练123456789头冠大小脚蹼大小P0P1P2P3P4P5432012H0.94学习M210266H头冠大小脚蹼大小424222313121202020020222151526262626H延续上一小节的范例:延续上一小节的范例:ABCEFGHIJKLM1X空间Y空间2头冠大小脚蹼大小H3424243131520206020271515826269学习ABCEFGH1JKLM1X空间H空间(Y空间2头冠大小脚蹼大小H3424222431312152020206020222715152682626269学习ABCEGH1JKLM1X空间H空间(Sigmoid)Y空间2头冠大小脚蹼大小H3424222431312152020206020222715152682626269学习萃取出显着特征123456789P0P1P2P3P4P543201220256M210266<脚蹼大小>123456789头冠大小脚蹼大小HtO=x0tl=x1y0M210266X的显着特征x1充分还原了2头冠大!脚蹼大小Ht0=x0tl=x1y0y19非显着特征x0呈现群共性123456789P0P1P2P3P4P543201220256JH0.94432012210256y022M210266hhABCFGH1JKLM1X空间H空间(Y空间2头冠大小H3P04242224P13131215P22020206P30202227P41515268Z626269学习B-2.69511头冠大小脚蹼大小423120021526h头冠大小423120021526h头头冠大小脚蹼大小423120021526h的大小对于H值影响会因WH[1]值较大被放大。就凸显了x1特征(即显着特征)。显着特征的计算方法由Decoder的计算而得到输出资料Y。而且,这输出资料Y可以非常接近于输入资料X。并且Y与X极为类似。如下图所示:从2维降到1维潜藏層从3维降到2维酒藏層AE的降维效果AE的降维效果·AE(自编码器)是一种可以实现编码和解码的神经网路。将原始资料透过Encoder进行压缩(降维);使用Decoder还原成原始资料。0x²y2潜藏空間潜藏空間y2潜藏空間实现范例-1·将输入X资料经由Encoder可计算出H;并能将H资料经由Decoder的计算而得到输出资料Y。而且,这输出资料Y可以非常接近于输入资料X。·其主要功能是:将高维度的X资料,转换(压缩)为低维度的H。然后,可以再从低维度的H还原回来高维度的Y,并且Y与X极为类似。如下图所示:实现范例-1准备训练资料ABCEFGH1JK1X空间潜藏空间Y2H310104010156789学习设定T=X实现范例-1准备训练资料·按下<学习>,AE模型会逐步探索而寻找出适合的Wh、Bh、Wo和Bo值。如下图:ABCDEFGHIJK1X空间潜藏空间空间2H31010401-0.70156789-0.7学习-0.70X空间X空间A潜藏空间H12341010学习9实现范例-1|Y空间JK56780实现范例-1#vinoA0701model.pyimportnumpyasnpfromkeras.modelsimportSequential#Encoder的W&B初期值Encoderinit=[np,array([[0.1][-0.1]],dtype=np.float32),np.array([0.0],dtype=np.float32)]#Decoder的W&B初期值Decoderinit=[np,array([[0.1,-0.1]],dtype=np.float32)np.array([0.0,0.0],dtype=np.float32)]实现范例-1#vinoA0701model.pyimportkerasfromkeras.layersimportDense#输入值X=np,array([[1,0][0,1]],dtype=np.float32)Encoderinit=[np,array([[0.1][-0.i]],dtype=np.floaxs2),np.array([0.0],dtype=np.float32)]#Decoder的W&B初期值np.array([0.0,0.0],dtype=np.float32)]实现范例-1H层和Y层#定义Hidden层dh=Dense(1,activation='linear',inputdim=?#定义Ouput层d=Dense(2,activation='linear',inputdim=1)model.add(dh)model.add(d)pile(loss='mse',optimizer=SGD(lr=0.025),metrics=['accuracy'])##展开训练150回合model.fit(X,T,1,150,0,#训练完毕#-----------continued------------------实现范例-1#定义Hidden层dh=Dense(1,activation='linear',inputdd=Dense(2,activation='linear',iratdim=1)modelmodel.add(dh)model.add(d)pile(loss='mse',optimizer=SGD(lr=0.025),metrics=['accuracy'])#把Encoder和Decoder的W&B初期值,设定给这NN模型#展开训练150回合model.fit(X,T,1,150,0,shuffle=False)#训练完毕实现范例-1#定义Hidden层dh=Dense(1,activation='linear',inputdim=2)#定义Ouput层d=Dense(2,activation='linear',inputdim=1)model.add(dh)model.add(d)mode1.Compile(loss='mse',optimizer=SGD(Ir=0.025),hetrics=['accuracy'])#把Encoder和Decoder的W&B初期值,设定给这NN模型dh.setweights(Encoderinit)d.setweights(Decoderinit)#展开训练150回合model.fit(X,T,1,150,0,#训练完毕#-----------continued-----------------Wh初期值Wo初期值Bo初期值Bo初期值实现范例-1展开训练#定义Hidden层dh=Dense(1,activation='linear',inputdim=2)#定义Ouput层d=Dense(2,activation='linear',inputdim=1)model.add(d)pile(loss='mse',optimizer=SGD(lr=0.025metrics=['accuracy'])#把Encoder和Decoder的W&B初期值,设定给这NN模型dh.setweights(Encoderinit)d.setweights(Decoderinit)#展开训练150回合model#训练完毕continued-------continued-------不输出不输出不混洗不混洗撰写Python程序Continued-#从模型取出训练好Encader(即隐Bh=dh.getwBh=dh.getweights()[1]Wo=d.getweights()[U]Bo=d.getweights()[1]print("Wh:\n",np.round(Wh,2),"\n")取出Encodergrint("Y(预测值):\n",yy)print("wh:in",np,round(wh,2),yh=hh=np.round(yh,2)print("H值:\n",hh,"\n")print(print("Wo:\n",np.round(Wo,yoyy=np.round(yo,2)grint("Y(预测值):\n",yy)-")2),"\n")print("X:\n"",X,"\n")print(-.------")#从NN模型取出训练好Encoder(即隐藏层的W&B)Wh=dh.getweights()[0]Bh=dh.getweights()[1]Wo=d.getweights()[0]Bo=d.getweights()[1]print("Wh:\n",np.round(Wh,2),"\n")计算Hprint(print("Wo:\n",np.round(Wo,2),"\n")print("Bo:\n",np.round(Bo,2),"\n"yo=np.dot(yh,Wo)+Boyy=np.round(yo,2)grint("Y(预测值):\n",yy)-----continue--"\n")"\n")print(yo=np.dot(yh,Wo)+Boyy=np.round(yo,2)输出下述结果:X:Wo:Y(预测值):[[0.990.01][0.010.99]]0.7-0.7-0.0H-0.7-0.7-0.0ZH000实现范例-2--多层AE的神经网络。的AE模型。如下图:ABCDEFGHIJLMN0PQ1X(输入值)H1空间H2空间H3空间2香蕉草莓橘子hlh2hlhlh2t0tlt2320204Mike1171175John8218216John208208789Wh3WoBo学习成为3x2x1x2x3形式的神经网络实现范例-2展开学习ABCDEFGHIJKLMN0P1X(输入值)H1空间H2空间H3空间Y(预測值)2香蕉草莓橘子320920411721758218216208118789学习过滤&降维123456789ABDJohn香蕉182草莓2120橘子0718H1空间H2空间H3空间Y(预測值)学习123456789ABD香蕉草莓橘子H1空间H2空间H3空间Y(预測值)-1.864学习实现范例-2importnumpyasnpimportkerasfromkeras.optimizersfromkeras.modelsfromkerasimportimporttensorflowimportDense,Flatten,InputastfX=np,array([[10,20]#------------continued-------#-----.3x2x1x2x3NNmodel-----deftrain():globalXN=3$=4H1=2H2=1H3=2将X值转变为0~1Input)dh1=Dense(H1,activation='linear'))dh2=Dense(H2,activation='sigmoid',name="hresult")dh3=Dense(H3,activation='linear')d=Dense(O,activation='sigmoid',name="oresult")#--------------#在App那边需要再经由sigmoid()转换H1=2H2=1H3=20=3设定T=Xdh3=Dense(H3,activation='linear')d=Dense(O,activation='sigmoid',name="oresult")#--------------#在App那边需要再经由sigmoid()转换deftrain():globalXN=3$=4H1=2H2=1H3=2#正規化(Normalize)dx=X/10dt=dx.copy()#目标值T=X#定义Hidden层Inputlayer=Input(shape=(N,))dh1=Dense(H1,activation='linear')dh2=Dense(H2,activation='sigmoid',name="hresult"dh3=Dense(H3,actiyation='linear')d=Dense(O,activation='sigmoid',name="oresult")#在App那边需要再经由sigmoid()转换)各Layers-continued-#建立Encoder和Decoderx=#训练1000回合tf.io.writegraphfrozengraph,"C:/pb/","encoder.pb",astext=False)tf.io.writegraph(frozengraph,#-------------------#建立Encoder和Decoderx=model=Model(x,z)sgd=SGD(1r=0.15)'',#训练1000回合model.fit(dx,dt,1,10#-------Savedto*,pb--sess=K.getsession()sess.run(tf.localvariablesinitializer())frozengraph=tf.graphutil.convertvariablestoconstants(_tf.io.writegraph("C:/pb/"__xh1=dh1(x)h2=dh2(h1)h3=dh3(h2)z=d(h3)model=Model(x,z)sgd=SGD(1r=0.15)#-------Savedto*,pb--sess=K.getsession()sess.run(tf.localvariablesinitializer())frozengraph=tf.graphutil.convertvariablestoconstants(sess,tf.getdefaultgraph(),asgraphdef(),['hresult/BiasAdd'])_tf.io.writegraph(frozengraph,"C:/pb/","encoder.pb",astext=False)tf.io.writegraph(frozengraph,名稱encoder=Model(x,h2)decoder=Sequential()decoder,add(dh3)decoder.add(d)#输出print(np.round(X,2))print("\nH值:")Z=decoder.predict(H)zv=Z*10print("\nZ值:")print(np.round(zv))#-train()encoder=Model(x,h2)decoder=Sequential()decoder,add(dh3)decoder.add(d)p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论