1. 文章
  2. 文章详情

PixelCNN++实现:基于 Python3 和 TensorFlow

OpenAI 在 GitHub 公开了 TensorFlow 框架里用 Python3 实现的 PixelCNN 优化版——PixelCNN++的源码,其论文已被 ICLR 2017 接收。所公开的源码是 PixelCNN++的具体代码实现,是在 TensorFlow 框架里用 Python3 编写的。

PixelCNN 是一类强大的生成模型,它有易处理似然性(tractable likelihood)从而容易进行抽样。其核心的卷积神经网络计算在一个像素值上的概率分布,且受左侧和上侧的像素值约束。

开源地址:https://github.com/openai/pixel-cnn


设置

以下环境运行该代码:

  • 多 GPU 计算机

  • Python3

  • Numpy, TensorFlow


训练模型

使用 train.py 脚本进行模型的训练,在 CIFAR-10 上训练默认模型只需要简单键入:

python3 train.py

你可能希望至少可更改 --data_dir 和 --save_dir,它们指向系统下载数据的路径(如果是无效的)和保存点的位置。

我想使用更少的 GPU 进行训练。为了在更少的 GPU 上训练,我们建议使用 CUDA_VISIBLE_DEVICES 缩小 GPU 可用(the visibility of GPUs)数量,然后再运行脚本。不要忘记相应地调制 flag: --nr_gpu。

我想训练自己的数据集。看看 data/ 文件夹中的 DataLoader 类,必须为你自己的数据集写一个类似的数据迭代器,然后代码才能从那边正常运行。

预训练模型检查点(checkpoint)

下载(http://alpha.openai.com/pxpp.zip)(http://alpha.openai.com/pxpp.zip%EF%BC%89) 中我们已训练的模型(TensorFlow),它在 CIFAR-10 上实现了 2.92bpd。


引用

如果你发现代码很有用,请在你的研究中引用我们:

@inproceedings{Salimans2016PixeCNN,
 title={PixelCNN++: A PixelCNN Implementation with Discretized Logistic Mixture Likelihood and Other Modifications},
 author={Tim Salimans and Andrej Karpathy and Xi Chen and Diederik P. Kingma and Yaroslav Bulatov},
 booktitle={Submitted to ICLR 2017},
 year={2016}
}


附录:

论文:Conditional Image Generation with PixelCNN Decoders

论文:PIXELCNN++: A PIXELCNN IMPLEMENTATION WITH DISCRETIZED LOGISTIC MIXTURE LIKELIHOOD AND OTHER MODIFICATIONS

参考:https://www.jiqizhixin.com/articles/2016-12-20-6

发表评论

登录后才能评论

评论列表(0条)