VQ-VAE:基于 PyTorch 的离散表征学习与图像压缩项目

Minimalist implementation of VQ-VAE in Pytorch

分支1Tags0
当前项目代码仓暂无内容

CVAE与VQ-VAE实现

这是一个实现向量量化变分自编码器(VQ-VAE)和卷积变分自编码器(CVAE)的示例,用于压缩MNIST和CIFAR-10数据集。 基于论文《神经离散表示学习》(Neural Discrete Representation Learning)[1]。 代码构建于PyTorch的VAE示例之上。

pip install -r requirements.txt
python main.py

系统要求

  • Python 3.6(可能Python 3.5也适用)
  • PyTorch 0.4
  • 其他具体需求请参考requirements.txt文件

使用方法

# 示例用法
python3 main.py --dataset=cifar10 --model=vqvae --data-dir=~/.datasets --epochs=3

结果展示

所有图像均来源于测试集。上排为原始图像,下排为重构后的图像。

其中,k代表词典中的元素数量,d代表词典中元素的维度(瓶颈层的通道数)。

  • MNIST (k=10, d=64) MNIST结果

  • CIFAR-10 (k=128, d=256) CIFAR-10结果

  • ImageNet (k=512, d=128) ImageNet结果

待办事项:

致谢

感谢tf-vqvae项目作为一个良好的参考资源。

[1]:van den Oord, A., et al. "Neural discrete representation learning." arXiv preprint arXiv:1711.00937 (2017). [2]: Exploring Continuous Relaxations of Discrete Variables for Latent Variable Models, Bayesian Deep Learning Workshop, NIPS 2017.