AI建模師-素養(yǎng)手冊(cè)(12)-從作品中學(xué)習(xí)專家創(chuàng)作-GAN模型_第1頁
AI建模師-素養(yǎng)手冊(cè)(12)-從作品中學(xué)習(xí)專家創(chuàng)作-GAN模型_第2頁
AI建模師-素養(yǎng)手冊(cè)(12)-從作品中學(xué)習(xí)專家創(chuàng)作-GAN模型_第3頁
AI建模師-素養(yǎng)手冊(cè)(12)-從作品中學(xué)習(xí)專家創(chuàng)作-GAN模型_第4頁
AI建模師-素養(yǎng)手冊(cè)(12)-從作品中學(xué)習(xí)專家創(chuàng)作-GAN模型_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

從作品中學(xué)習(xí)專家創(chuàng)作1AI建模師手冊(cè)<第12集>從作品中學(xué)習(xí)專家創(chuàng)作By高煥堂/AI建模師俱樂部會(huì)長(zhǎng)12.1前言12.2從作品中學(xué)習(xí)專家創(chuàng)作12.5GAN從人類畫作中學(xué)習(xí)繪畫2***本文摘自高煥堂的下列書籍******以及北京【電子世界雜志】連載專欄***IT算機(jī)只能向人類的編程(作品)學(xué)習(xí)到<邏輯性智能>。今天,像繪畫、音樂、文學(xué)作品等,人類逐漸知道了如何把豐富的直AI從人類作品(如語句、小說詩篇等)學(xué)習(xí)捕捉創(chuàng)作者的<非邏輯性智人類天生都有一項(xiàng)能力,就是:人人皆有的觀察周遭世界的<非邏輯。AI的特長(zhǎng)就是使用更接近人類的<非邏輯化>方式去識(shí)別周遭的事從作品中學(xué)習(xí)專家創(chuàng)作3法邏輯化的)的復(fù)雜現(xiàn)象,例如新冠AI近人類的<非邏輯化>方式去認(rèn)識(shí)周遭的事物,包括人類看不到的(也因而無法邏輯化的)的復(fù)雜現(xiàn)象。所以AI從莎士深的行業(yè)專家,其直覺性智慧愈豐富,表與人類專12.2從作品中學(xué)習(xí)專家創(chuàng)作:AI學(xué)習(xí)。還是關(guān)于<巧媳婦>的資料,還是關(guān)于<飯>的資料呢?假設(shè)這只是一般家庭的廚房,沒有任何食譜。只有鍋爐、水、米、飯這樣思考,您就能輕易掌握<AI生成>的真諦了。在AIGC潮流下,4的答案是:關(guān)于<飯>的資料。因?yàn)?lt;飯>是專家(如巧媳婦)的作12.3GAN模型的學(xué)習(xí)模式典型的GAN架構(gòu)GAN模型里,包含了兩個(gè)小模型:判別器與生成器。其中,判別器如同<老師>,而生成器則如同<學(xué)生>。從作品中學(xué)習(xí)專家創(chuàng)作5works6GAN個(gè)重要角色:生成器GAN的學(xué)習(xí)模式:教學(xué)相長(zhǎng)學(xué)生和老師,兩者都是從零開始,共同成長(zhǎng)。從作品中學(xué)習(xí)專家創(chuàng)作7雖然老師不會(huì)畫,但它會(huì)拿學(xué)生作品來與龍貓漫畫書來做特征對(duì)比。如果學(xué)生作品沒有龍貓漫畫的重要特征,就會(huì)感覺畫得不像。8老師發(fā)現(xiàn)了學(xué)生作品里沒有龍貓漫畫的重要特征:胡須。老師就要求學(xué)生加以改善。從作品中學(xué)習(xí)專家創(chuàng)作9老師又發(fā)現(xiàn)學(xué)生作品里少了龍貓漫畫的另一項(xiàng)特征:娃娃哭時(shí)嘴巴張老師就要求學(xué)生加以改進(jìn)。兩者互相較量,又協(xié)同創(chuàng)新、教學(xué)相長(zhǎng)。像上述的協(xié)同創(chuàng)作機(jī)制,特別稱為生成對(duì)抗網(wǎng)絡(luò)(Generative從作品中學(xué)習(xí)專家創(chuàng)作11例如下圖里,左圖是鑒賞者所握有的原圖,而右圖則是創(chuàng)作者所生成(數(shù)據(jù)源:/uai2017/media/tutorials/shakir.pdf)GAN是一種能夠生成新數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)。你可以輸入一點(diǎn)隨機(jī)噪音GAN網(wǎng)絡(luò)模型,是由生成器和判別器兩部分組成,以非監(jiān)督式機(jī)器GAN模型最后會(huì)收斂并生成自然外觀逼真的圖像。我們使用真畫作(假品)。為了讓您更容易理解上述的共同成長(zhǎng)過程,于此特別拿<射飛鏢>的12.4以GAN學(xué)習(xí)<射飛鏢>為例在上一節(jié)里,您已經(jīng)熟悉了GAN模型的兩個(gè)主要角色是:判別器r<射飛鏢>的范來說明之。閱讀完本節(jié),您將很熟悉如何訓(xùn)練GAN模型,并且進(jìn)12.4.1AI從作品中學(xué)習(xí)<射飛鏢>教練的智慧從作品中學(xué)習(xí)專家創(chuàng)作13此時(shí),兩人都還沒有學(xué)習(xí)過射飛鏢的技能。于是,就請(qǐng)一位教練(即專室,回家去了。請(qǐng)您想一想,此時(shí)這位格格學(xué)習(xí)射飛鏢呢?由于這位教練已經(jīng)離去了,所以他不能親自指教格(2)我們也無法藉由設(shè)定T(目標(biāo)值)的方式,把他的專家(射飛鏢)智從作品中學(xué)習(xí)專家創(chuàng)作1512.4.2以Pytorch實(shí)現(xiàn)<射飛鏢>的GAN模型##px07_03.pyimportnumpyasnpporttorchorchnnasnnimportmatplotlib.pyplotaspltdefsigmoid(y):return1/(1+np.exp(-y))NoiseSize=16noise=torch.rand(NoiseSize)*15.0#準(zhǔn)備真品(教練投鏢)real_data=np.array([[0,0],[-0.2,-0.3],[0.2,-0.3]]).flatten() real_X=torch.tensor(real_data).float()ones#定義D(丫環(huán))模型lerselfinitrnnLinearLineardefforward(self,X):H=torch.relu(self.layer1(X))Y=self.layer2(H)turntorchsigmoidY#定義G(格格)模型superGeneratorselfinit__()selflayer=nn.Linear(NoiseSize,32)Lineardefforward(self,N):Y=torch.relu(self.layer1(N))returnselflayer2(Y)inatorG=Generator()#損失函數(shù)soptimizer_d=torch.optim.Adam(D.parameters(),lr=0.0002)optimizer_g=torch.optim.Adam(G.parameters(),lr=0.0002)TZ=D(X)從作品中學(xué)習(xí)專家創(chuàng)作從作品中學(xué)習(xí)專家創(chuàng)作17optimizer_d.zero_grad()ssbackwardretaingraphTrueoptimizer_d.step()deftrain_G(N,T):Y=G(N)new_X=YZ=D(new_X)optimizer_g.zero_grad()optimizer_g.step()deftrain(epochs,steps):forepinrange(epochs):new_X=G(N)welifif(ep%steps==0):ounddlossnpgloss", ax=np.reshape(real_data,(3,2))#把隨機(jī)構(gòu)想(噪音)給格格,生成新品(假品)new_X=G(N)fx=new_X.detach().numpy()fx=np.reshape(fx,(3,2))ltylimpltscatteraxax1],c='red')pltscatterfx[:,0],fx[:,1],c='blue')tshow#ENDe從作品中學(xué)習(xí)專家創(chuàng)作19defforwardselfNein20train(50,10)從作品中學(xué)習(xí)專家創(chuàng)作21train(1000,200)22***************************************從作品中學(xué)習(xí)專家創(chuàng)作2312.5GAN從人類畫作中學(xué)習(xí)繪畫24#px07_05.pyimportnumpyasnpporttorchorchnnasnnfromtorchvisionimporttransformsttorchvisionutilsasvutilsimportmatplotlib.pyplotaspltimporttorch.optimasoptimfromPILimportImageimportosimportglobtorch.manual_seed(1)noise_size=100#生成噪音從從作品中學(xué)習(xí)專家創(chuàng)作25returntorch.randn(1,noise_size)transform=transforms.Compose([transformsResize,128)),transforms.ToTensor(),transforms.Normalize([0.5,0.5,0.5],0.5,0.5,0.5])])#實(shí)際讀取*.png圖片forimageNameinglob.glob('c:/oopc/animal_zebras_data/train/class0/*.png'):image=Image.open(imageName).convert('RGB')image=transform(image)face_images.append(image)#實(shí)際讀取*.jpg圖片zebraimages]forimageNameinglob.glob('c:/oopc/animal_zebras_data/train/class1/*.jpg'):image=Image.open(imageName).convert('RGB')image=transform(image)zebra_images.append(image)cond_0=torch.zeros(1,1).long()ngltorchones226classname=m.__class__.__name__ifclassname.find('Conv')!=-1:torch.nn.init.normal_(m.weight,0.0,0.02)elifclassname.find('BatchNorm')!=-1:torch.nn.init.normal_(m.weight,1.0,0.02)torch.nn.init.zeros_(m.bias)lerselfinitself.cond=nn.Sequential(nnLinear)self.model=nn.Sequential(nn.Conv2d(6,64,4,2,1,bias=False),nnLeakyReLU2,inplace=True),nn.Conv2d(64,128,4,3,2,bias=False),nn.BatchNorm2d(128,momentum=0.1,eps=0.8),nnLeakyReLU2,inplace=True),nn.Conv2d(128,256,4,3,2,bias=False),nn.BatchNorm2d(256,momentum=0.1,eps=0.8),nnLeakyReLU2,inplace=True),nn.Conv2d(256,512,4,3,2,bias=False),nn.BatchNorm2d(512,momentum=0.1,eps=0.8),從從作品中學(xué)習(xí)專家創(chuàng)作27nnLeakyReLU2,inplace=True),nn.Sigmoid())defforward(self,x):image,cond=xc=self.cond(cond)c=c.view(-1,3,128,128)concat=torch.cat((image,c),dim=1)z=self.model(concat)superGeneratorselfinit__()self.cond=nn.Sequential(self.noise=nn.Sequential(nn.Linear(noise_size,4*4*512),nnLeakyReLU2,inplace=True))self.model=nn.Sequential(nn.ConvTranspose2d(513,512,4,2,1,bias=False),nn.BatchNorm2d(512,momentum=0.1,eps=0.8),nn.ConvTranspose2d(512,256,4,2,1,bias=False),228nn.BatchNorm2d(256,momentum=0.1,eps=0.8),nn.ConvTranspose2d(256,128,4,2,1,bias=False),nn.BatchNorm2d(128,momentum=0.1,eps=0.8),nn.ConvTranspose2d(128,64,4,2,1,bias=False),nn.BatchNorm2d(64,momentum=0.1,eps=0.8),nn.ConvTranspose2d(64,3,4,2,1,bias=False),defforward(self,x):noise,cond=xn=self.noise(noise)n=n.view(-1,512,4,4)c=self.cond(cond)c=c.view(-1,1,4,4)ncattorchcatncdimimage=self.model(concat)inatorG=Generator()optimizer_g=optim.Adam(G.parameters(),lr=0.0005,betas=(0.5,0.999))optimizer_d=optim.Adam(D.parameters(),lr=0.0005,betas=(0.5,0.999))從從作品中學(xué)習(xí)專家創(chuàng)作29TZ=D(XC)optimizer_d.zero_grad()ssbackward

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論