生成数字图像上使用变分Autoencoder英特尔cpu
这个例子展示了如何为一个训练有素的变分函数生成一个墨西哥人autoencoder (VAE)网络,英特尔®cpu上运行。这个例子说明了:
这个示例使用pretrained解码器基于网络火车变分Autoencoder (VAE)来生成图像深度学习工具箱™的例子。有关更多信息,请参见火车变分Autoencoder (VAE)来生成图像(深度学习工具箱)。
第三方的先决条件
要求
英特尔处理器支持英特尔高级向量扩展2(英特万博1manbetx尔AVX2)指令。
可选
等non-MEX构建静态、动态库或可执行文件,这个例子有以下额外的需求。
英特尔数学内核库深层神经网络(MKL-DNN)
信息的支持版本的编译器和库,明白了万博1manbetx先决条件与MATLAB编码器深度学习
这个例子不支持在网上MATLAB®。万博1manbetx
Pretrained变分Autoencoder网络
Autoencoders有两个部分:编码器和译码器。编码器接受图像输入和输出压缩表示(编码),这是一个向量的大小latent_dim
在本例中,等于20。解码器压缩表示,解码,再现了原始图像。
弗吉尼亚州不同于普通autoencoders他们不使用encoding-decoding过程重建一个输入。相反,他们对潜在的空间概率分布,并学习输出的分布,分布的观测数据的译码器匹配。然后,他们从这个分布生成新的数据样本。
下面的例子使用了译码器网络的训练火车变分Autoencoder (VAE)来生成图像的例子。网络训练自己,明白了火车变分Autoencoder (VAE)来生成图像(深度学习工具箱)。
generateVAE入口点函数
的generateVAE
入口点函数加载dlnetwork
对象的trainedDecoderVAENet
MAT-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不同于图像生成的墨西哥人函数调用。
另请参阅
coder.DeepLearningConfig
|codegen
|coder.config
|dlarray
(深度学习工具箱)|dlnetwork
(深度学习工具箱)
相关的例子
- 火车变分Autoencoder (VAE)来生成图像(深度学习工具箱)