用Tensorflow2.0實現的多個GAN模型,有代碼

2019-10-11     AI公園
作者:Tim Sainburg
編譯:ronghuaiyang

導讀

這是一個在Tensorflow 2中實現許多生成模型的小項目。層和優化器使用Keras。這些模型是為兩個數據集實現的:fashion MNIST和NSYNTH。

代碼倉庫:https://github.com/timsainb/tensorflow2-generative-models/#generative-models-in-tensorflow-2

這是一個在Tensorflow 2中實現許多生成模型的小項目。層和優化器使用Keras。這些模型是為兩個數據集實現的:fashion MNIST和NSYNTH。編寫網絡的目標是在保持可讀性的同時儘可能簡單和一致。因為每個網絡都包含在notebook中,所以應該可以很容易地在colab會話中運行它們。

包括的模型有:

Autoencoder (AE)

一個簡單的編碼器網絡

Variational Autoencoder (VAE)

原始的可變自動編碼器網絡,使用了tensorflow_probability。

Generative Adversarial Network (GAN)

GANs是神經網絡的一種形式,其中兩個子網絡(編碼器和解碼器)被使用目的相反的損失函數進行訓練:一個編碼器被訓練用於生成與真實數據不可分辨的數據,另一個解碼器被訓練用於區分數據和生成的數據。

Wasserstein GAN with Gradient Penalty (WGAN-GP)

WGAN-GP是在原有損失函數的基礎上改進的一種GAN,用於提高訓練的穩定性。

VAE-GAN

VAE-GAN結合VAE和GAN對生成器中潛在的數據表示形式進行自動編碼,以改進自動編碼器中使用的基於每個像素的誤差函數。

Generative adversarial interpolative autoencoder (GAIA)

GAIA是一種通過對真實數據的潛在空間投影中的插值進行反向訓練來學習凸潛表示的自編碼器。

其他的內容:

Seq2Seq Autoencoder (without attention)

Seq2Seq模型使用遞歸神經網絡cell(如LSTMs)來更好地捕捉數據中的序列信息。該實現使用卷積層作為LSTM單元的輸入,並使用一個雙向LSTM層。

Spectrogramming, Mel Scaling, MFCCs, and Inversion in Tensorflow

Tensorflow有一個信號處理包,它允許我們將波形生成聲譜圖作為數據集疊代器的一部分,而不是預先生成另外一個聲譜圖數據集。這個notebook 可以作為如何做到這一點的參考。聲譜圖反演採用Griffin-Lim算法。

Iterator for NSynth

NSYNTH數據集是一組以波形形式保存的數千個音符。為了將這些作為聲譜圖輸入Seq2Seq模型,我編寫了一個小的dataset類,它在tensorflow中轉換為聲譜圖(使用聲譜圖notebook中的代碼)。

英文原文:https://github.com/timsainb/tensorflow2-generative-models/#generative-models-in-tensorflow-2

請長按或掃描二維碼關注本公眾號

文章來源: https://twgreatdaily.com/zh-sg/RHRfvm0BMH2_cNUgnUtI.html