2026a

# encode


编码输入数据

函数库: TyDeepLearning

# 语法

Z = encode(autoenc, Xnew)

# 说明

Z = encode(autoenc, Xnew) 返回输入数据 Xnew 的编码数据 Z,使用自动编码器 autoenc。示例

# 示例

编码新图像数据

手写数字数据集加载。

using TyDeepLearning
set_backend(:mindspore)
file = dataset_dir("digit")
XTrain, YTrain = DigitDatasetTrainData(file)
XTest, YTest = DigitDatasetTestData(file)

数据格式处理。

XTrain = reshape(XTrain, (size(XTrain)[1], size(XTrain)[2] * size(XTrain)[3] * size(XTrain)[4]))
XTest = reshape(XTest, (size(XTest)[1], size(XTest)[2] * size(XTest)[3] * size(XTest)[4]))

对新图像编码。trainAutoencoder函数训练完毕预计需要十分钟,需稍作等待。

hiddensize = 15
autoenc = trainAutoencoder(XTrain, hiddensize)
features = encode(autoenc, XTest)
5000×15 Matrix{Float32}:
 1.0  1.0  1.0  1.0  …  1.0  1.0  1.0  1.0
 1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0
 1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0
 1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0
 1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0
 ⋮                   ⋱                 
 1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0
 1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0
 1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0
 1.0  1.0  1.0  1.0     1.0  1.0  1.0  1.0

神经网络每次训练具有随机性,输出结果不会完全一致。

# 输入参数

autoenc-训练的自动编码器
Autoencoder对象

经过训练的自动编码器,由 trainAutoencoder 函数作为 Autoencoder 类的对象返回。

X-输入数据
矩阵、数组

输入数据,指定为样本矩阵、单个图像数据数组。 如果自动编码器自动加载是在矩阵上训练的,其中每列代表单个样本,则 Xnew 必须是矩阵,其中每列代表单个样本。

数据类型: Float16 | Float32 | Float64 | Int64

# 输出参数

Z-编码数据
矩阵、数组

由自动编码的数据,指定为矩阵。Z 的每一列表示一个编码样本。

# 另请参阅

decode | trainAutoencoder