主要内容

预测

类:Autoencoder

使用训练过的自编码器重建输入

描述

例子

Y = predict(autoenc,X)返回预测结果Y对于输入数据X,使用自动编码器autoenc.结果Y是对X

输入参数

全部展开

类的对象返回的经过训练的自动编码器Autoencoder类。

输入数据,指定为样本矩阵、图像数据单元数组或单个图像数据数组。

如果是自编码器autoenc是在一个矩阵上训练的,其中每一列代表一个样本,那么Xnew必须是一个矩阵,其中每一列代表一个样本。

如果是自编码器autoenc是用单元格图像数组训练的吗Xnew必须是图像数据的单元格数组或单个图像数据的数组。

数据类型:||细胞

输出参数

全部展开

对输入数据的预测Xnew,作为图像数据的矩阵或单元格数组返回。

  • 如果Xnew是矩阵吗Y也是一个矩阵,其中每一列对应一个样本(观察或例子)。

  • 如果Xnew是单元格数组的图像数据,那么Y也是图像数据的单元格数组,其中每个单元格包含单个图像的数据。

  • 如果Xnew数组是一个单一的图像数据,那么Y也是单幅图像数据的数组。

例子

全部展开

加载训练数据。

X = iris_dataset;

训练数据包含鸢尾花四种属性的测量值:萼片长度、萼片宽度、花瓣长度、花瓣宽度。

在编码器中使用正饱和线性传递函数,在解码器中使用线性传递函数,在训练数据上训练一个自编码器。

autoenc = trainAutoencoder(X,“EncoderTransferFunction”...“satlin”“DecoderTransferFunction”“purelin”);

{

使用训练过的网络重建测量值,autoenc

xrebuild = predict(autoenc,X);

将预测测量值与训练数据集中的实际值一起绘制出来。

I = 1:4 h(I) = subplot(1,4, I);情节(X(我,:),“r”。);持有情节(xReconstructed(我,:),“去”);持有结束标题(h (1) {“花萼”“长度”});标题(h (2) {“花萼”“宽度”});标题(h (3) {“花瓣”“长度”});标题(h (4) {“花瓣”“宽度”});

图中包含4个轴对象。标题为萼片长度的坐标轴对象1包含2个类型为line的对象。标题为萼片宽度的坐标轴对象2包含2个类型为line的对象。标题为花瓣长度的坐标轴对象3包含2个类型为line的对象。标题为花瓣宽度的Axes对象4包含2个类型为line的对象。

红点代表训练数据,绿圈代表重构数据。

加载训练数据。

XTrain = digitTrainCellArrayData;

训练数据是一个1乘5000的单元格阵列,其中每个单元格包含一个28乘28的矩阵,表示一个手写数字的合成图像。

用包含25个神经元的隐藏层训练一个自动编码器。

hiddenSize = 25;autoenc = trainAutoencoder(XTrain,hiddenSize,...“L2WeightRegularization”, 0.004,...“SparsityRegularization”4...“SparsityProportion”, 0.15);

加载测试数据。

XTest = digitTestCellArrayData;

测试数据是一个1 × 5000单元格数组,每个单元格包含一个28 × 28矩阵,表示一个手写数字的合成图像。

使用训练过的自编码器重构测试图像数据,autoenc

xrebuild = predict(autoenc,XTest);

查看实际测试数据。

图;I = 1:20 subplot(4,5, I);imshow (XTest{我});结束

查看重构的测试数据。

图;I = 1:20 subplot(4,5, I);imshow (xReconstructed{我});结束

版本历史

在R2015b中引入

另请参阅