欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

用Python生成會(huì)跳舞的美女

 更新時(shí)間:2022年01月18日 09:09:21   作者:Python王飽飽  
大家好,本篇文章主要講的是用Python生成會(huì)跳舞的美女,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下

導(dǎo)語(yǔ)

表妹心疼我,為了逗我開(kāi)心,教我用Python制作會(huì)跳舞的美女。作為新時(shí)代的活雷鋒,在這里分享給大家。

開(kāi)發(fā)工具

Python版本:3.6.4

相關(guān)模塊:

torch0.4.1模塊;
torchvision0.2.2模塊;
opencv-python模塊;
argparse模塊;
numpy模塊;
以及一些Python自帶的模塊。

環(huán)境搭建

安裝Python并添加到環(huán)境變量,pip安裝需要的相關(guān)模塊即可。

(PS:CUDA環(huán)境配置請(qǐng)自行Google教程。)

原理簡(jiǎn)介

這里我們利用VAE的原理來(lái)生成會(huì)跳舞的小姐姐唄。先簡(jiǎn)單介紹一下理論知識(shí),要說(shuō)VAE,就得先談?wù)勛詣?dòng)編碼器,自動(dòng)編碼器最開(kāi)始用于數(shù)據(jù)壓縮,其原理圖十分簡(jiǎn)單直觀:

圖片

在模型訓(xùn)練時(shí),輸入圖片首先通過(guò)一個(gè)編碼器(現(xiàn)在當(dāng)然是神經(jīng)網(wǎng)絡(luò)啦)將輸入數(shù)據(jù)降維到一個(gè)code,接著將code輸入到解碼器(當(dāng)然還是神經(jīng)網(wǎng)絡(luò)啦)生成一個(gè)與輸入相同大小的圖片,網(wǎng)絡(luò)的優(yōu)化目標(biāo)就是使得輸入編碼器的圖片與解碼器輸出的圖片盡可能相似。 當(dāng)模型訓(xùn)練完之后,我們就可以拿出這個(gè)解碼器,隨機(jī)傳入一些code作為它的輸入,來(lái)生成一些差不多的圖片。但是這種做法存在一個(gè)問(wèn)題,就是編碼器生成的code包含了原圖信息,因此,我們就無(wú)法自己構(gòu)造一些隨機(jī)的code來(lái)作為解碼器輸入從而生成任意圖片(必須是現(xiàn)有圖片過(guò)了編碼器之后生成的code作為輸入)。為了解決這個(gè)問(wèn)題,VAE就誕生啦~VAE的全稱(chēng)是:

Variational Autoencoder 即變分自編碼器
說(shuō)起來(lái),它的原理圖也十分簡(jiǎn)單:

圖片

與自編碼器唯一不同就是在訓(xùn)練過(guò)程中對(duì)code也進(jìn)行了約束,使得code滿(mǎn)足某種分布(譬如正態(tài)分布)。這樣的話(huà),模型訓(xùn)練完之后,我們只需要隨機(jī)生成一個(gè)滿(mǎn)足該分布的code,就可以拿來(lái)作為解碼器的輸入,從而生成任意圖片啦~ 一般地,我們用均方損失函數(shù)保證原圖和生成圖相似,用KL損失函數(shù)來(lái)保證code滿(mǎn)足我們所要求的分布。均方損失大家肯定知道,KL散度的定義這里我也不想過(guò)多地去介紹,貼下維基百科上定義的公式吧:

圖片

P和Q是在同一個(gè)概率空間上定義的離散概率分布。 同時(shí),為了方便計(jì)算KL散度,VAE引入了一個(gè)trick,叫:

reparameterization

以正態(tài)分布為例子,就是現(xiàn)在不直接預(yù)測(cè)code了,而是預(yù)測(cè)code的均值和方差,有了均值向量和方差向量,恢復(fù)code是很方便的(用標(biāo)準(zhǔn)正態(tài)分布乘以方差再加個(gè)均值就行了)。

再回過(guò)頭來(lái),我們現(xiàn)在要用VAE來(lái)生成會(huì)跳舞的小姐姐,無(wú)非就是先找到一個(gè)訓(xùn)練數(shù)據(jù)集,這里我找了個(gè)Youtube上的視頻作為數(shù)據(jù)集:

https://www.youtube.com/watch?v=NdSqAAT28v0

然后根據(jù)VAE的原理構(gòu)造一個(gè)編碼和解碼網(wǎng)絡(luò),用兩個(gè)損失函數(shù)作為約束訓(xùn)練網(wǎng)絡(luò)就行啦。代碼就不一個(gè)個(gè)貼了,寫(xiě)起來(lái)很簡(jiǎn)單的,貼上來(lái)倒感覺(jué)有點(diǎn)麻煩,有需要的直接在公眾號(hào)后臺(tái)回復(fù)“dancenet”即可獲取。簡(jiǎn)單說(shuō)下代碼使用方式吧,模型訓(xùn)練運(yùn)行train.py文件即可,命令格式為:

python train.py --videopath xxx.mp4
模型測(cè)試運(yùn)行demo.py文件即可,命令格式為:
python demo.py --mode random/fromtrain --checkpointspath xxx.pth --outputpath xxx.avi
這里模式的含義是code隨機(jī)生成/從訓(xùn)練集中提取一些圖片的code作為輸入。

效果展示

隨機(jī)生成code模式作為輸入:

圖片

數(shù)據(jù)集中挑選圖片過(guò)編碼器獲得code作為輸入:

圖片


好了,我的分享到此結(jié)束了。

總結(jié)

到此這篇關(guān)于用Python生成會(huì)跳舞的美女的文章就介紹到這了,更多相關(guān)Python美女內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Django 淺談根據(jù)配置生成SQL語(yǔ)句的問(wèn)題

    Django 淺談根據(jù)配置生成SQL語(yǔ)句的問(wèn)題

    今天小編就為大家分享一篇Django 淺談根據(jù)配置生成SQL語(yǔ)句的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • python中的for循環(huán)

    python中的for循環(huán)

    Python for循環(huán)可以遍歷任何序列的項(xiàng)目,如一個(gè)列表或者一個(gè)字符串。這篇文章主要介紹了python的for循環(huán),需要的朋友可以參考下
    2018-09-09
  • python 公共方法匯總解析

    python 公共方法匯總解析

    這篇文章主要介紹了python 公共方法匯總解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • python下讀取公私鑰做加解密實(shí)例詳解

    python下讀取公私鑰做加解密實(shí)例詳解

    這篇文章主要介紹了python下讀取公私鑰做加解密實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Python pickle類(lèi)庫(kù)介紹(對(duì)象序列化和反序列化)

    Python pickle類(lèi)庫(kù)介紹(對(duì)象序列化和反序列化)

    這篇文章主要介紹了Python pickle類(lèi)庫(kù)介紹(對(duì)象序列化和反序列化),本文講解了pickle庫(kù)的作用、pickle的運(yùn)行過(guò)程、使用實(shí)例、修改picklable類(lèi)型的默認(rèn)行為等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • Python使用迭代器打印螺旋矩陣的思路及代碼示例

    Python使用迭代器打印螺旋矩陣的思路及代碼示例

    用Python的itertools模塊來(lái)創(chuàng)建具有迭代功能的函數(shù)十分具有技巧性,這里我們就來(lái)看一下借助itertools模塊、Python使用迭代器打印螺旋矩陣的思路及代碼示例
    2016-07-07
  • 批量將ppt轉(zhuǎn)換為pdf的Python代碼 只要27行!

    批量將ppt轉(zhuǎn)換為pdf的Python代碼 只要27行!

    這篇文章主要為大家詳細(xì)介紹了批量將ppt轉(zhuǎn)換為pdf的Python代碼,只要27行,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • pandas DataFrame 數(shù)據(jù)選取,修改,切片的實(shí)現(xiàn)

    pandas DataFrame 數(shù)據(jù)選取,修改,切片的實(shí)現(xiàn)

    這篇文章主要介紹了pandas DataFrame 數(shù)據(jù)選取,修改,切片的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 如何基于pythonnet調(diào)用halcon腳本

    如何基于pythonnet調(diào)用halcon腳本

    這篇文章主要介紹了如何基于pythonnet調(diào)用halcon腳本,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • python文件操作的基礎(chǔ)詳細(xì)講解(write、read、readlines、readline)

    python文件操作的基礎(chǔ)詳細(xì)講解(write、read、readlines、readline)

    使用python來(lái)讀寫(xiě)文件是非常簡(jiǎn)單的操作,下面這篇文章主要給大家介紹了關(guān)于python文件操作的基礎(chǔ)詳細(xì)資料,包括write、read、readlines、readline等相關(guān)操作,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04

最新評(píng)論