主要内容

生成数字图像上使用变分Autoencoder英特尔cpu

这个例子展示了如何为一个训练有素的变分函数生成一个墨西哥人autoencoder (VAE)网络,英特尔®cpu上运行。这个例子说明了:

  • 代的手绘风格的数字图像MNIST数据集。

  • 代码生成的dlnetwork(深度学习工具箱)对象代表一个深度学习网络使用英特尔MKL-DNN库。

  • 使用dlarray(深度学习工具箱)在代码生成对象。

这个示例使用pretrained解码器基于网络火车变分Autoencoder (VAE)来生成图像深度学习工具箱™的例子。有关更多信息,请参见火车变分Autoencoder (VAE)来生成图像(深度学习工具箱)

第三方的先决条件

要求

  • 英特尔处理器支持英特尔高级向量扩展2(英特万博1manbetx尔AVX2)指令。

可选

等non-MEX构建静态、动态库或可执行文件,这个例子有以下额外的需求。

这个例子不支持在网上MATLAB®。万博1manbetx

Pretrained变分Autoencoder网络

Autoencoders有两个部分:编码器和译码器。编码器接受图像输入和输出压缩表示(编码),这是一个向量的大小latent_dim在本例中,等于20。解码器压缩表示,解码,再现了原始图像。

弗吉尼亚州不同于普通autoencoders他们不使用encoding-decoding过程重建一个输入。相反,他们对潜在的空间概率分布,并学习输出的分布,分布的观测数据的译码器匹配。然后,他们从这个分布生成新的数据样本。

下面的例子使用了译码器网络的训练火车变分Autoencoder (VAE)来生成图像的例子。网络训练自己,明白了火车变分Autoencoder (VAE)来生成图像(深度学习工具箱)

generateVAE入口点函数

generateVAE入口点函数加载dlnetwork对象的trainedDecoderVAENetMAT-file到一个持久变量和重用后续预测的持久对象调用。它初始化一个dlarray对象包含25个随机生成的编码,通过他们通过译码器网络,提取数字数据生成的图像深度学习数组对象。

类型(“generateVAE.m”)
函数generatedImage = generateVAE (decoderNetFileName latentDim,环境)% # codegen % MathWorks版权2020 - 2021,公司持续decoderNet;如果isempty (decoderNet) decoderNet = coder.loadDeepLearningNetwork (decoderNetFileName);结束%生成随机噪声randomNoise = dlarray (randn (1, 1, latentDim, 25岁,“单”),“SSCB”);如果coder.target (MATLAB) & & strcmp(环境,gpu) randomNoise = gpuArray (randomNoise);结束%从噪声生成新的图像generatedImage =乙状结肠(预测(decoderNet randomNoise));%提取数字数据从dlarray generatedImage = extractdata (generatedImage);结束

评估的入口点函数

评估generateVAE入口点函数生成数字图像和阴谋的结果。

latentDim = 20;matfile =“trainedDecoderVAENet.mat”;Env =;图()标题(“数字——MATLAB生成的样本”)generatedImageML = generateVAE (matfile、latentDim Env);imshow (imtile (generatedImageML,“ThumbnailSize”,[100100]))

生成墨西哥人的功能

生成一个墨西哥人的功能generateVAE入口点函数,创建一套代码配置对象一个墨西哥人的目标和目标语言c++。使用coder.DeepLearningConfig函数创建一个MKL-DNN深度学习配置对象,并将其分配给DeepLearningConfig代码配置对象的属性。

cfg = coder.config (墨西哥人的);cfg。TargetLang =“c++”;cfg。DeepLearningConfig = coder.DeepLearningConfig (“mkldnn”);args = {coder.Constant (matfile) coder.Constant (latentDim) coder.Constant (Env)};codegen配置cfgarg游戏arg游戏generateVAE报告
代码生成成功:查看报告

运行生成的墨西哥人

调用生成的墨西哥人并显示结果。

图()标题(“使用MKL-DNN生成的数字样本”)generatedImage = generateVAE_mex (matfile、latentDim Env);imshow (imtile (generatedImage,“ThumbnailSize”,[100100]))

generateVAE入口点函数初始化dlarray对象与随机生成的编码,通过他们通过译码器网络,提取数字数据生成的图像深度学习数组对象。结果,图像在MATLAB仿真geenrated不同于图像生成的墨西哥人函数调用。

另请参阅

|||(深度学习工具箱)|(深度学习工具箱)

相关的例子

更多关于