如果讲了自动编码器(AE),
却不介绍变分自动编码器(VAE),
感觉有点太可惜了。
听到生成演算法可能都会想到生成对抗网路GAN,
但是却比较少人知道VAE也可以用来生成物件。
如果想看看VAE背後的原理的话,
可以自行调查看看,
跟自动编码器的差异是,
在编码层时将每一个特徵向量取平均值及标准差,以常态分布生成压缩资讯。
参考页面:
https://www.tensorflow.org/probability/examples/Probabilistic_Layers_VAE?hl=zh_tw
首先是引入套件,比较特别的是引入tensorflow_probability这个套件,
可以帮我们生成常态分布计算层:
载入手写数字资料集,
划分训练集及测试集:
利用输入图片及压缩资讯的特徵数目来搭建模型的编码器,
跟AE重点上的不同在於编码器的最後一层:
模型解码器的部分:
设计损失函数,以及以adam当作优化器进行训练:
将十张测试集资料放入模型,并作图查看:
随机生成十张手写图片:
如果想看不同生成模式的差异(mean、mode、random),
可以参考这篇文章:
https://towardsdatascience.com/6-different-ways-of-implementing-vae-with-tensorflow-2-and-tensorflow-probability-9fe34a8ab981
延伸阅读
使用magenta的Multitrack MusicVAE来创作音乐:
https://colab.research.google.com/github/magenta/magenta-demos/blob/master/colab-notebooks/Multitrack_MusicVAE.ipynb
>>: Day20-pytorch(3)设置model、使用pytorch设置loss function及updata参数
Amazon Elastic MapReduce(EMR)是可以在EC2 instance 或 Am...
k0s k0s是Mirantis推出的轻量化Kubernetes发行版,Mirantis有一个k8s...
DOM Document Object Model 文档物件模型 DOM的简历 职业类别:接口 职称...
ゴキゲンな蝶になって きらめく风に乗って 今すぐキミに会いに行こう 余计な事なんて忘れた方がマシさ...
资料库管理系统(database management system,简称 DBMS),是一套作为应...