timsainb/tensorflow2-generative-models
timsainb/tensorflow2-generative-models has 991 GitHub stars and 183 forks. Star changes are not measured yet. Last checked 2026-11-14 08:28 UTC. Last push 2021-07-18.
측정된 스타 증가
- in 24h
- 기록 수집 중
- in 7 days
- 기록 수집 중
- in 15 days
- 기록 수집 중
- in 1 month
- 기록 수집 중
서로 겹치는 기간의 순증가량이며 일별 합계가 아닙니다. 측정값이 없으면 비워 둡니다. 스타는 관심도를 나타내며 품질을 보장하지 않습니다.
소개
Implementations of a number of generative models in Tensorflow 2. GAN, VAE, Seq2Seq, VAEGAN, GAIA, Spectrogram Inversion. Everything is self contained in a jupyter notebook for easy export to colab.
머신러닝README.md
OriginalGenerative models in Tensorflow 2
Tim Sainburg (PhD Candidate, UCSD, Gentner Laboratory)
This is a small project to implement a number of generative models in Tensorflow 2. Layers and optimizers use Keras. The models are implemented for two datasets: fashion MNIST, and NSYNTH. Networks were written with the goal of being as simple and consistent as possible while still being readable. Because each network is self contained within the notebook, they should be easily run in a colab session.
Included models:
Autoencoder (AE) 
A simple autoencoder network.

Variational Autoencoder (VAE) (article) 
The original variational autoencoder network, using tensorflow_probability

Generative Adversarial Network (GAN) (article) 
GANs are a form of neural network in which two sub-networks (the encoder and decoder) are trained on opposing loss functions: an encoder that is trained to produce data which is indiscernable from the true data, and a decoder that is trained to discriminate between the data and generated data.

Wasserstein GAN with Gradient Penalty (WGAN-GP) (article) 
WGAN-GP is a GAN that improves over the original loss function to improve training stability.

VAE-GAN (article) 
VAE-GAN combines the VAE and GAN to autoencode over a latent representation of data in the generator to improve over the pixelwise error function used in autoencoders.

Generative adversarial interpolative autoencoder (GAIA) (article) 
GAIA is an autoencoder trained to learn convex latent representations by adversarially training on interpolations in latent space projections of real data. This is an experimental modification of the original algorithm. For the original algorithm, see here: https://github.com/timsainb/gaia

Other Notebooks:
Seq2Seq Autoencoder (without attention) (Fasion MNIST:
| NSYNTH:
)
Seq2Seq models use recurrent neural network cells (like LSTMs) to better capture sequential organization in data. This implementation uses Convolutional Layers as input to the LSTM cells, and a single Bidirectional LSTM layer.

Spectrogramming, Mel Scaling, MFCCs, and Inversion in Tensorflow 
Tensorflow has a signal processing package that allows us to generate spectrograms from waveforms as part of our dataset iterator, rather than pregenerating a second spectrogram dataset. This notebook can serve as a reference for how this is done. Spectrogram inversion is done using the Griffin-Lim algorithm.

Iterator for NSynth 
The NSYNTH dataset is a set of thousands of musical notes saved as waveforms. To input these into a Seq2Seq model as spectrograms, I wrote a small dataset class that converts to spectrogram in tensorflow (using the code from the spectrogramming notebook).

관련 프로젝트 살펴보기
tensorflow/tensorflow
모두를 위한 오픈소스 머신러닝 프레임워크
201,591 스타huggingface/transformers
🤗 Transformers: 텍스트, 비전, 오디오, 멀티모달 분야의 최첨단 머신러닝 모델을 위한 모델 정의 프레임워크로, 추론과 학습을 모두 지원합니다.
168,958 스타AUTOMATIC1111/stable-diffusion-webui
Stable Diffusion 웹 UI
165,310 스타Comfy-Org/ComfyUI
그래프와 노드로 구성된 인터페이스를 갖춘, 가장 강력하고 모듈성이 뛰어난 확산 모델 GUI, API, 백엔드입니다. 세계에서 가장 빠른 로컬 추론 엔진입니다.
146,744 스타