OpenAI 在 GitHub 公开了 TensorFlow 框架里用 Python3 实现的 PixelCNN 优化版——PixelCNN++的源码,其论文已被 ICLR 2017 接收。所公开的源码是 PixelCNN++的具体代码实现,是在 TensorFlow 框架里用 Python3 编写的。
PixelCNN 是一类强大的生成模型,它有易处理似然性(tractable likelihood)从而容易进行抽样。其核心的卷积神经网络计算在一个像素值上的概率分布,且受左侧和上侧的像素值约束。
设置
以下环境运行该代码:多 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)
引用
如果你发现代码很有用,请在你的研究中引用我们:@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